顺序容器概述
关于容器关系运算符的使用
关系运算符左右两边的运算对象必须是相同类型的容器,且必须保存相同类型的元素。
两个vector的capacity不会影响相等性的判定
vector<int> ivec = {1,2,3,4,5,6,7};
vector<int> ivec1 = {1,2,3,4,5,6,7};
//ivec1添加、删除元素导致扩容,但是二者仍然相等
ivec1.push_back(8); //末尾加入一个元素8
ivec1.pop_back(); //在ivec1的末尾删除一个元素
向顺序容器中添加元素的操作
emplace操作:当调用push和insert成员函数时,我们将元素类型的对象传递给它们,这些对象被拷贝到容器中。而当我们调用一个emplace成员函数时,则是将参数传递给元素类型的构造函数。emplace函数在容器中直接构造元素。传递给emplace函数的参数必须与元素类型的构造函数匹配。
访问元素
删除元素
特殊的forward_list操作
改变容器大小
管理容量的成员函数
一个vector的capacity和size有何区别
capacity返回已经为vector分配了多大内存空间(单位是元素大小),也就是在不分配新空间的情况下,容器可以保存多少个新元素。而size则返回容器当前已经保存了多少个元素。
额外的string操作
假设希望每次读取一个字符存入一个string中,而且知道最少读取100个字符,如何提高程序性能?
关键:使用reserve先为string分配100个字符的空间。
修改string的操作
string搜索操作
compare函数
数值转换
容器适配器支持的操作和类型