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);
(转载请注明来源于 金庆的专栏)