由一段代码说开去——list

 1 #include <list>//双向循环链表
 2 #include <iostream>
 3 #include <algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7   list<int> L;
 8   L.push_back(2);
 9   L.push_back(1);
10   L.push_back(5);
11   //尾部元素扩张
12   L.push_front(8);
13   //头部元素扩张
14   list<int>::iterator it;
15   it=L.begin();
16   L.insert(++it,2);//中间插入;
17   for(it=L.begin();it!=L.end();it++)
18   {
19     cout<<*it<<" ";//向前遍历
20   }
21   cout<<endl;
22   
23   L.remove(2);//定值删除
24   L.sort();//降序排列
25   list<int>::reverse_iterator ri=L.rbegin();
26   for(;ri!=L.rend();ri++)
27   {
28     cout<<*ri<<" ";//反向遍历
29   }
30   cout<<endl;
31   
32   it=find(L.begin(),L.end(),8);//查找元素
33   if(it!=L.end())
34   {
35     cout<<*it<<endl;;
36   }
37   else
38   {
39     cout<<"Not found.\n";
40   }
41   cin.get();
42   return 0;
43 }

1.list是双向循环链表,和vector是两个具有代表性的东西,

vector是顺序表的结构
2.list既然是链表了就方便头尾中插入删除

但是不方便随机访问  嗯 则个插入删除啊 就是比较灵活的

可以 push_front()头插入 push()_back();尾插入

都只需要一个参数表明插入的元素;

也可以insert(迭代器,元素)来顶点插入;

3.list的删除功能就相当强大了,有remove(a);删除和a相等的所有元素,

unique();让所有元素在list内独一无二;

还有insert对应的erase ,push_front()对应的pop_front

push_back对应的pop_back();

4.list的sort功能可以按元素降序排列,不需要参数即可,

5.list的find功能还是比较强大的除了红黑树外 基本上也就它用了有意义吧,

但是find不是他的成员方法;

6.由list引出的一些模型 如先入后出的stack

先入先出的 queue及其变形priority_queue()都是不错的模版,

有机会画个表格总结一下.

原文地址:https://www.cnblogs.com/dragonfive/p/2909990.html