Biblioteca C ++ Unordered_multimap - función bucket ()

Descripción

La función C ++ std::unordered_multimap::bucket()devuelve el número de depósito donde se encuentra el elemento con la clave k .

Bucket es un espacio de memoria en la tabla hash del contenedor al que se asignan elementos en función del valor hash de su clave. El rango válido de depósitos es de 0 a bucket_count - 1 .

Declaración

A continuación se muestra la declaración de la función std :: unordered_multimap :: bucket () del encabezado std :: unordered_map ().

C ++ 11

size_type bucket(const key_type& k) const;

Parámetros

k - Llave cuyo balde se va a ubicar.

Valor devuelto

Devuelve el número de pedido del cubo correspondiente a la clave k .

Complejidad del tiempo

Constante es decir O (1)

Ejemplo

El siguiente ejemplo muestra el uso de la función std :: unordered_multimap :: bucket ().

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_multimap<char, int> umm = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5}
            };
   cout << "Unordered multimap contains following elements" << endl;

   for (auto it = umm.begin(); it != umm.end(); ++it) {
      cout << "Element " << "[" << it->first  << " : "
          << it->second << "] " << "is in " 
          << umm.bucket(it->first) << " bucket." << endl; 
   }

   return 0;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Unordered multimap contains following elements
Element [e : 5] is in 2 bucket.
Element [a : 1] is in 9 bucket.
Element [b : 2] is in 10 bucket.
Element [c : 3] is in 0 bucket.
Element [d : 4] is in 1 bucket.