set<int> a = {1, 2, 3};
set<int> b = {3, 4, 5};
set<int> c;
set_union(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
// 1 2 3 4 5
set_intersection(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
// 3
set_difference(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
// 1 2
set_difference(b.begin(), b.end(), a.begin(), a.end(), inserter(c, c.begin()));
// 4 5
set_symmetric_difference(a.begin(), a.end(), b.begin(), b.end(), inserter(c, c.begin()));
// 1 2 4 5