vector

功能:vector数据结构和数组非常相似,也称为单端数组

区别:数组是静态空间,而vector是可以动态扩展的

动态扩展并不是在原空间之后续接新空间,而是找更大的内存空间,然后讲原数据拷贝到新空间,释放原空间;

vector容器的迭代器是支持随机访问的迭代器;

成员函数

功能说明

创建vector容器

​vector<T> v;​

默认构造函数,采样模板实现类实现

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个元素长度,预留位置不初始化,元素不可访问