作为数组的一个泛化的vector容器,不仅可以进行数组一样的元素随机访问,还可以在容器的尾端插入新元素。
vector具有自动的内存管理功能,对于元素的插入和删除,可动态调整所占用的内存空间。
创建vector对象
(1) vector(const A&a=A())
创建一个空的vector对象,A是内存分配器,此参数可省略,相当于一个vector()的调用。例如,下面一行代码创建了vector对象v。
(2)vector(size_type n)
创建一个具有n个元素的vector对象,每个vector元素具有它的类型下的默认值。此时,n个vector元素的内存空间已被分配。例如,下面一行代码,创建了具有10个元素的vector对象v,每个元素的默认值0.0
(3)vector(size_type n,const T& value)
创建一个具有n个元素的vector对象,每个对象具有初始值value。例如,下面一行代码
创建了一个具有10个元素的vector对象,每个元素的默认值为9.3
(4)vector(const vector&)
通过拷贝一个vector对象对的各个元素值,创建一个新的vector对象。例如,下面使用v1对象创建v2对象,此时,v2对象的5个元素也具有字符值“k”。
(5)vector(const InuptIterator first,const InuptIterato last,const A& a = A() )
InputIterator为输入迭代器,通过拷贝迭代器区间[first,last)的元素值,创建一个新的vector对象中,内存分配器可省略。例如,利用int数组iArray各元素值,创建了vector对象v。
初始化赋值
vector 提供的push_back函数,常用来进行vector容器的初始化。push_back函数在容器的尾端插入新元素value。
#include<vector>
#include<iostream>
using namespace std;
int main(){
vector<int> v;
v.push_back(20);
v.push_back(26);
v.push_back(39);
vector<int>::iterator i, iend; //起始结尾迭代器值
iend = v.end();
int j;
for (i = v.begin(), j = 0; i != iend; i++, j++)
cout << "v[" << j << "]=" << *i << endl;
system("pause");
return 0;
}
元素插入
不同于在
常用函数原型
(1)bool empty()
(2)size_type size()
当前vector容器的实际元素的个数
(3)size_type max_size()
系统所允许的vector容器的最大元素个数。
(4)size_type capacity()
当前可容纳的vector的元素的个数
(5)reference front()
vector容器的首元素(引用),要求vector不为空
(7)void pop_back()
与push_back函数相反,pop_back函数用于删除末尾的一个容器元素。