首先你需要:
#include<vector>using namespace std;
一、定义
1. 一维形式
vector<typename> name;
2. 二维形式
这种形式下的二维全都是变长的
vector<vector<int> > name;//>>之间要加空格
3. 数组形式
这种形式下的二维,有一维是由arraySize固定的
vector<typename> Arrayname[arraySize];
二、访问方式
1. 使用下标访问
2. 使用迭代器访问
迭代器的定义
vector<typename>::iterator it;
迭代器的使用
基本使用
//定义一个vectorvector<int> vi;//为这个vector 定义一个指针vector<int>::iterator it = vi.begin();//那么vi[i] 等价于 *(it + i) 等价于 *(vi.begin() + i)
使用迭代器进行遍历
for(vector<int>::iterator it = vi.begin(); it != vi.end();it++){printf("%d",*it);}//vi.end()指向的是vi尾元素的后一个地址//迭代器不支持it < vi.end()的写法,set类型也是
三、常用函数
1. push_back(x)
vi.push_back(x);//等于在尾部插入x
2. pop_back( )
vi.pop_back();//等于删除尾部元素,不需要参数
3. size( )
printf("%d",vi.size());//size返回vector中元素的个数//size返回的是unsigned类型,但一般用%d问题不大
4. clear( )
vi.clear();//用于删除vector中所有元素
5. insert( )
vi.insert(it,x);//等于在it处插入一个元素x//例如vi.insert(vi.begin() + 2,x);//即在v[2]处插入x//插入后v[2] = x
6. erase( )
//有删除单个元素和删除区间两种用法//删除单个元素vi.erase(it);//删除区间内元素,当参数是first,last时,删除了[first,last)内元素vi.erase(vi.begin(),vi.end());
