其他分享
首页 > 其他分享> > 讲给小白的vector基础法门

讲给小白的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