- 初始化一个链表
1 list<int> mylist{ 1,2,3,4,6 };
- 链表排序
1 mylist.sort();
- 链表反转
1 mylist.reverse();
- 链表删除头部和尾部
1 mylist.pop_back();//删除尾部 2 mylist.pop_front();//删除头部
- 链表头部与尾部添加
1 mylist.push_front(1);//头部添加 2 mylist.push_back(10);//尾部添加
- 重新初始化链表,通过数组或给定数据
1 mylist.assign(3, 5);//重新初始化链表,3个5 2 //通过数组初始化 3 int a[10] = { 1,2,3,4,5,6,7,8,9 }; 4 mylist.assign(a,a+4);
- 输出链表
1 for (auto i : mylist) 2 { 3 cout << i << endl; 4 }
- 正向迭代,与插入和删除数据
1 //正向迭代器 2 for (auto ib = mylist.begin(), ie = mylist.end(); ib != ie; ib++) 3 { 4 if (*ib == 3) 5 { 6 //插入数据 7 //mylist.insert(ib, 123); 8 //删除数据 9 mylist.erase(ib); 10 break; 11 } 12 cout << *ib << endl; 13 }
- 反向迭代器
1 //反向迭代器 2 for (auto rb = mylist.rbegin(), re = mylist.rend(); rb != re; rb++) 3 { 4 cout << *rb << endl; 5 }
- 链表第一个数据和最后一个数据,以及链表元素的个数
1 cout << "第一个数据:" << mylist.front() << endl; 2 cout << "最后一个数据:" << mylist.back() << endl; 3 cout << "个数:" << mylist.size() << endl;
- 链表合并(合并前要先排序)
1 list<int> mylist{ 1,2,3,4,6 }; 2 list<int> mylist2{ 1,2,3 }; 3 //链表合并 4 mylist.sort(); 5 mylist2.sort(); 6 mylist.merge(mylist2);
- 链表清空
1 mylist.clear();
- 链表嵌套
1 list<int> mylist1{ 1,2,3,4,6 }; 2 list<int> mylist2{ 1,2,3,4,6 }; 3 list<int> mylist3{ 1,2,3,4,6 }; 4 list<list<int>> mylist{ mylist1,mylist2,mylist3 }; 5 for (auto i : mylist) 6 { 7 for (auto j : i) 8 { 9 cout << j << " "; 10 } 11 cout << endl; 12 } 13 cin.get();