比较两个std :: list列表并获取不同的对象

时间:2012-06-05 14:03:35

标签: c++ compare stdlist

是否有准备好的功能来区分两个std::list列表?

例如,我有list1: obj1, obj2, obj3, obj4list2: obj2, obj3, obj4, obj5

功能结果应为list1_unique: obj1list1_and_list2: obj2, obj3, obj4list2_unique: obj5

(编写我自己的实现并不难,但我更喜欢标准函数)

1 个答案:

答案 0 :(得分:8)

如果您的列表已排序(如您的示例所示),则std::set_difference获取list1_uniquelist2_uniquestd::set_intersection获取list1_and_list2。如果他们尚未排序,您可以使用std::list::sort()对其进行排序。