**
1. vector的定义:
**
为了使用vector,我们必须包含的头文件:
#include <vector>
使用vector有两种不同的形式:
- 数组习惯
- STL习惯
对于数组习惯
*:
我们模仿内置数组的方法:定义一个已知长度的vector:
vector<int> ivec(10); //类似于定义包含十个元素的内置数组一样:int ia[10]
还可以为每个元素提供一个显式的初始值来完成初始化:
vector<int> ivec2(10, -1);
定义了ivec2,包含十个int型的元素,每个元素都被初始化为-1.
对于内置数组,我们可以显示地把数组的元素初始化为一组常量值:
int ia[6] = {-2, -1, 0, 1, 2, 1024};
但是,我们不能用同样的方法显式地初始化vector。不过,可以将vector初始化为一个已有数组的全部或者一部分;只需指定希望被用来初始化vector的数组的开始地址以及数组最末元素的下一位置来实现:
vector<int> ivec3(ia, ia+6);//把ia的6个元素拷贝到ivec3
被传递给ivec3的两个指针标记了用来初始化对象值的范围。第二个指针总是指向要被拷贝的末元素的下一个位置,标记出来的元素范围也可以是数组的一个子集。例如:
vector<int> ivec4(&ia[2], &ia[5]); //拷贝3个元素: ia[2], ia[3], ia[4]
与内置数组不同,vector可以被另一个vector初始化,或者被赋给另一个vector;例如:
vector<int> ivec5(ivec4);//用ivec4初始化ivec5
ivec4 = ivec5;//把一个vector拷贝给另一个vector
**
对于STL习惯:
**
用法完全不同,我们不是定义一个已知大小的vector,而是定义一个空vector。
例如:
vector<string> text;