vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
注:为了方便理解,以下均以int型容器进行举例
Vector容器的声明
vector<类型> 变量
<1> vector<int> vint :创建一个空容器
<2> vector<int> vint(100) :创建元素个数为100的容器
<3> vector<int> vint(100,10) :创建元素个数为100,且值均为10的容器
Vector容器的复制
<1> vector<int> vcopy(vint) :将vint复制一份到vcopy
<2> vector<int> vcopy(vint.begin() , vint.end()) :将[begin , end)区间的数值赋值给vcopy
<3> vcopy.assign(vint.begin() , vint.end()) :将[begin , end)区间的数值赋值给vcopy
<4> vcopy.assign(n , elem) :将n个elem赋值给vcopy
Vector容器的插入
<1> vint.push_back(elem) :在尾部加入一个elem数据
<2> vint.insert(pos , elem) :在pos位置插入一个elem数据,返回新数据位置,其中pos要用类似vint.begin()表示
<3> vint.insert(pos , n , elem) :在pos位置插入n个elem数据
<4> vint.insert(pos , vint.begin() , vint.end()) :在pos位置插入[begin , end)区间的数据
Vector容器的删除
<1> vint.pop_back() :删除最后一个数据
<2> vint.erase(pos) :删除pos位置上的数据,返回下一个数据的位置
<3> vint.erase(vint.begin() , vint.end()) :删除[begin , end)区间的数据
Vector容器的获得
<1> vint.front() :返回容器第一个数据
<2> vint.back() :返回容器最后一个数据
<3> vint.begin() :返回指向第一个数据的迭代器,用vector<int>::iterator定义的变量接收或vector<int>::const_iterator定义的变量
<4> vint.end() :返回指向最后一个数据下一个的迭代器,用vector<int>::iterator定义的变量接收或vector<int>::const_iterator定义的变量
<5> vint.rbegin() :返回逆向队列的第一个数据的迭代器,用vector<int>::reverse_iterator定义的变量接收
<6> vint.rend() :返回逆向队列的最后一个数据的下一个的迭代器,用vector<int>::reverse_iterator定义的变量接收
Vector容器的其它
<1> vint.size() :返回容器实际数据的个数
<2> vint.capacity() :返回容器数据的个数
<3> vint.max_size() :返回容器可容纳数据的最大个数
<4> vint.empty() :判断容器是否为空,若是空,返回true
<5> vint.clear() :清空容器中所有数据
<6> vint.resize(n) :重新指定容器长度
<7> vint.~vector<int>() :销毁所有数据,释放内存
<8> vint1.swap(vint2) 等价于swpa(vint1,vint2) :vint1与vint2元素交换
<9> vint.at(id) 等价于 vint[id] :以下标访问容器,不过前者可以判断下标是否越界