我跑进其中i需要删除向量的最后一个元素,直到一定的条件被满足的一个问题(在这个例子起见让它成为元素不是零)除去矢量最后元素,直到条件
我写了这个代码,它的伎俩 -
auto next = vec.rbegin();
while (next != vec.rend())
{
auto current = next++;
if (*current == 0)
vec.pop_back();
else
break;
}
但我宁愿发现,我可以使用(我可以使用find_if然后删除一个STL算法,但我想循环一次通过我删除的元素...)
另外,恐怕我可能在这里调用一些UB,我应该担心吗?
看一看的[擦除remove惯用法](http://en.wikipedia.org/wiki/Erase- remove_idiom)。 – juanchopanza 2014-11-04 20:21:11
你写的循环将删除最后的'n'元素,其中'n'是整个向量中的0的数量,而不是末尾的0的数量。那是你的意思吗? – 2014-11-04 20:22:23
@MarkB,谢谢,我忘了else语句。 – user1708860 2014-11-04 20:25:26