更新: Visual Studio 2013 を使用する Windows でこの「問題」が発生します。Clang 3.3 と llvm 標準ライブラリのごく最近のバージョンを使用する Linux で同じコードを使用しても、これは発生しません。それでも、これを Microsoft のバグとして書き留める準備はできていません。
使用している unordered_set に奇妙な問題があることに気付きました。load_factor は 1 で、最大サイズは数百万ですが、以下は maximum_bucket_count がわずか 8 であることを示しています。さまざまなタイプのセットでこれを試しました。
誰でもこれを説明できますか?
これは、初期化または構成に依存する数値ではなく、システムまたはライブラリの実装制限であると想定されています。max_bucket_count が max_count (つまり、数百万) と同じである以下のコードの例を見てきました。
std::unordered_set<int> testSet;
std::cout << "max_size = " << testSet.max_size() << std::endl;
std::cout << "max_bucket_count = " << testSet.max_bucket_count() << std::endl;
std::cout << "max_load_factor = " << testSet.max_load_factor() << std::endl;