2012-06-05 2 views
3

두 개의 std::list리스트의 차이를 얻는 준비 함수가 있습니까?두 개의 std :: list리스트를 비교하고 다른 오브젝트 얻기

예를 들어 나는 list1: obj1, obj2, obj3, obj4list2: obj2, obj3, obj4, obj5입니다.

함수 결과는 list1_unique: obj1, list1_and_list2: obj2, obj3, obj4, list2_unique: obj5이어야합니다.

(그것은 내 자신의 구현을 작성하기 어렵지 않다하지만 표준 기능을 선호하는) 당신의 목록을 정렬하는 경우 list1_and_list2를 얻을 수 list1_uniquelist2_uniquestd::set_intersection를 얻기 위해, (당신의 예제로 나타나는) std::set_difference

+1

아마도 목록이 아닌 세트를 사용해야합니다. –

+1

필자는 자주 요소를 추가/제거 (목록을 수동으로 정렬 유지)하기 때문에 목록을 사용하는 것이 좋습니다. '설정'은 '자동 정렬'때문에 덜 효과적 일 수 있습니다. – brigadir

답변

8

을 . 정렬되지 않은 경우 std::list::sort()으로 정렬 할 수 있습니다.

+0

목록이 정렬되고 그 순서를 나타내는 비교 함수를 정의 할 수 있습니다. 대답 해줘서 고마워요! – brigadir

+0

하나 이상의 upvote가 필요합니다. –

+0

@JohnDibling OP에서 그런 식으로 대우 받아야한다는 이유로 2 점을 얻습니다. 나는 그들이 적어도 그것을 받아들이기에 좋은 것으로 판결 된 답변을 투표하지 않은 사람들을 결코 이해하지 못했지만 잘 받아 들였다. –

관련 문제