更新:我在使用 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;