单链表是一种向前操作的数据结构
1.初始化 forward_list<int> list1{11, 2, 13, 4, 15}
2.排序 list1.sort()
3.翻转 list1.reverse();
4.合并 list1.merge(list2)
5.初始化 list1.assign(10, 19)
6.链表头节点 list1.before_begin()
7.插入 list1.insert_after(ib, 19)(单个插入) 数组插入 list.insert_after(ib, a, a+5)
8.删除 list1.erase_after(++ib) //将第二个数据删除
9 循环 for(auto ib = list1.begin(), ie = list1.end(); ib != ie; ib++)
代码1:链表的循环变量
int main1() { forward_list<int> list1{1, 2, 3, 4, 5}; list1.push_front(10); //list1.push_back(10) // for(auto i:list1) // { // cout << i << endl; // } //auto ib = list1.begin(); int a[5] = {11, 12, 13, 14, 15}; auto ib = list1.before_begin(); //链表头节点 //list1.insert_after(ib, 19); //单个数据链表插入 list1.insert_after(ib, a, a + 5); //数组数据链表插入 list1.erase_after(++ib); //将第二个数据进行删除 for(auto ib = list1.begin(), ie = list1.end(); ib != ie; ib++) { cout << *ib << endl; } cin.get(); }
2.链表的基础用法
int main2() { forward_list<int> list1{11, 2, 13, 4, 15}; forward_list<int> list2{119, 28, 37}; //list1.sort(); //排序 //list1.reverse(); //逆转 list2.sort(); list1.merge(list2); cout << list1.max_size() << endl; //最大 for(auto i:list1) { cout << i << endl; } }
3.链表初始化
int main() { forward_list<int> list1{11, 2, 13, 4, 15}; list1.assign(10, 19); //分配和初始化 cout << list1.max_size() << endl; //最大 for(auto i:list1) { cout << i << endl; } }