讲给小白的vector基础法门
作者:互联网
什么是vector?
所谓vector,在C++里面是一个可以变长的数组。举个例子:普通的数组我们在定义的时候就已经确定了它的长度。如果创建的是长度为100的数组的话。那我们只能存小于等于100个元素。不可存更多的元素。而vector可以改变这种情况。你想存多少就存多少。而且不存在浪费的问题。
如何定义一个vector变量
vector<变量里面元素的类型> 变量名;
当然了,他还需要些写个头文件
#include <vector>
拿个实例:
vector<int> vi; //创建vector 型名字叫 vi 的变量 里面存的数据类型是 int
还有一个应有的思考是:能不能创建一个可变长的二维数组。
这个是可以的。
注意:这里在两个尖括号之间留一个空格。因为一些编译器用的标准是挺古老。它识别不了,如果不留的话它会认为这是重载的运算符而且你没有写重载运算符。
举个实例:
vector<vector<int> > vi;//创建一个名字叫vi的二维可变数组
那么如何使用它呢?
这里有几个基本操作:
插入:
插入整形数字 2
vector<int> vi;
vi.push_back(2);
删除尾端的一个元素,它只是删除一个元素。
vector<int> vi;
vi.push_back(2);
vi.pop_back();
在介绍插入之前应该科普一下迭代器,你可以认为它是一个指针。而且它的用法还跟指针特别相似。
vector<类型>::iterator 名字;
vector<int>::iterator it;//定义
用法:
vector<int> vi;
vi.push_back(2);//输入2
//vi.pop_back();
vi.insert(vi.begin(),3);//在最前面插入3
for(vector<int>::iterator it = vi.begin();it != vi.end();it++){//逐个输出
cout<<*it;//是不是很像指针的用法
}
这个是获取变量的最前方并用于赋值给迭代器:名字.begin();
vector<int> vi;
vector<int>::iterator it = vi.begin();
这个是获取尾端的,但它是最后一个元素的下一个:
名字.end();
vector<int> vi;
vector<int>::iterator it = vi.end();
这个是获取变量的长度:
名字.size();
vector<int> vi;
vi.size();
插入一个元素,由此可以看出它需要两个参数,一个是要插入的位置—需要用迭代器,另一个是插入的元素。
vi.insert(vi.begin(),2);
全部清空:
vector<int> vi;
vi.clear();
局部清空:需要两个参数,一个是开始的位置,一个是删除的位置的下一个位置。需要用迭代器。
vector<int> vi;
vi.erase(vi.begin(),vi.end());
到这里基本操作,已经介绍完毕。
标签:begin,iterator,vi,back,插入,小白,vector,法门 来源: https://blog.csdn.net/weixin_44413364/article/details/102754763