vector是STL的标准容器,用的是template模板实现的。vector有很多泛型算法可以利用。另外用vector要比自己定义一个数组用起来方便的多,特别是有中间的元素需要被删除的操作。 vector不是一种数据类型,而是一种类模板。
使用方法:
首先要包含头文件:
#include <vector>
using std::vector;
(1)定义与初始化
vector<T> Tvec1;
vector<T> Tvec2(Tvec1);//Tvec2是Tvec1的副本
vector<T> Tvec3(n,i);//包含n个初始值为i
(2)操作
v.empty()
如果v为空,则返回true,否则返回false。
v.size()
返回v中元素的个数。
v.push_back(t)
在v的末尾增加一个值为t的元素。
v[n]
返回v中位置为n的元素。
v1 = v2
把v1的元素替换为v2中元素的副本。
v1 == v2
如果v1与v2相等,则返回true。
!=, <, <=, >, >=
保持这些操作符惯有的含义
(3)迭代器操作
迭代器类型提供了比下标操作更一般化的方法:所有的标准库容器都定义了相应的迭代器类型,而只有少数的容器支持下标操作。
//用循环的方法
for (vector<int>::size_type ix = 0; ix != ivec.size(); ++ix)
ivec[ix] = 0;
// 采用迭代器的方法(效果相同)
for (vector<int>::iterator iter = ivec.begin();
iter != ivec.end(); ++iter)
*iter = 0; // set element to which iter refers to 0
CArray的操作与vector之类似,不过一般认为:vector 对于空间不足时重新申请空间 拷贝数据 销毁原有内存效率的考虑上比CArray好。