9顺序容器
为程序员提供控制元素存储和访问顺序的能力。
9.1顺序容器概述
9.2容器库概览
头文件和名字一样,模板类,要提供元素类型信息。可以保存另外一种容器。
9.2.1迭代器
9.2.4容器定义和初始化
标准库array
初始化要给类型和大小
列表初始化,初始值的数目必须小于或等于array的大小。
Array弥补了数组不能拷贝或赋值操作,它可以赋值和拷贝。
9.2.5赋值和swap
也可以认为只是交换了名字,看源码去验证。
9.2.7关系运算符
两个运算对象必须是相同类型的容器
最后一条解释:两个不等长的容器,比较第一个不等的元素的大小来确定大小
9.3顺序容器操作
9.3.1添加元素
使用emplace操作
Insert和push实际拷贝传参,而emplace的是将传参传递给构造函数,在容器管理的内存空间中直接构造元素。
9.3.2访问元素
访问成员函数返回的是引用
9.3.3删除元素
9.3.4特殊的forward_list操作
Forward_list是一个单向列表so
9.3.5改变容器的大小
9.3.6容器操作可能是迭代器失效
不要保存end返回的迭代器,而是不断更新end迭代器
9.4vector对象是如何增长的
Capacity和size
Size是容器中元素的数量
Capacity是容器的大小
9.5额外的string操作
9.5.1构造string的其他方法
9.5.2改变string的其他方法
改变string的多种重载函数
9.5.3string搜索操作
9.5.4compare函数
9.5.5数值转换
9.6容器适配器(就是换成相应的栈、队列、优先队列)
定义一个适配器
Deque<int> deq;
Stack<int> std(deq);
可在某种容器上实现适配器
栈适配器
队列适配器