我有一個向量(順序是重要的)的對象(讓我們稱之爲myobj類),我試圖一次刪除多個對象。C++ remove_if對象的向量
class vectorList
{
vector<*myobj> myList;
};
class myobj
{
char* myName;
int index;
bool m_bMarkedDelete;
}
我在想,最好的辦法做到這一點會在標示爲刪除特定MyObj中的對象,然後對向量調用myList.remove_if()。但是,我並不確定如何使用謂詞等。我應該在對象中創建一個成員變量,它允許我說我想刪除myobj,然後創建一個謂詞來檢查是否設置了成員變量?
如何將謂詞作爲vectorList類的一部分來實現?
它可能不相關,但std :: list保留順序並具有自己的remove_if函數,該函數速度更快且不需要單獨的擦除。 – Ant
@Ant:'list :: remove_if'比在矢量上移除和擦除更快嗎?在什麼情況下?在我做過的許多合理測試中,情況並非如此。不要以爲擦除是一個恆定的列表操作,它會更快。 'std :: vector'的連續性和隨機訪問保證讓它獲得了很多性能。 –