2014-01-14 1 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 

그럼 내 질문에 가장 적합한 솔루션을하거나 새의이있는 경우 olutions, 자유롭게 그들에 대해 토론 할 수 있습니다.

+6

동료에게이 컨테이너의 요점을 묻지 않는 이유는 무엇입니까? 삭제되지 않아야하는 요소를 보유하도록 설계된 경우 (의미가 무엇이든), 사용하지 않아야하는 것처럼 들립니다. – juanchopanza

답변

2

변경 불가능한 컨테이너에 변형을 만드는 일반적인 방법은 선택한 항목 만 사용하여 컨테이너의 새 인스턴스를 만드는 것입니다.

필터링 프로세스 중에 변경 가능한 컨테이너를 사용하면 도움이 될 수 있습니다.

불변 컨테이너는 일반적으로 특정 스타일의 멀티 스레드 프로그래밍에서 발생합니다.

관련 문제