vector是向量类型,她是一种对象实体,具有值,所以可以看作是变量。她可以容纳许多其他类型的相同实体,
如若干个整数,所以称其为容器。Vector是C++STL(标准模板类库)的重要一员,使用她时,只要包括头文件#include<vector>即可。
vector
可以有四种定义方式:
b.begin() 、b.end()是表示向量的起始元素位置和最后一个元素之外的元素位置。
vector<int>是模板形式,尖括号中为元素类型名,她可以是任何合法的数据类型。
(1)vector<int> a(10);
//定义了10个整数元素的向量,但并没有给出初值,因此其值是不确定的。
(2)vector<int> b(10,1);
//定义了10个整数元素的向量,且给出每个元素的初值为1。这种形式是数组望尘莫及的,
//数组只能通过循环来成批的赋给相同初值。
(3)vector<int> c(b);
//用另一个现成的向量来创建一个向量。
(4)vector<int> d(b.begin(),b.begin()+3);
//定义了其值依次为b向量中第0到第2个(共3个)元素的向量。
b.begin() 、b.end()是表示向量的起始元素位置和最后一个元素之外的元素位置。
向量元素位置也属于一种类型,称为遍历器。遍历器不单表示元素位置,还可以在容器中前后挪动。
每种容器都有对应的遍历器。向量中的遍历器类型为:
vector<int>::iterator
向量的常用操作有:
a.assign(b.begin(), b.begin()+3); //b向量的0~2元素构成向量赋给a
a.assign(4,2); //使a向量只含0~3元素,且赋值为2
int x=a.back(); //将a的最后一个向量元素值赋给整数型变量x
a.clear(); //a向量中元素清空(不再有元素)
if(a.empty()) cout<<"empty"; //a.empty()经常作为条件,判断向量是否为空
int y=a.front(); //将a的第一个向量元素值赋给整型变量y
a.pop_back(); //删除a向量的最后一个元素
a.push_back(5); //在a向量最后插入一个元素,其值为5
a.resize(10); //将向量元素个数调至10个。多则删,少则补,其值随机
a.resize(10,2); //将向量元素个数调至10个。多则删,少则补,其值为2
if(a=b) cout<<"epual"; //向量的比较操作还有 !=, <, <=, >, >=
除此之外,还有元素的插入与删除、保留元素个数、容量观察等操作。