unordered_map load_factor в C ++ STL

Опубликовано: 30 Декабря, 2021

Unordered_map :: load_factor () - это встроенная функция в C ++ STL, которая возвращает текущий коэффициент загрузки в контейнере unordered_map. Коэффициент загрузки - это соотношение между количеством элементов в контейнере (его размером) и количеством ведер (bucket_count):
load_factor = size / bucket_count
Коэффициент загрузки влияет на вероятность столкновения в хеш-таблице (т. Е. Вероятность того, что два элемента находятся в одном сегменте). Контейнер автоматически увеличивает количество сегментов, чтобы поддерживать коэффициент загрузки ниже определенного порога (его max_load_factor), вызывая повторное хеширование каждый раз, когда требуется расширение.

Синтаксис:

 unordered_map_name.load_factor ()

Параметр: функция не принимает никаких параметров.

Возвращаемое значение: функция возвращает текущий коэффициент загрузки.

Пример-1:

Пример-2:

// C++ program to illustrate the
// unordered_map::load_factor() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// declaration of unordered_map
unordered_map< char , int > 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 << " The bucket_count is: "
<< sample.bucket_count();
cout << " The load_factor is: "
<< sample.load_factor();
sample.insert({ 'e' , 0 });
sample.insert({ 'h' , 5 });
cout << " The size is: "
<< sample.size();
cout << " The bucket_count is: "
<< sample.bucket_count();
cout << " The load_factor is: "
<< sample.load_factor();
sample.insert({ 'f' , 1 });
cout << " The size is: "
<< sample.size();
cout << " The bucket_count is: "
<< sample.bucket_count();
cout << " The load_factor is: "
<< sample.load_factor();
return 0;
}
Выход:
Размер: 4
Bucket_count: 7
Load_factor: 0,571429.

Размер: 6
Bucket_count: 7
Load_factor: 0.857143.

Размер: 7
Bucket_count: 17
Load_factor: 0,411765.
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .