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

时间:2015-12-24 11:31:41

标签: c++ c++11 vector stl

假设我有std::vector个整数:

std::vector<int> v;

v包含100个元素,我想删除最后10个元素。我能想到这个解决方案:

v.erase(v.end() - 10, v.end());

还有什么更好的吗?

1 个答案:

答案 0 :(得分:4)

你可以试试这个:

v.resize(v.size()-10);

但是,您需要根据您的方法对其进行基准测试。我不确定它是否更好,甚至可能完全相同。

您还可以在调整大小之前检查尺寸:

if(v.size()>=10){
    v.resize(v.size()-10);
}

修改

调整大小会删除向量末尾的元素: http://www.cplusplus.com/reference/vector/vector/resize/

  

如果n小于当前容器大小,则内容为   减少到它的前n个元素,去除那些(和破坏   它们)。