std::vector没有直接删除特定值元素的成员方法。所以必须使用remove算法:
std::vector<Elem> coll;
...
//remove all elements with value val
coll.erase(remove(coll.begin(), coll.end(), val),
coll.end());
remove()返回的是删除后的尾部迭代器,必须调用erase()显式地删除其后的元素。
如果仅删除第一个特定值元素:
std::vector<Elem> coll;
...
//remove first element with value val
std::vector<Elem>::iterator pos;
pos = find(coll.begin(), coll.end(), val);
if (pos != coll.end())
coll.erase(pos);
(转载请注明来源于金庆的专栏)
本文介绍如何在C++ STL中使用remove算法配合erase方法从std::vector中删除特定值的所有实例或首个实例。remove算法可以将指定值移到容器尾部,并返回新的尾部迭代器。
5462

被折叠的 条评论
为什么被折叠?



