首頁 >後端開發 >C++ >如何從STL向量中刪除具有特定值的元素?

如何從STL向量中刪除具有特定值的元素?

Patricia Arquette
Patricia Arquette原創
2024-11-21 05:57:09962瀏覽

How to Remove Elements with a Specific Value from an STL Vector?

從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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn