【发布时间】:2016-11-23 13:18:09
【问题描述】:
我知道erase-remove可以用来删除匹配某个值的元素,像这样:
v.erase(std::remove(v.begin(), v.end(), value), v.end());
但是,如果我的向量有对象并且我只需要删除其中一个变量与特定值匹配的对象,那么擦除删除是否可能? 到目前为止,我一直在使用:
auto i = vect.begin();
while (i!=vect.end())
if ((*i).field==someValue)
i=vect.erase(i);
else
++i;
有没有办法对擦除删除做同样的事情,或者这个 while 循环是正确的选择?
【问题讨论】: