根據C 中的值擦除向量元素
嘗試根據向量元素的值而不是位置來擦除向量元素時會出現此問題。考慮一個具有以下值的向量:
5 9 2 8 0 7
通常,我們可以使用以下程式碼刪除包含值「8」的第四個元素:
myVector.erase(myVector.begin() + 4);
但是,是否還有更多直接透過值刪除元素的方法?
std::remove() 來救援
std::remove() 函數在這裡發揮作用。它從範圍中刪除與特定值相符的元素。與erase()結合,我們可以使用擦除刪除慣用法來實現我們的目標:
#include <algorithm> ... myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end());
這個組合迭代向量,刪除所有「8」的實例,然後擦除修改的範圍。產生的向量現在包含:
5 9 2 0 7
以上是如何在C中根據值刪除向量元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!