unordered_map load_factor en C++ STL

Unordered_map::load_factor() es una función integrada en C++ STL que devuelve el factor de carga actual en el contenedor unordered_map. 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 cubos (cubo_recuento):
factor_carga = tamaño/recuento_cubo
El factor de carga influye en la probabilidad de colisión en la tabla hash (es decir, la probabilidad de estando dos elementos ubicados en el mismo balde). 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_map_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.

Ejemplo 1:

// 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<int, int> 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;
}
Producción:

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

Ejemplo-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 << "\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;
}
Producción:

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

Publicación traducida automáticamente

Artículo escrito por ankit15697 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *