STL:vector的操作

读书笔记:

vector

头文件:

#include<vector>

vector支持随机访问,因此只要知道位置,便可以在常量时间内访问任何一个元素。

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

std::vector<int> v;// create an empty vector
v.reserve(80);     // reserve memory for 80 elements

避免重新分配内存的另一个方法是,初始化期间就向构造函数传递额外实参,构建足够的空间。

std::vector<T> v(5);//create a vector and initializes it with five values

 

vector的构造函数
std::vector<Elem> v创建一个空的vector
std::vector<Elem> v(v2)创建v2的同型vector,并成为v2的一份拷贝(每个元素都被复制)
std::vector<Elem> v=(v2)创建一个新的vector作为v2的拷贝(每个元素都被复制)
std::vector<Elem> v(n)创建一个大小为n的vector
std::vector<Elem> v(n,elem)创建一个大小为n,每个元素值为elem的vector
vector 非更易操作
v.empty()返回是否容器为空,空返回true,不为空返回true
v.size()返回目前的元素个数
v.reserve(num)预留大小为num的内存
vector的赋值操作
v=v2将v2的全部元素赋值给v
v.assign(n,elem)复制n个elem,赋值给v
v1.swap(v2)置换v1和v2的数据
swap(v1,v2)置换v1和v2的数据
元素访问
v[idx]返回索引idx所指的元素
v.at(idx)返回索引idx所指的元素(如果idx超出范围,抛出range-error异常)
v.front()返回第一元素
v.back()返回末尾元素
v.begin()返回一个random-access iterator 指向第一元素
v.end()返回一个random-access iterator 指向末尾元素的下一个位置
v.push_back(elem)附加一个elem的拷贝与末尾
v.pop_back()移除最后一个元素
v.insert(pos,elem)在iterator位置pos之前插入一个elem拷贝,并返回新元素的位置
v.insert(pos,n,elem)在iterator位置pos之前插入n个elem拷贝,并返回第一个新元素的位置
v.insert(pos,beg,end)在iterator位置pos之前插入区间[beg,end)内所有元素的一份拷贝,并返回第一个新元素的位置
v.emplace(pos,args)在iterator位置pos之前插入一个以args为初值的元素,并返回新元素的位置
v.emplace_back(args)附加以args为初值的元素于末尾
v.erase(pos)移除iterator位置pos上的元素,返回下一元素的位置
v.erase(beg,end)移除区间[beg,end)内所有元素,返回下一元素的位置
v.resize(num)将元素数量改为num(如果size 变大,多出来的新元素都需以默认构造函数完成初始化)
v.resize(num,elem)将元素数量改为num(如果size 变大,多出来的新元素都是elem的拷贝)
v.clear()移除所有元素,将容器清空

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值