C++Primer学习笔记(9)顺序容器

(1)顺序容器将单一类型元素聚集起来成为容器,然后根据位置来存储和访问。

(2)标准库提供了vector,list,deque三种顺序容器以及stack,queue, priority_queue三种容器适配。

(3)将容器复制给另一个容器时,类型必须匹配,容器类型以及元素类型都必须相同。

(4)接受容器大小做形参的构造函数只适用于顺序容器,而关联容器不支持这种初始化。

(5)容器类型必须满足两个 约束1)元素类型必须支持赋值运算2)元素类型的对象必须可以复制。

(6)IO库类型不支持复制或者赋值,所以不能创建存放IO类型的容器

(7)没有元素是引用类型的容器。

(8)*iter返回迭代器iter所指向的元素的引用。

(9)迭代器的区间范围是左闭合区间。

(10)添加以及删除都会使迭代器失效。

(11)所有的顺序容器都支持push_back, push_front只支持list和deque

(12)在容器中添加元素时,系统将元素值复制到容器中,修改容器值不会影响原来的值。

(13)C++只允许两个容器做其元素类型定义的关系运算。

(14)erase 操作不会检查它的参数,程序员必须保证作用的迭代器或迭代器的范围有效。

(15)swap操作,首先将其左操作数容器中的所有元素,然后将右操作数容器中的所有元素插入到左边容器中。

(16)assgin 操作删除容器中的所有元素,然后将其参数所指定的新元素插入到该容器中, 由于assgin先删除容器中原来的所有元素,所以传递给assign函数不能指向调用该函数的容器内的元素。

(17)swap不会删除或者插入任何元素,而且保证在常量时间内实现交换,由于容器没有移动任何元素,因此迭代器不会失效。

(18)capacity 操作获取容器需要分配的存储空间之前能够存储的元素总数,而reserve操作则告诉vector容器应该预留多少个元素的存储空间。

(19)list可以高效的insert和erase一个元素,但是它不支持随机访问,访问一个元素需要遍历其他元素,vector除了再容器尾部外其他位置都需要将元素右边的元素进行移动,deque从两边插入和删除都非常快,在中间插入和删除的代价高。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值