【算法常用STL】vector

1. vector的定义

vector是一种变长数组*(扩容时倍增),支持随机访问,不支持在任意位置 O(1)。为了保证效率,元素的增删一般应该在末尾进行。

#include<vector>
#include <vector>   // 头文件
vector<int> a({0,12}); //注意定义方式还是和数组不同的
vector<int> a;      // 相当于一个长度动态变化的int数组
vector<int> b[233]; // 相当于第一维长233,第二位长度动态变化的int数组
struct rec{};
vector<rec> c;      // 自定义的结构体类型也可以保存在vector中

2. begin() 和 end()

vector 同数组一样 也是左闭右开

vector<int> a[100]; 
a.begin() == a[0]
a.end()-1 = a[99]

3. front 和 back

vector<int> a({0,12}); 
a.front == 0  //返回首元素的值
a.back  == 2  //取尾元素的值

4. 如何遍历vector ?

//方法一
for(int i = 0; i < a.size() ; i ++)
//方法二
for(auto i = a.begin ; i < a.end ; i ++)
//方法三
for(int x : a)

5. push_back()和pop_back()

使用O(1)的时间在 vector 尾部 增加 / 删除元素

6.empty() 和 size()

  1. empty() 返回一个bool 值 表示是否为空
  2. size() 返回vector 的元素数量

7. clear()

清空vector

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值