Unordered_multimap ::load_factor() es una función integrada en C++ STL que devuelve el factor de carga actual en el contenedor unordered_multimap. El factor de carga es la relación entre el número de elementos en el contenedor (su tamaño) y el número de baldes (bucket_count):
factor_de_carga = tamaño / número_de_cubetas
El factor de carga influye en la probabilidad de colisión en la tabla hash (es decir, la probabilidad de que dos elementos estén ubicados en el mismo cubo). El contenedor aumenta automáticamente la cantidad de cubos para mantener el factor de carga por debajo de un umbral específico (su max_load_factor), provocando un refrito cada vez que se necesita una expansión.
Sintaxis :
unordered_multimap_name.load_factor()
Parámetro : La función no acepta ningún parámetro.
Valor devuelto : la función devuelve el factor de carga actual. Puede ser de tipo entero o doble.
Los siguientes programas ilustran la función unordered_multimap::load_factor() :
Programa 1 :
// C++ program to illustrate the // unordered_multimap::load_factor() function #include <iostream> #include <unordered_map> using namespace std; int main() { // declaration unordered_multimap<int, int> sample; // inserts element sample.insert({ 1, 2 }); sample.insert({ 1, 3 }); 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({ 1, 1 }); 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({ 1, 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: 5 The bucket_count is: 7 The load_factor is: 0.714286 The size is: 7 The bucket_count is: 17 The load_factor is: 0.411765 The size is: 8 The bucket_count is: 17 The load_factor is: 0.470588
Programa 2 :
// C++ program to illustrate the // unordered_multimap::load_factor() #include <iostream> #include <unordered_map> using namespace std; int main() { // declaration unordered_multimap<char, char> sample; // inserts element sample.insert({ 'a', 'b' }); sample.insert({ 'a', 'b' }); sample.insert({ 'a', 'd' }); sample.insert({ 'b', 'e' }); sample.insert({ 'b', 'd' }); cout << "The size is: " << sample.size(); cout << "\nThe bucket_count is: " << sample.bucket_count(); cout << "\nThe load_factor is: " << sample.load_factor(); sample.insert({ 'b', 'k' }); sample.insert({ 'b', 'h' }); 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({ 'z', 'j' }); 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: 5 The bucket_count is: 7 The load_factor is: 0.714286 The size is: 7 The bucket_count is: 17 The load_factor is: 0.411765 The size is: 8 The bucket_count is: 17 The load_factor is: 0.470588