vector为内置数组提供了一种替代方案,称为向量,是STL容器的一种。
*引用头文件
#i nclude
#i nclude
#if _MSC_VER > 1020
using namespace std;
#endif
*定义
vector ivec(10); //初始化大小为 10 个元素。
vector ivec(10, 8); //用8来初始化每个元素。
char a[10] = {1, 2, 8, 7, 20, 88, 22, 35, 72};
vector ivec(a, a+4); //用一个已经存在的数组进行初始化,分别给出开始地址,结束地址
vector ivec(&a[3], &a[6]);
vector无法使用数组下面的定义方式
vector ivec = {2, 8, 3}; //error
vector ivec2 = ivec; //可以直接用另一个同类型向量赋值
* size() 查询大小, empty()测试是否为空
if(ivec.empty())
return;
*push_back(),插入元素
ivec.push_back(8);
扩展向量的大小,不会覆盖原来的元素。
*可以按数组方式访问
vector ivec(10);
for(int i=0; i::iterator it = ivec.begin(); it != ivec.end(); ++it)
{
printf("%d/n", *it);
}
bool is_equal( const int*ia, int ia_size,
const vector &ivec )
{
if(ia_size == ivec.size()) return true;
int i = 0;
for(vector::const_iterator it = ivec.begin(); it != ivec.end(); it++)
{
if(*it != ia[i++])
return false;
if(i==ia_size)
break;
}
return true;
}
当声明为const vector &ivec 时,要用常迭代对象vector::const_iterator it