unordered_map :: load_factor()是C++ STL中的内置函数,该函数在unordered_map容器中返回当前的加载因子。负载因子是容器中元素数量(其大小)与存储桶数量(bucket_count)之间的比率:
load_factor =大小/ bucket_count
负载因子会影响哈希表中发生冲突的概率(即,两个元素位于同一存储桶中的概率)。通过在每次需要扩展时进行一次重新哈希处理,容器会自动增加存储桶的数量,以将负载系数保持在特定阈值(其max_load_factor)以下。
句法:
unordered_map_name.load_factor()
参数:该函数不接受任何参数。
返回值:该函数返回当前的负载系数。
示例1:
// C++ program to illustrate the
// unordered_map::load_factor() function
#include
using namespace std;
int main()
{
// declaration of unordered_map
unordered_map sample;
// inserts element
sample.insert({ 1, 2 });
sample.insert({ 2, 4 });
sample.insert({ 5, 8 });
sample.insert({ 7, 10 });
cout << "The size is: " << sample.size();
cout << "\nThe bucket_count is: "
<< sample.bucket_count();
cout << "\nThe load_factor is: "
<< sample.load_factor();
sample.insert({ 9, 0 });
cout << "\n\nThe size is: "
<< sample.size();
cout << "\nThe bucket_count is: "
<< sample.bucket_count();
cout << "\nThe load_factor is: "
<< sample.load_factor();
sample.insert({ 11, 1 });
cout << "\n\nThe size is: "
<< sample.size();
cout << "\nThe bucket_count is: "
<< sample.bucket_count();
cout << "\nThe load_factor is: "
<< sample.load_factor();
return 0;
}
输出:
The size is: 4
The bucket_count is: 7
The load_factor is: 0.571429
The size is: 5
The bucket_count is: 7
The load_factor is: 0.714286
The size is: 6
The bucket_count is: 7
The load_factor is: 0.857143
示例2:
// C++ program to illustrate the
// unordered_map::load_factor() function
#include
using namespace std;
int main()
{
// declaration of unordered_map
unordered_map sample;
// inserts element
sample.insert({ 'a', 2 });
sample.insert({ 'b', 4 });
sample.insert({ 'c', 8 });
sample.insert({ 'd', 10 });
cout << "The size is: " << sample.size();
cout << "\nThe bucket_count is: "
<< sample.bucket_count();
cout << "\nThe load_factor is: "
<< sample.load_factor();
sample.insert({ 'e', 0 });
sample.insert({ 'h', 5 });
cout << "\n\nThe size is: "
<< sample.size();
cout << "\nThe bucket_count is: "
<< sample.bucket_count();
cout << "\nThe load_factor is: "
<< sample.load_factor();
sample.insert({ 'f', 1 });
cout << "\n\nThe size is: "
<< sample.size();
cout << "\nThe bucket_count is: "
<< sample.bucket_count();
cout << "\nThe load_factor is: "
<< sample.load_factor();
return 0;
}
输出:
The size is: 4
The bucket_count is: 7
The load_factor is: 0.571429
The size is: 6
The bucket_count is: 7
The load_factor is: 0.857143
The size is: 7
The bucket_count is: 17
The load_factor is: 0.411765
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。