头文件<vector>
单端,动态
Vector是动态空间,随着元素的加入,它的内部机制会自动扩充空间以容纳新元素。
vector容量管理:超出部分并不是在原有空间后追加,(因为无法保证原空间之后尚有可配置的空间),而是申请更大的空间,然后将原数据拷贝新空间,并释放原空间。所以一旦引起空间的重新配置,指向原vector的所有迭代器就都失效了(既是指针失效).
vector构造
方法 | 描述 |
---|---|
vector v; | 默认构造函数 |
vector(v.begin(), v.end()); | 将v[begin(), end())区间中的元素拷贝给本身。 |
vector(n, elem); | 构造函数将n个elem拷贝给本身。 |
vector(const vector &vec); | 拷贝构造函数。 |
方法 | 描述 |
---|---|
assign(beg, end); | 拷贝[beg, end)并赋值 |
assign(n, elem); | n个elem |
vector& operator=(const vector &vec); | 重载等号操作符 |
swap(vec); | 收缩vector的容量,至size大小 |
size(); | 元素个数 |
empty(); | 是否为空 |
resize(int num); | 重新设定容器长度,多余会被删除 |
resize(int num, elem); | 重新设定容器长度,多余用elem填充 |
capacity(); | 容器容量 |
reserve(int len); | 预留len个空间 |
at(int idx); | 索引,会报异常 |
operator[]; | 索引,会报错 |
front(); | 返回第一个元素 |
back(); | 返回最有一个元素 |
insert(const_iterator pos, int count,ele); | pos位置插入count个元素ele. |
push_back(ele); | 尾部插入元素ele |
pop_back(); | 删除最后一个元素 |
erase(const_iterator start, const_iterator end); | 删除从start到end之间的元素 |
erase(const_iterator pos); | 删除指向的元素 |
clear(); | 删除容器中所有元素 |