vector的使用

vector可以理解为"变长数组",即长度会根据需要而变化的数组
头文件:#include
定义:vector a;

vector a;
vector a;
vector a;
vector a;//node是结构体的类型

如果typename也是一个STL容器,在定义的时候需要在>>之间加空格 比如:

vector > a;//>>间要加空格

利用迭代器遍历元素

vector::iterator it;
#include
#include
using namespace std;
int main()
{
	vector<int> vi;
	for(int i=1;i<=5;i++)
		vi.push_back(i);
	vector<int>::iterator it;
	for(it=vi.begin();it!=vi.end();it++)//vector迭代器不支持it
		cout<<*it<<endl;
	return 0;
}

常用函数:

vector vi;
1) push_back(x):在后面添加一个元素x;
2) pop_back():删除vector的尾元素;
3) vi.size():获得vector中元素的个数;
4) vi.clear():清空vector中所有的元素;
5) vi.insert(it,x):向vector的任意迭代器it处插入一个元素x;
6) erase():有两种用法:删除单个元素、删除一个区间内的所有元素。

insert:

#include
#include
using namespace std;
int main()
{
	vector<int> vi;
	for(int i=1;i<=5;i++)
		vi.push_back(i);
		//插入之前为1 2 3 4 5 
	vi.insert(vi.begin()+2,-1);
	for(int i=0;i<vi.size();i++)
		cout<<vi[i]<<" "; //插入后输出1 2 -1 3 4 5 
	return 0;
}

erase():

删除单个元素:

vi.erase(vi.begin()+3);//删除第四个元素

删除一个区间元素:

vi.erase(vi.begin()+1,vi.begin()+4);//删除的是vi[1] vi[2] vi[3] vi.begin()代表着vi[0]
//若想删除所有元素
vi.erase(vi.begin(),vi.end());//vi.end()代表着尾元素的下一个地址。

你可能感兴趣的:(算法学习)