How expensive is comparing two unordered sets for equality?

后端 未结 2 388
清歌不尽
清歌不尽 2021-01-17 14:59

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

2条回答
  •  执念已碎
    2021-01-17 15:14

    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().

提交回复
热议问题