1.vector的使用
1.1vector的定义
(constructor)构造函数声明 | 接口说明 |
vector() | 无参构造 |
vector (const vector& x) | 拷贝构造 |
1.2vector iterator 的使用
iterator的使用 | 接口说明 |
begin +end | 获取第一个数据位置的iterator/const_iterator, 获取最后一个数据的下一个位置的iterator/const_iterator |

1.3 vector 空间增长问题
容量空间 | 接口说明 |
resize | 改变vector的size |
reserve | 改变vector的capacity |
1.4vector 增删查改
vector增删查改 | 接口说明 |
push_back() | 尾插 |
pop_back() | 尾删 |
operator[] | 像数组一样访问 |
1.5 vector 迭代器失效问题
2.手搓reserve的补充
先看一下vector<string> 的物理图


void reserve(size_t n)
{
if (n > capacity)
{
size_t old = size();// size是一个求长度的函数
T* tmp = new T[n];
if (_start)
{
memcpy(tmp, _start, old*sizeof(T));
delete[] _start;
}
_start = tmp;
_finish = _start + old;
_endofstorage = _start+n;
}
}
memory在深拷贝自定义类型就是浅拷贝,delete先析构函数再释放空间,会变成野指针。
3.支持迭代器区间构造
4.用n个val初始化