首頁 >後端開發 >C++ >如何從 STL 向量中按值高效率刪除元素?

如何從 STL 向量中按值高效率刪除元素?

Patricia Arquette
Patricia Arquette原創
2024-11-22 12:44:15336瀏覽

How Do I Efficiently Remove Elements by Value from an STL Vector?

按值從STL 向量中刪除元素

使用STL 向量時,按值刪除元素可能看起來是一個基本操作操作,但向量類別本身似乎沒有簡單的方法。

std::remove 函數提供了一個解決方案這項共同任務。但是,需要注意的是 std::remove 並不會直接從容器中刪除元素。相反,它將滿足給定條件的元素重新定位到容器的開頭。要完成刪除過程,必須將此修改後的容器傳遞給container_type::erase以刪除現在位於末尾的冗餘元素。

考慮以下範例:

std::vector<int> vec;
// .. populate vec ..
int int_to_remove = n;
vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());

在此例如, std::remove 將所有不等於int_to_remove 的元素重新定位到向量的開頭,並傳回一個指向這些元素之後的第一個元素的迭代器。然後將該迭代器用作 std::erase() 的參數,有效地刪除向量末尾的剩餘元素。

以上是如何從 STL 向量中按值高效率刪除元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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