简介:
vector可理解为一个可变长度的数组,如果我们无法预先知道需要定义的数组长度时,可以使用vector来进行操作。
用法:
1.文件包含:
首先在程序开头处加上#include<vector>以包含所需要的类文件vector
需要加上using namespace std;(我们在写算法的过程中需要调用的还有algorithm头文件,这个文件也是需要加上using namespace std的,所以为了以防万一,我们可以在代码编写过程中全部加上using namespace std)
2、变量的定义
vector<typename> name;
例如:vector<int> name;我们就定义了个名为name的存储数据类型为int的可变长的数组(初学者这样理解起来比较简单)
vector<vector<int> > name;
这样我们定义了一个二维的可变长的数组。
注意:两个>>在一起时,需要加一个空格,否则,编译器会认为进行移位操作。
3、vector的访问
我们可以像访问数组那样访问。例如:name[5];
注意:如果我们要做的是给vector进行赋值,是不能这样操作的,因为vector是变长的数组,他根据你数据元素的多少来分配内存空间,如果只有三个元素时,方位name[4]则是非法访问。
vector的第一个元素下标也是0;
//正确的赋值操作应该是
vector<int> name;
for(int i=0;i<5;i++){
name.push_back(i);
}
我们也可以通过迭代器来进行访问。
for(vector<int>::iterator it = name.begin();it!= name.end();it++){
printf("%d\t",*it);
}
4、常用函数
函数名 | 作用 |
---|---|
push_back | 在数组的最后添加一个数据 |
pop_back | 去掉数组的最后一个数据 |
at | 得到编号位置的数据 |
begin | 得到数组头的指针 |
end | 得到数组的最后一个单元+1的指针 |
max_size | 得到vector最大可以是多大 |
erase | 删除指针指向的数据项(一个或一段) |
clear | 清空当前的vector |
std::revertse | 反转 |
insert | 插入元素 |