我跑進其中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