qianmowanjidebi.jpg

vector实际就是动态数组,头文件<vector>,并且必须要有"

using namespace std;"这行代码。随机存取任何元素都能在常数时间完成。在尾部增删元素具有较好的性能。

尾端插入和删除元素,算法时间复杂度都为O(1);其他元素插入和删除为O(n)

作用vector<int>   v;常用函数功能备注
内存分配v.capacity()当前可容纳的vector元素个数使用之前应该分配好使用空间和内存
v.reserve(n)扩大容量为n
v.at(i)返回索引所标识的元素。对i进行越界检查
v[i]返回索引所标识的元素。和数组用法几乎完全相同,不检查
元素存取v.front()返回第一个元素,不检查第一个元素是否存在
v.back()返回最后一个元素,不检查最后一个元素是否存在


作用vector<int>   v;常用函数功能备注
插入元素v.insert(pos,e)在pos位置插入元素e的副本,并返回新元素位置这三种操作涉及大量元素的移动,可能会产生严重影响效果
v.insert(pos,n,e)在pos位置插入n个元素e的副本
v.insert(pos,begin,end)在pos位置插入区间(begin,end)内所有元素的副本
v.push_back(20)尾端插入新元素的副本
作用vector<int>   v;常用函数功能备注
移除元素v.erase(pos)删除pos位置的元素,返回下一个元素的位置由vector产生的迭代器持续有效,除非产生(1)插入元素;(2)容器变化引起内存重新分配
v.erase(begin,end)删除区间(begin,end)内所有元素,返回下一个元素的位置
v.pop_back()移除最后一个元素但不返回最后一个元素
v.clear()移除所有元素,清空容器
v.resize(num)将元素数量改为num(增加的元素用默认构造函数产生,多余的元素被删除)
v.resize(num,e)将元素数量改为num(增加的元素是e的副本)
v.empty()判断是否为空,空为true,否则为false

v.size()返回元素个数




#转载请注明出处!