3

是否有准备好的功能来获取两个std::list列表的差异?

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

函数结果应该是list1_unique: obj1, list1_and_list2: obj2, obj3, obj4, list2_unique: obj5

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

4

1 回答 1

8

如果您的列表已排序(如您的示例所示),std::set_difference请获取list1_uniquelist2_unique,并std::set_intersection获取list1_and_list2。如果它们尚未排序,您可以使用std::list::sort().

于 2012-06-05T14:07:14.990 回答