1.STL list

  • 初始化一个链表
    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();
原文地址:https://www.cnblogs.com/xiaochi/p/8400631.html