是否有准备好的功能来获取两个std::list
列表的差异?
例如我有list1: obj1, obj2, obj3, obj4
和list2: obj2, obj3, obj4, obj5
。
函数结果应该是list1_unique: obj1
, list1_and_list2: obj2, obj3, obj4
, list2_unique: obj5
。
(编写自己的实现并不难,但我更喜欢标准函数)
如果您的列表已排序(如您的示例所示),std::set_difference
请获取list1_unique
和list2_unique
,并std::set_intersection
获取list1_and_list2
。如果它们尚未排序,您可以使用std::list::sort()
.