在C++ STL中的unordered_multiset load_factor()函数
unordered_multiset :: load_factor() 是C++ STL中的内置函数,它返回unordered_multiset容器中当前负载因子的值。负载因子是容器中元素数量(其大小)和桶数(bucket_count)之间的比率:
负载因子=大小/桶计数
负载因子影响哈希表中碰撞的概率(即,在相同的桶中定位两个元素的概率)。容器通过在需要扩展时导致重新哈希,自动增加桶数以将负载因子保持在特定阈值(其max_load_factor)以下。
语法 :
unordered_multiset_name.load_factor
参数: 该函数不接受任何参数。
返回值: 该函数返回当前负载因子。它可以是整数或双精度型。
下面的程序说明了unordered_multiset :: load_factor()函数:
程序1:
// C ++程序说明
// unordered_multiset :: load_factor()函数
#include
使用命名空间std;
int main()
{
//声明
unordered_multiset sample;
//插入元素
sample.insert('a');
sample.insert('b');
cout <<“大小为:”<< sample.size();
cout <<“\ n bucket_count为:”<< sample.bucket_count();
cout <<“\ n load_factor为:”<< sample.load_factor();
sample.insert('b');
sample.insert('b');
cout <<“\ n \ n大小为:”<< sample.size();
cout <<“\ n bucket_count为:”<< sample.bucket_count();
cout <<“\ n load_factor为:”<< sample.load_factor();
sample.insert('z');
cout <<“\ n \ n大小为:”<< sample.size();
cout <<“\ n bucket_count为:”<< sample.bucket_count();
cout <<“\ n load_factor为:”<< sample.load_factor();
返回0;
}
大小为:2
bucket_count为:3
load_factor为:0.666667
大小为:4
bucket_count为:7
load_factor为:0.571429
大小为:5
bucket_count为:7
load_factor为:0.714286
程序2:
// C ++程序说明
// unordered_multiset :: load_factor()函数
#include
using namespace std;
int main()
{
//声明
unordered_multiset sample;
//插入元素
sample.insert(1);
sample.insert(1);
cout <<“大小为:”<< sample.size();
cout <<“\ n bucket_count为:”<< sample.bucket_count();
cout <<“\ n load_factor为:”<< sample.load_factor();
sample.insert(1);
sample.insert(2);
cout <<“\ n \ n大小为:”<< sample.size();
cout <<“\ n bucket_count为:”<< sample.bucket_count();
cout <<“\ n load_factor为:”<< sample.load_factor();
sample.insert(2);
cout <<“\ n \ n大小为:”<< sample.size();
cout <<“\ n bucket_count为:”<< sample.bucket_count();
cout <<“\ n load_factor为:”<< sample.load_factor();
返回0;
}
大小为:2
bucket_count为:3
load_factor为:0.666667
大小为:4
bucket_count为:7
load_factor为:0.571429
大小为:5
bucket_count为:7
load_factor为:0.714286