在C++ STL中的unordered_set max_load_factor()
unordered_set::max_load_factor() 是C++ STL中的一个函数,它返回(或设置)unordered set容器的当前最大负载因子。 负载因子是容器中元素数量与桶数(bucket_count)之间的比率。 默认情况下,无序set容器的最大负载因子设置为1.0。
max_load_factor()
语法 :
unordered_set_name.max_load_factor()
返回值 此方法返回当前的最大负载因子。 下面的程序说明了unordered_set :: max_load_factor()方法:
// C++程序说明
// unordered_set::max_load_factor()函数
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = { 1, 5, 4, 7 };
//获取ust中的max_load_factor
cout << "Maximum load factor of uset: "
<< uset.max_load_factor()
<< endl;
//现在检查当前负载系数
cout << "Current load factor of uset: "
<< uset.load_factor();
}
输出:
Maximum load factor of uset: 1
Current load factor of uset: 0.8
max_load_factor(float)
语法
unordered_set_name.max_load_factor(float z)
参数 此方法接受浮点数作为参数,以设置max_load_factor。
返回值: 此方法不返回任何值。下面的程序说明了unordered_set :: max_load_factor(float)方法:
// C++程序说明
// unordered_set :: max_load_factor()函数
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> uset = { 1, 5, 4, 7 };
//现在将max_load_factor设置为0.5
uset.max_load_factor(0.5);
//现在获取uset的新max_load_factor
cout << "New Maximum load factor of uset: "
<< uset.max_load_factor()
<< endl;
//检查新的负载系数
cout << "Current load factor of uset1: "
<< uset.load_factor()
<< endl;
}
输出:
New Maximum load factor of uset: 0.5
Current load factor of uset1: 0.363636
时间复杂度: O(1)