2016-08-18 4 views
1

나는 우리가 개체의 벡터에서 요소를 지우는 방법은 무엇입니까?

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

INT

의 벡터에서 요소를 제거 할 수있는 방법을 알고 어떤 경우는 obj가 나는 특정 ID에 들고 벡터를 제거 할 방법

class obj { 

int ID; 
string name; 

} 

있는 vector<obj> vec?

std::vector<obj> vec; 
// .. put in some values .. 
int id_to_remove = n; 
vec.erase(std::remove(vec.ID.begin(), vec.ID.end(), id_to_remove), vec.end()); 
+0

remove destructor –

답변

2

지금 당신이 특정 기준과 일치하는 오브젝트를 삭제 찾고 있습니다, 당신은 std::remove_if 대신 std::remove 사용해야합니다.

vec.erase(
    std::remove_if(
     vec.ID.begin() 
    , vec.ID.end() 
    , [](const obj& x) { 
      // ID needs to be public in order for this to compile 
      return x.ID == id_to_remove; 
     } 
    ) 
, vec.end() 
); 
관련 문제