2014-01-14 16 views
0

我現在正在使用一些來自我的同事的代碼,他們在C++中創建了一個不可取的容器。該容器看起來像:如果我們無法從C++容器中刪除元素,我們該怎麼辦

NoDeleteContainer<MyObject> objList; 

與他的容器,我現在創建一些對象他們內部objList。我現在所做的是分析每個對象內部特徵objList,如果對象的特徵符合某些標準,我會保留它們。然後,我現在的問題是我不知道什麼是最好的做法,讓他們做的,有幾種解決方案,我可以計算出:

解決方案1:

NoDeleteContainer<MyObject*> selObjPointerList; 
//selObjPointerList will then keeps the pointer to the selected objects. 

解決方案2:

std::vector indictorVec(objList.size(),false); 
    // change the indictor's value to true if its corresponding MyObject fulfill the requirements. 

解決方案3:

std::vector<MyObject*> selObjPointerList; 
    // similar to Solution 1 

然後我的問題是哪種解決方案是最好的,或者如果你有新的S解決方案,隨時討論他們。

+6

爲什麼不問你的同事這個​​容器的要點是什麼?如果它的目的是保存你不應該刪除的元素(不管這意味着什麼),這聽起來像你不應該使用它。 – juanchopanza

回答

2

在不可變容器上進行變化的常用方法是創建容器的新實例,僅包含所選項目。

這可能有助於在過濾過程中使用可變容器。

不可變容器通常遇到某些多線程編程風格。

相關問題