vector定义
- vector是对象的集合,又称作“变长数组”。在算法题中可以使用vector来代替普通的数组而不容易发生超出内存问题。同时可以用来实现邻接表(比用指针实现更容易理解)。
- 格式:
#include <vector>
using namespace std;
vector<typename> name;
vector<vector<int> > name;
vector<typename> name[size];
vector容器的元素访问方式
- 通过下标访问,定义后与普通数组访问方式一样;
- 通过迭代器(iterator)访问,可以暂时将iterator理解为指针当中的“ * ”
#include <vector>
using namespace std;
vector<int> vi;
vector<typename>::iterator p = vi.begin();
for(int j = 0; j < 5; j++)
printf("%d", *(p+i));
for(vector<int>::iterator i = vi.begin(); i != vi.end(); i++)
printf("%d", *i);
vector常用函数
push_back()
向vector后面添加一个元素,O(1);pop_back()
删除vector最后面的一个元素,O(1);size()
获得vector中元素的个数,O(1);clear()
删除vector中的所有元素,O(n);insert(vi.begin()+i, x)
向vector中的 vi[i] 位置插入一个元素x,O(n);erase(vi.begin() + i)
删除第i个位置的元素,O(n);erase(vi.begin() + i , vi.begin() + j)
删除i到j区间的元素,O(n);