unordered_map load_factor в C ++ STL
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.