9.1 顺序容器的定义
笔记:(1)当将一个容器复制给另一个容器时,容易类型和元素类型都要一致。
(2)在定义容器的容器时,必须>>分开为> >,以表示这是分开的尖括号,而不是一个输出符号。
9.2 迭代器及其范围
笔记:(1)关系运算符<,<=,>,>= 只适用于deque和vector。
(2)list容器只支持自增自减运算和相等(不等)运算。
(3)迭代器的范围由[first,last)确定,last必须在first后面。
9.3 顺序容器的操作
问题:(1)9.3.3中最后一段,是否还是会导致无限循环?
笔记:(1)添加元素的方式:push_back,push_front(list,deque专有),insert(p,t),insert(p,n,t),insert(p,b,e)。
(2)向容器中添加元素可能会使迭代器失效,需要保证在每次循环后迭代器得到更新。
(3)不要存储end操作返回的迭代器,添加或删除容器中的元素都会使迭代器失效。
(4)使用文件结束符作为输入结束的标志,cin将处于无效状态,必须将其重置,cin.clear()。
9.4 vector容器的自增长
笔记:(1)当vector不得不重新分配内存时,以两倍当前容量的策略实现重新分配。
9.5 容器的选择
笔记:(1)一般来说,使用vector容器是比较好的。
9.7 容器适配器
笔记:有stack,queue和priority_queue.