C++标准库模板(STL)学习笔记(vector)

vector定义

  1. vector是对象的集合,又称作“变长数组”。在算法题中可以使用vector来代替普通的数组而不容易发生超出内存问题。同时可以用来实现邻接表(比用指针实现更容易理解)。
  2. 格式:
#include <vector>
using namespace std;

vector<typename> name; //一维数组
vector<vector<int> > name; //二维变长数组
vector<typename> name[size];//一维定长,另一维变长

vector容器的元素访问方式

  1. 通过下标访问,定义后与普通数组访问方式一样;
  2. 通过迭代器(iterator)访问,可以暂时将iterator理解为指针当中的“ * ”
#include <vector>
using namespace std;

vector<int> vi;
vector<typename>::iterator p = vi.begin(); //begin函数为取数组的首地址
//*p就是相当于vi[0], *(p+k)就是相当于vi[k]
//与begin相反的是end,vi.end()为取最后一个元素的下一地址
//两种遍历方式:
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常用函数

  1. push_back()向vector后面添加一个元素,O(1);
  2. pop_back()删除vector最后面的一个元素,O(1);
  3. size()获得vector中元素的个数,O(1);
  4. clear()删除vector中的所有元素,O(n);
  5. insert(vi.begin()+i, x)向vector中的 vi[i] 位置插入一个元素x,O(n);
  6. erase(vi.begin() + i)删除第i个位置的元素,O(n);
  7. erase(vi.begin() + i , vi.begin() + j)删除i到j区间的元素,O(n);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值