目录:
vector
1.向量简介
- 提出背景:数组长度一般是早已经定好了的,无法应对长度增加的情况。而动态分配的数组虽然可以解决长度增长,但却需要使用者自行管理存储空间。
- 数组和向量的主要特征:都能通过下标以O(1)时间访问其中元素。vector的使用与数组并无差异。
- 优势:查找
- 劣势:插入和删除需要O(n)的时间。
- vector 其实是只增不减的,减的是size,capacity是不减的,这样主要是为了提高效率。
2.向量作为参数传递
- 引用方式(vector& v) : 类似于传数组地址。
- 常量引用方式(const vector& v)
- 直接复制传递(vector v) : 会在函数中生成一个副本,最好不要用这个。
3.向量常用方法:
vector<int> v;
int item;
ierator it;
v.push_back(item); //末尾插入
v.pop_back(); //末尾删除
v.insert(it,item); //任意插入
v.erase(it); //任意删除
v.begin(); //头迭代器
v.end(); //尾迭代器
v.at(i); //v[i]的引用
v.front(); //头元素的引用
v.back(); //尾元素的引用
v.clear();
v.empty();
v.size();