首先你需要:

  1. #include<vector>
  2. using namespace std;

一、定义

1. 一维形式

  1. vector<typename> name;

2. 二维形式

这种形式下的二维全都是变长的

  1. vector<vector<int> > name;//>>之间要加空格

3. 数组形式

这种形式下的二维,有一维是由arraySize固定的

  1. vector<typename> Arrayname[arraySize];

二、访问方式

1. 使用下标访问

2. 使用迭代器访问

迭代器的定义

  1. vector<typename>::iterator it;

迭代器的使用

基本使用

  1. //定义一个vector
  2. vector<int> vi;
  3. //为这个vector 定义一个指针
  4. vector<int>::iterator it = vi.begin();
  5. //那么vi[i] 等价于 *(it + i) 等价于 *(vi.begin() + i)

使用迭代器进行遍历

  1. for(vector<int>::iterator it = vi.begin(); it != vi.end();it++){
  2. printf("%d",*it);
  3. }
  4. //vi.end()指向的是vi尾元素的后一个地址
  5. //迭代器不支持it < vi.end()的写法,set类型也是

三、常用函数

1. push_back(x)

  1. vi.push_back(x);
  2. //等于在尾部插入x

2. pop_back( )

  1. vi.pop_back();
  2. //等于删除尾部元素,不需要参数

3. size( )

  1. printf("%d",vi.size());
  2. //size返回vector中元素的个数
  3. //size返回的是unsigned类型,但一般用%d问题不大

4. clear( )

  1. vi.clear();
  2. //用于删除vector中所有元素

5. insert( )

  1. vi.insert(it,x);
  2. //等于在it处插入一个元素x
  3. //例如
  4. vi.insert(vi.begin() + 2,x);
  5. //即在v[2]处插入x
  6. //插入后v[2] = x

6. erase( )

  1. //有删除单个元素和删除区间两种用法
  2. //删除单个元素
  3. vi.erase(it);
  4. //删除区间内元素,当参数是first,last时,删除了[first,last)内元素
  5. vi.erase(vi.begin(),vi.end());