如何删除std::vector末尾的几个元素
How to remove several elements from the end of std::vector?
假设我有一个整数的std::vector
:
std::vector<int> v;
v
包含100个元素,我想删除最后10个元素。我能想到这个解决方案:
v.erase(v.end() - 10, v.end());
有更好的吗?
你可以试试这个:
v.resize(v.size()-10);
但是,您需要根据您的方法对其进行基准测试。我不确定它是否更好,甚至可能完全相同。
您也可以在调整大小之前检查大小:
if(v.size()>=10){
v.resize(v.size()-10);
}
编辑:
调整大小将删除矢量末端的元素:http://www.cplusplus.com/reference/vector/vector/resize/
如果n小于当前容器大小,则内容为减少到其前n个元素,去除超出的元素(并破坏他们)。
相关文章:
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- 如何将两个不同矢量的同一位置的两个元素组合在一起
- 在C++中,如何通过几种类型从元组中选择多个元素
- 删除列表中的第n个元素
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何实现 Front() 方法以返回模板化双向链表C++的第一个元素?
- Lower_bound不适用于具有 3 个元素的向量的最后一个元素
- 如何返回或护理项目清单基于几个类别
- 在链链表中手动插入第五个元素
- 如何在 c++ 中根据第二个元素按降序对列表进行排序
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 我如何使用Qsort对结构(由几个不同元素组成)进行排序
- 我有一个包含几个重复元素的数组,我想找到最接近数组末尾的重复元素的索引
- 在几个对象中找到一个相同的元素
- 如何删除std::vector末尾的几个元素
- 使用std::reverse来反转向量的前几个元素的顺序
- 在几个顺序数组元素中输入相同的值
- 几个相同大小的向量.给定其中一个向量中的元素,快速访问其他向量中的相应元素
- 在std::set中插入元素会导致几个错误