一、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); //在数组的末尾添加一个元素1Num.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语言中直接向函数传递