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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值