以下の 2 つの順序付けられていない集合が同等であると評価されることを期待していましたが、驚いたことに、そうではありませんでした。これは、2 つの文字列が同じハッシュ バケットに格納され、operator== がセット内の項目を順次比較するために発生します。これは std::unordered_set のバグと考えるべきですか? 誰かがこれに対するエレガントな回避策を持っていますか?
std::unordered_set<std::string> a,b;
a.insert("500666");
a.insert("961021");
b.insert("961021");
b.insert("500666");
if (a == b) // condition is evaulated as false
{
}