定义
向量是基于模板的类,它存储相同数据类型的元素。与数组一样的是,向量对象允许通过下标运算直接访问元素。然而,与数组不同的是,向量保留其大小的信息,且提供相关的size()函数,程序员可以利用此函数可以访问向量的元素个数。
下面的长度为v.size()的向量v的试图。向量元素的下标范围是0~v.size()-1。
向量类的构造函数
vector():创建一个空向量,这是默认的构造函数
vector(int n ,const T &value=T()):创建具有n个元素的向量,每个元素具有指定的数值。如果忽略valu参数,则元素用类型T的默认值填充。类型T必须有默认的构造函数,类型T的默认值有T()指定。
vector(T *first,T *last):用地址范围[first,last)初始化向量
声明向量对象
vector<int> intVector(5);//长度为5的向量,包含整型数值0
vector<string> strVector(10);//长度为10的向量,每个元素都包含空字符串
vector<char> line(80,' ')//80个字符的向量,每个元素最初设为空格
vector<time24> openTime(7,time24(9,0));//Time24向量OpenTime是初始值为9:00的7个元素表
向量类的操作
T &back():访问和更新尾部元素 例如:v.push_back('w')在向量的末尾添加'w' v.back()='y'把尾部的'w'变为'y'
const T &back()const;
T &operator[](int i):取得下标为i的向量元件元素。
const T &operator[](int i) const ;
void push_back(const T &val):取类型T的元素,并将这个元素添加到向量的尾部
void pop_back():删除向量中的最后一个元素,前提是向量非空。可以调用empty()检测这个条件。
void resize(int n,const T &fill=T()):改变向量的大小,将数值为fill的新元素添加到向量的尾部。
bool empty() const;
int size() const:返回向量中元素的数目
resize()函数
函数resize()使用参数n改变向量的大小。此函数允许有另一个指明填充值的第二个参数。默认情况下填充为T(),如果新的大小大于当前大小,则向量通过添加n-size()个新元素来增长。现有的所有元素保持不变,把填充值赋给新元素。如果新的大小小于当前大小,resize()操作通过砍掉向量尾部的元素来收缩向量。前n个元素保持不变,向量丢掉其余的size()-n个元素。