由一段代码说开去——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()都是不错的模版,

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

你可能感兴趣的:(list)