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