是否有准备好的功能来区分两个std::list
列表?
例如,我有list1: obj1, obj2, obj3, obj4
和list2: obj2, obj3, obj4, obj5
。
功能结果应为list1_unique: obj1
,list1_and_list2: obj2, obj3, obj4
,list2_unique: obj5
。
(编写我自己的实现并不难,但我更喜欢标准函数)
答案 0 :(得分:8)
如果您的列表已排序(如您的示例所示),则std::set_difference
获取list1_unique
和list2_unique
,std::set_intersection
获取list1_and_list2
。如果他们尚未排序,您可以使用std::list::sort()
对其进行排序。