Skip to content

CPP中vector的用法

· 2 min · C++ / vector / 动态数组 / 列表 / 学习笔记

一、vector理解#

vector是用来声明动态数组的,头文件为 < vector >。

vector是线性的,和数组一样可以通过下标进行快速访问

vector<int>Num;
vector<int>Num(2); //只有一个参数时,代表声明的数组长度
vector<int>Num(2,3);//有两个参数时,代表声明的数组长度以及初始化

上述代码创建了一个int类型的可变数组Num,这个数组可以像普通数组一样访问和修改数值。

vector和数组名之间可以加一个空格。数组名后面可以跟括号,括号中可以跟参数。

二、vector常用函数#

创建vector后,默认vector中没有元素。

vector<int>Num;
Num.push_back(1); //在数组的末尾添加一个元素1
Num.pop_back(); //在数组的末尾删除一个元素
Num.erase(iterator it); //删除迭代器指向的元素,删除后容器会自动调整
cout<<Num.size()<<endl; //数组的大小
Num.clear(); //清除所有的元素

vector除了通过数组下标进行遍历之外,还可以通过迭代器进行遍历。

vector<int>::iterator it; //声明一个迭代器
for(it = Num.begin(); it < Num.end(); it++){
cout<<*it<<endl;
}
//begin()用来访问数组的起始位置,end()用来访问数组的最后一个元素的后一个位置
//it作为一个数组指针

三、二维数组#

创建二维数组时和常规数组类似,总是从低维度操作,高维度存储着低维度的起始位置。

int N=5, M=6;
vector<vector<int> > obj(N); //定义二维动态数组大小5行
for(int i =0; i< obj.size(); i++)//动态二维数组为5行6列,值全为0
{
obj[i].resize(M);
}
vector<vector<int> > obj(N, vector<int>(M)); //定义二维动态数组5行6列

四、向函数中传递函数指针#

在c语言中直接向函数传递