- 迭代器
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是根据传入的参数,调用容器元素的构造函数,在容器内存中生成一个容器元素的对象。