Метод load_factor
Метод load_factor класса unordered_map возвращает текущий коэффициент загрузки контейнера. Коэффициент загрузки - это отношение количества элементов в контейнере к количеству корзин (buckets). Метод не принимает параметров и возвращает значение типа float. Чем выше этот показатель, тем больше коллизий возникает при поиске, вставке и удалении элементов.
Синтаксис
map.load_factor()
Пример
Давайте создадим unordered_map, добавим в него несколько элементов и выведем текущий коэффициент загрузки:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<int, string> map;
map[1] = "abcde";
map[2] = "12345";
map[3] = "hello";
cout << map.load_factor() << endl;
return 0;
}
Результат выполнения кода:
0.1875
Пример
Давайте сравним коэффициент загрузки до и после вызова метода reserve, который увеличивает количество корзин:
#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
unordered_map<int, string> map;
map[1] = "abcde";
map[2] = "12345";
map[3] = "hello";
cout << "Before: " << map.load_factor() << endl;
map.reserve(100);
cout << "After: " << map.load_factor() << endl;
return 0;
}
Результат выполнения кода:
"Before: 0.1875"
"After: 0.00585938"
Смотрите также
-
класс
unordered_map,
который представляет собой хеш-таблицу -
метод
bucket_count,
который возвращает количество корзин -
метод
rehash,
который изменяет количество корзин -
метод
reserve,
который резервирует место под элементы