STL vector

来源:互联网 发布:淘宝联盟登陆要认证 编辑:程序博客网 时间:2024/05/01 03:09
大小
size()
empty()
max_size()
capacity() :返回实际能容纳的元素量


容量重要有两个原因:
1.一但内存重新分配,vector元素相关的所有reference,pointer,iterator都会失效。
2.内存重新分配很耗时间。


reserve()保存适当容量,避免重新分配内存。


vector<T>(5)实参是个数值,它将成为vector 的起始大小。
这种方法会很耗时,不如使用reserve()


不能使用reserve()缩减大小。


vector<Elem> c
vector<Elem> c(c2)
vector<Elem> c=c2
vector<Elem> c(n) 利用元素的default函数生成一个大小为n的vector
vector<Elem> c(n,elem) 建立一个大小为n的vector,每一个元素值都是elem
vector<Elem> c(beg,end) 以区间[beg,end)作为元素初值


c.empty()
c.size()
c.max_size()
c.capacity()
c.reserve(num)
c1==c2
c1!=c2
c1<c2
c1>c2
c1<=c2
c1>=c2


赋值
c=c2
c.assign(n,elem) 复制n个elem,赋值给c
c.assign(beg,end)
c.assign(initlist) 将初值列initlist的所有元素赋值给c
c1.swap(c2) 置换c1和c2的数据
swap(c1,c2) 置换c1和c2的数据


c[idx] (不检查范围)
c.at(idx)(检查范围)


c.front()返回第一元素
c.back()返回最末元素


迭代器
c.begin()
c.end()
c.rbegin()
c.rend()


操作


c.push_back()
c.pop_back(elem)
c.insert(pos,elem) 在iterator 位置 pos之前方插入一个elem拷贝,并返回新元素的位置
c.insert(pos,n,elem) 插n个拷贝,并返回第一个新元素的位置
c.insert(pos,begin,end)
c.erase(pos) 一处iterator 位置pos上的元素 返回下一元素的位置
c.erase(beg,end) 
c.resize(num) 将元素数量改为num
c.resize(num,elem) 多出来的新元素是elem的拷贝
c.clear() 移除所有元素,将容器清空

1 0
原创粉丝点击