vector的增、删、查、改
1.增加元素:
push_back(val) 向尾部添加元素,自动扩容 v.push_back(11); → v=[11]
emplace_back(val) 比 push_back 更高效(直接构造 ) v.emplace_back(13); → v=[11,13]
insert(pos,val) 在指定位置插入元素 v.insert(v.begin(), 2); → v=[2,11,13]
2.删除元素:
pop_back() 删除尾部元素,不返回值 v.pop_back(); → v=[2,11]
erase(pos) 删除指定位置元素 v.erase(v.begin()); → v=[11]
clear() 清空所有元素,长度变为 0 v.clear(); → v=[]
3.访问、修改元素:
v[index] 下标访问(和数组一致),无越界检查 v[0] = 17; → v=[17]
v.at(idex) 下标访问,有越界检查(更安全) v.at(0) = 19; → v=[19]
v.front() 获取第一个元素 int first = v.front(); → 19
v.back 获取最后一个元素 int last = v.back(); → 19
4.状态查询:
v.size() 返回元素个数(unsigned int 类型) int len = v.size(); → 1
v.empty() 判断是否为空(空返回 true) if(v.empty()) { ... }
v.capacity() 返回当前容量(已分配的内存能存的元素数 扩容前容量 < size 时会自动扩容
v.resize(n) 调整长度为 n,不足补 0,超出截断 v.resize(3); → v=[19,0,0]
push_back(val) 向尾部添加元素,自动扩容 v.push_back(11); → v=[11]
emplace_back(val) 比 push_back 更高效(直接构造 ) v.emplace_back(13); → v=[11,13]
insert(pos,val) 在指定位置插入元素 v.insert(v.begin(), 2); → v=[2,11,13]
2.删除元素:
pop_back() 删除尾部元素,不返回值 v.pop_back(); → v=[2,11]
erase(pos) 删除指定位置元素 v.erase(v.begin()); → v=[11]
clear() 清空所有元素,长度变为 0 v.clear(); → v=[]
3.访问、修改元素:
v[index] 下标访问(和数组一致),无越界检查 v[0] = 17; → v=[17]
v.at(idex) 下标访问,有越界检查(更安全) v.at(0) = 19; → v=[19]
v.front() 获取第一个元素 int first = v.front(); → 19
v.back 获取最后一个元素 int last = v.back(); → 19
4.状态查询:
v.size() 返回元素个数(unsigned int 类型) int len = v.size(); → 1
v.empty() 判断是否为空(空返回 true) if(v.empty()) { ... }
v.capacity() 返回当前容量(已分配的内存能存的元素数 扩容前容量 < size 时会自动扩容
v.resize(n) 调整长度为 n,不足补 0,超出截断 v.resize(3); → v=[19,0,0]
全部评论
相关推荐
点赞 评论 收藏
分享

