如何删除std::vector末尾的几个元素

How to remove several elements from the end of std::vector?

本文关键字:几个 元素 何删除 删除 std vector      更新时间:2023-10-16

假设我有一个整数的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个元素,去除超出的元素(并破坏他们)。