vector 称为容器模板类,是同一种类型的对象的集合,每个对象都有一个对应的整数索引值。vector 不是一种数据类型,而只是一个类模板,可用来定义任意多种数据类型。vector 类型的每一种都指定了其保存元素的类型,如vector<int> 和vector<string> 都是数据类型。vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
初始化:
- int myarray[5] = {1,3,5,7,9};
- vector<int> ivec1(myarray , myarray+5);//数组元素值赋值给vector,深拷贝直接赋值
- vector<int> ivec2(ivec1);// ok: copy elements of ivec1 into ivec2 ,深拷贝
- vector<int> ivec3=ivec2;//ok,深拷贝
- vector<string> svec(ivec1);// error: svec holds strings, not ints
- vector<int> ivec4(10, -1); // 10 elements, each initialized to -1
- vector<string> svec(10, "hi!");// 10 strings, each initialized to "hi!"
注意:
①vector 中的对象是没有命名的,可以按 vector 中对象的位置来访问它们。使用下标索引[]访问,下标从0开始,且下标只能获取已存在的元素
②使用size_type 类型时,必须指出该类型是在哪里定义的。如vector<int>::size_type i
- for (vector<int>::size_type ix = 0; ix != ivec.size(); ++ix)
- ivec[ix] = 0;
③迭代器访问对象(推荐)