vector 对象是如何增长的
当不得不获取新的内存空间时,vector 和 string 的实现通常会分配比新的空间需求更大的内存空间,容器预留这些空间作为备用,这样就不用每次添加新元素都重新分配容器的内存空间了
管理容器的成员函数
capacity 和 reserve
capacity 操作告诉我们容器在不扩张内存空间的情况下可以容纳多少个元素
reserve 操作允许我们通知容器它应该准备保存多少个元素
capacity 和 size
容器的 size 是指它已经保存的元素的数目,而 capacity 则是在不分配新的内存空间的前提下它最多可以保存多少元素
额外的 string 操作
构造 string 的其他方法
substr 操作
substr 操作返回一个 string,它是原始 string 的一部分或全部的拷贝。可以传递给 substr 一个可选的开始位置和计数值
改变 string 的其他办法
string 搜索操作
compare 函数
根据 s 是等于,大于还是小于参数指定的字符串,s.compare 返回0,正数或负数
数值转换
容器适配器
定义一个适配器
每个适配器都定义两个构造函数,默认构造函数创建一个空对象,接受一个容器的构造函数拷贝该容器来初始化适配器。我们可以在创建一个适配器时将一个命名的顺序容器作为第二个类型参数,来重载默认容器类型
对于一个给定的适配器,可以使用哪些容器是有限制的。所有适配器都要求容器具有添加和删除元素的能力,因此,适配器不能构造在 array 之上。类似的,也不能用 forward_list 来构造适配器
栈适配器
队列适配器
queue 和 priority_queue 适配器定义在 queue 头文件中