Given two std::sets, one can simply iterate through both sets simultaneously and compare the elements, resulting in linear complexity. This doesn\'t work for
Complexity of operator== and operator!=:
Linear complexity in the average case. N2 in the worst case, where N is the size of the container.
More details in the standard §23.2.5, point 11:
For unordered_set and unordered_map, the complexity of operator== (i.e., the number of calls to the == operator of the value_type, to the predicate returned by
key_equal(), and to the hasher returned by hash_function()) is proportional to N in the average case and to N2 in the worst case, where N is a.size().