C++ Primer5 chapter7 顺序容器 笔记

  1. 迭代器

1)begin,end,rbegin,rend是被重载的,如果非const对象调用它们,返回的是非const迭代器,如果是const对象调用它们,返回的是const迭代器

2)V2(V1)的形式创建容器,V1和V2的类型必须相同,V(it1,it2)的形式创建容器,V的类型和迭代器所属容器的类型可以不同。

2.array

  • 定义一个array时,需要同时制定元素类型和数组大小,使用它时,也需如此。
  • array类型允许进行赋值操作,左右两端的对象类型必须一致。array不支持assign,也不允许使用{}进行赋值。
  • 除了array之外,对顺序容器的swap,不会进行元素的删除,赋值插入等操作,因此速度很快。对于string,调用swap之后,原来指向此容器的指针,引用,迭代器都会失效。对于非string的顺序容器,swap后,指向此容器的指针,引用,迭代器都不会失效,但是这些元素已经不属于原有容器了。
  • 对array进行swap,会真的交换元素,swap所需时间与array中的元素个数成正比。array进行swap之后,指针,引用,迭代器所绑定的元素不变,但元素值已经发生了变化。

3.容器操作

  • intsert插入的位置在迭代器之前
  • emplace是根据传入的参数,调用容器元素的构造函数,在容器内存中生成一个容器元素的对象。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值