若要使用vector,则需要添加头文件:#include<vector>。除此之外,还需要在头文件下面加一句"using namespace std"。
1.vector的定义
单独定义一个vector:
vector<typename> name;
其中typename可以使任何基本类型,也可以是STL标准容器。
2.vector容器内元素的访问
vector一般有两种访问方式:通过下标访问或通过迭代器访问。
(1)通过下标访问
类似于访问普通数组,对于一个定义为vector<typename> vi的vector容器来说,直接访问vi[index]即可(如vi[0]、vi[1])
(2)通过迭代器访问
vector<typename>::iterator it;
举例如:
#include<iostream>
#include<vector>
using namespace std;
int main(){
vector<int> vi;
for(int i = 1; i <= 5; i++){
vi.push_back(i);
}
/*可以这样写
vector<int>::iterator it = vi.begin();
for(int i = 0; i < 5; i++){
printf("%d", *(it + i));
}
*/
//也可以这样写
for(vector<int>::iterator it = vi.begin(); it != vi.end(); it++){
printf("%d", *it);
}
return 0;
}
3.vector常用函数实例解析
(1)push_back()
push_back(x)就是在vector后面添加一个元素x
(2)pop_back()
pop_back()用以删除vector的尾元素
(3)size()
size()用来获得vector中元素的个数
(4)clear()
clear()用来清空vector中的所有元素
(5)insert()
insert(it, x)用来向vector的任意迭代器it出插入一个元素x
(6)erase()
erase()有两种用法:删除单个元素、删除一个区间内的所有元素。
①删除单个元素。
erase(it)即删除迭代器为it处的元素
②删除一个区间内的所有元素。
earse(first, last)可以删除一个区间内的所有元素。其中first为所需要删除区间的起始迭代器,而last则为所需要删除区间的末尾迭代器的下一个地址,也即为删除[first, last)。
4.vector的常见用途
(1)储存数据
(2)用邻接表存储图