max_load_factor
描述 (Description)
它用于获取或设置最大负载系数。
声明 (Declaration)
以下是std :: unordered_set :: max_load_factor的声明。
C++11
float max_load_factor() const noexcept;
void max_load_factor ( float z );
参数 (Parameters)
z - 这是新的最大负载系数。
返回值
它返回当前的负载系数。
异常 (Exceptions)
如果任何元素比较对象抛出异常,则抛出异常。
请注意,无效参数会导致未定义的行为。
时间复杂
恒定时间。
例子 (Example)
以下示例显示了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