假设我有std::vector
个整数:
std::vector<int> v;
v
包含100个元素,我想删除最后10个元素。我能想到这个解决方案:
v.erase(v.end() - 10, v.end());
还有什么更好的吗?
答案 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个元素,去除那些(和破坏 它们)。