名前空間
変種
操作

operator==,!=(std::unordered_set)

提供: cppreference.com
 
 
 
 
template< class Key, class Hash, class KeyEqual, class Allocator >

bool operator==( const unordered_set<Key,Hash,KeyEqual,Allocator>& lhs,

                 const unordered_set<Key,Hash,KeyEqual,Allocator>& rhs );
(1)
template< class Key, class Hash, class KeyEqual, class Allocator >

bool operator!=( const unordered_set<Key,Hash,KeyEqual,Allocator>& lhs,

                 const unordered_set<Key,Hash,KeyEqual,Allocator>& rhs );
(2)

2つの非順序コンテナの内容を比較します。

2つの非順序コンテナ lhs および rhs の内容は、以下の条件が満たされる場合に等しくなります。

  • lhs.size() == rhs.size()
  • lhs.equal_range(lhs_eq1) から取得された同等な要素の各グループ [lhs_eq1, lhs_eq2) が他方のコンテナの rhs.equal_range(rhs_eq1) から取得した同等な要素の対応するグループ [rhs_eq1, rhs_eq2) を持ち、これらが以下の性質を持つ。

KeyEqualityComparable でなければ、動作は未定義です。

また、Hash および (C++20以前) KeyEquallhs および rhs に対して同じ動作をしない場合、または Key に対する operator==KeyEqual によって導入される等しいキーのグループへの分割の改良でない (つまり operator== を使用して等しいと比較される2つの要素が異なるグループに分割される場合)、動作は未定義です。

[編集] 引数

lhs, rhs - 比較する非順序コンテナ

[編集] 戻り値

1) コンテナの内容が等しければ true、そうでなければ false
2) コンテナの内容が等しくなければ true、そうでなければ false

[編集] 計算量

平均的なケースでは N、ワーストケースでは N2 に比例する回数の value_type に対する operator== の呼び出し、 key_eq によって返される述語の呼び出し、および hash_function によって返されるハッシュ関数の呼び出し。 ただし N はコンテナのサイズです。