本文共 745 字,大约阅读时间需要 2 分钟。
1. 不能直接将一种容器内的元素复制给另一种容器,但允许通过传递一对迭代器间接实现该功能。试用迭代器时,不要求容器类型相同,容器内的元素类型也可以不相同,只要它们相互兼容,能够将要复制的元素转换为新容器的元素类型,就可以实现复制。
2. 指针就是迭代器,所以也允许通过使用内置数组中的一对指针初始化容器。
3. 任何insert或push操作都可能导致迭代器失效。当编写循环将元素插入到vector或deque容器中时,必须确保迭代器在每次循环后都得到更新。
4. swap不会删除会插入任何元素,而且保证在常量时间内实现交换。由于容器内没有移动任何元素,因此迭代器不会失效。
5. 为了使vector实现快速的内存分配,其实际分配的容量要比当前所需的空间多一些。vector用这些额外的存储区来存放新添加的元素。
size函数返回当前的元素个数,而capacity返回可以存储的元素总数。
6. string类将npos定义为保证大于任何有效下标的值。所以当进行字符串查找时,若返回string::npos,则表示查找没有匹配。
7. 适配器包括容器适配器、迭代器适配器和函数适配器。本质上,适配器是使一事物的行为类似于另一事物的行为的一种机制。
容器适配器让一种以存在的容器采用另一种不同的抽象类型的工作方式实现。
8. 容器适配器包含:queue, priority_queue, stack三种。
stack可以建立在vector, list或deque容器之上。
queue要求与其关联的基础容器提供push_front运算,因此不能建立在vector容器上。
priority_queue要求随机访问功能,因此可建立在vector或者deque容器上,不能建立在list容器上。
转载地址:http://rgfdi.baihongyu.com/