vector
功能:vector数据结构和数组非常相似,也称为单端数组
区别:数组是静态空间,而vector是可以动态扩展的
动态扩展并不是在原空间之后续接新空间,而是找更大的内存空间,然后讲原数据拷贝到新空间,释放原空间;
vector容器的迭代器是支持随机访问的迭代器;
成员函数 | 功能说明 |
创建vector容器 | |
| 默认构造函数,采样模板实现类实现 |
vector(v.begin(), v.end()); | 构造函数,将v[begin(), end()]区间中的元素拷贝给本身 |
vector(n, elem); | 构造函数,将n个elem拷贝给本身 |
vector(const vector& vec); | 拷贝构造函数 |
vector赋值操作 | |
vector& operator=(const vector& vec); | 运算符=重载 |
assign(beg, end); | 将[beg, end)区间中的数据拷贝赋值给本身 |
assign(n, elem) | 将n个elem拷贝赋值给本身 |
vector容量和大小 | |
empty(); | 判断容器是否为空 |
capacity(); | 容器的容量 |
size(); | 返回容器中元素的个数 |
resize(int num); | 重新指定容器的长度为num,若容器变长,则以默认值填充新位置;若容器变短,则末尾超出容器长度的元素被删除; |
resize(int num, elem); | 重新指定容器的长度为num,若容器变长,则以elem值填充新位置;若容器变短,则末尾超出容器长度的元素被删除; |
vector插入 | |
push_back(elem); | 尾部插入元素elem |
insert(const_iterator pos, elem); | 迭代器指向位置pos插入元素elem |
insert(const_iterator pos, int count, elem); | 迭代器指向位置pos插入count个元素elem |
vector删除 | |
pop_back(); | 删除最后一个元素 |
erase(const_iterator pos); | 删除迭代器指向的元素 |
erase(const_iterator start, const_iterator end); | 删除迭代器从start到end之间的元素 |
clear(); | 删除容器中所有元素 |
vector数据存取 | |
at(int idx); | 返回索引idx所指的数据 |
operator[]; | 返回索引idx所指的数据 |
front(); | 返回容器中的第一个数据元素 |
back(); | 返回容器中最后一个数据元素 |
vector互换容器 | 实现两个容器内元素进行互换 |
swap(vec); | 将vec与本身的元素互换 |
vector预留空间 | 减少vector在动态扩展容量时的扩展次数 |
reserve(int len); | 容器预留len个元素长度,预留位置不初始化,元素不可访问 |