從stl 向量中刪除具有特定值的元素
STL 向量是C 中流行的容器,但他們的API 缺乏基於刪除元素的方法關於他們的價值觀。這就提出了一個問題:
如何根據其值從 stl 向量中刪除項目?
儘管向量類別中沒有專用方法,有一個使用標準函式庫函數的解。
解決方案:
使用 std::remove 函數,它不會直接從容器中刪除元素,而是重新排列它們。它將不應該被刪除的元素移動到容器的開頭,並傳回一個指向它們之後的下一個元素的迭代器。
要完成刪除過程,請將此迭代器傳遞給container_type::erase,它實際上會刪除額外的元素現在位於容器的末尾。以下是一個範例:
std::vector<int> vec; // Populate the vector... int int_to_remove = n; vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
此程式碼首先使用 std::remove 來識別不要刪除的元素並將其移至向量的開頭。然後,呼叫 vec.erase 從容器中永久刪除這些額外元素。
以上是如何從STL向量中刪除具有特定值的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!