第九章 顺序容器

顺序容器和数组的功能类似,是诸多元素的集合。

包括vector,list,deque(读音同deck:甲板)。其中vector类似数组,list类似链表,deque类似双端队列,可以在它的两端进行添加、删除元素,这就导致了这货和list可以用push_front()和pop_front()函数。不过没关系,这两个函数都可以用insert()和erase()实现。


这章我认为有3个值得注意的地方:

1.list容器的迭代器不支持算术和比较运算

list<int>::iterator first=ilst.begin(),

  last=ilst.end();

然后有如下循环  while(first < last)    //这是错误的

2.容器的begin和end的迭代器范围是左闭右开的,  也就是[begin,end)。

end指向的是末端元素的后一位置,这样做有两个编程意义。

1.可以用 begin==end 来判断容器是否为空

2.begin!=end 来判断容器至少还有一个元素

这和我们数据机构中的环形队列是否有异曲同工之妙

3.尽量避免保存end()返回的迭代器的值,因为,容器添加或者删除元素时,迭代器可能是会失效的,所以我们要做到时刻更新容器end()的值



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值