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