文章目录
1. vector的定义
vector是一种变长数组*(扩容时倍增),支持随机访问,不支持在任意位置 O(1)。为了保证效率,元素的增删一般应该在末尾进行。
#include<vector>
#include <vector> // 头文件
vector<int> a({0,1,2}); //注意定义方式还是和数组不同的
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,1,2});
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()
- empty() 返回一个bool 值 表示是否为空
- size() 返回vector 的元素数量
7. clear()
清空vector