解释:vector可以理解为“变长数组”,也就是“长度根据需要自动改变的数组”
两种用法:
(1)储存数据
(2)用邻接表存储图
使用条件:
使用vector要添加vector头文件#include<vector>和using namespace std;
1.vector的定义
vector<typename> name;
其实就是相当于一维数组name[size],只不过它的长度可以进行变换,比较节省空间,也就是所说的“变长数组”
和一维数组一样,这里的typename可以是任何基本类型,也可以是STL容器
vector<int> name;
vector<double> name;
vector<char> name;
vector<node> name;//node是结构体的类型
vector<vector<int>> name;//注意:>>之间一定要有空格
联想到二维数组:也就是其中一维是一个数组的数组
定义方法:
vector<typename> Arrayname[arraySize];
就是Arrayname[ ]中的每一个元素都是一个vector,可以把vector数组当作两个维都可以变长的二维数组理解。
例子:
vector<int> vi[100];
例子解释:
这样Arrayname[0]~Arrayname[arraySize-1]中每一个都是一个vector容器。
注意:与如下不同的是,上面的写法的一维长度已经固定为arraySize了,另一维才是变长的
?????????
vector<vector<int>> name;
2.vector容器内元素的访问
(1)通过下标访问
对一个定义为vector<typename>vi 的vector容器来说,直接访问vi[index]即可(如vi[0],vi[1],下标范围是从0到vi.size()-1
(2)通过迭代器访问
迭代器(iterator)可以理解为一种类似指针的东西,定义为:
vector<typename>::iterator it;
这样it就是一个vector<typename>::iterator型的变量,
例如:
vector<int>::iterator it;
vector<double>::iterator it;
这样就得到了迭代器it,并且可以通过*it来访问vector里面的元素