Compare two std::list lists and get different objects

c++, compare, stdlist

Solution

If your lists are sorted (as your examples appear to be), `std::set_difference` to get `list1_unique` and `list2_unique`, and `std::set_intersection` to get `list1_and_list2`. If they're not already sorted, you could sort them with `std::list::sort()`.

Problem

Is there ready function to get difference of two `std::list` lists? For example I have `list1: obj1, obj2, obj3, obj4` and `list2: obj2, obj3, obj4, obj5`. The function result should be `list1_unique: obj1`, `list1_and_list2: obj2, obj3, obj4`, `list2_unique: obj5`. (It's not hard to write my own implementation but I would prefer standard function)

Original source