C++ Unordered_set 库 - max_load_factor
描述
它用于获取或设置最大负载因子。
声明
以下是 std::unordered_set::max_load_factor 的声明。
C++11
float max_load_factor() const noexcept; void max_load_factor ( float z );
参数
z − 这是新的最大负载系数。
返回值
它返回当前的负载因子。
异常
如果任何元素比较对象抛出异常,则抛出异常。
请注意,无效的参数会导致未定义的行为。
时间复杂度
固定的时间。
示例
以下示例显示了 std::unordered_set::max_load_factor 的用法。
#include <iostream>
#include <string>
#include <unordered_set>
int main () {
std::unordered_set<std::string> myset =
{"sai", "Ram", "krishna", "prasad", "Bangalore", "india"};
std::cout << "current max_load_factor: " << myset.max_load_factor() << std::endl;
std::cout << "current size: " << myset.size() << std::endl;
std::cout << "current bucket_count: " << myset.bucket_count() << std::endl;
std::cout << "current load_factor: " << myset.load_factor() << std::endl;
float z = myset.max_load_factor();
myset.max_load_factor ( z / 2.0 );
std::cout << "[max_load_factor halved]" << std::endl;
std::cout << "new max_load_factor: " << myset.max_load_factor() << std::endl;
std::cout << "new size: " << myset.size() << std::endl;
std::cout << "new bucket_count: " << myset.bucket_count() << std::endl;
std::cout << "new load_factor: " << myset.load_factor() << std::endl;
return 0;
}
让我们编译并运行上面的程序,这将产生以下结果 −
current max_load_factor: 1 current size: 6 current bucket_count: 7 current load_factor: 0.857143 [max_load_factor halved] new max_load_factor: 0.5 new size: 6 new bucket_count: 17 new load_factor: 0.352941

