Bibliothèque C ++ Unordered_multimap - fonction bucket ()

La description

La fonction C ++ std::unordered_multimap::bucket()renvoie le numéro de compartiment où se trouve l'élément avec la clé k .

Bucket est un espace mémoire dans la table de hachage du conteneur auquel les éléments sont affectés en fonction de la valeur de hachage de leur clé. La plage valide de buckets va de 0 à bucket_count - 1 .

Déclaration

Voici la déclaration de la fonction std :: unordered_multimap :: bucket () de l'en-tête std :: unordered_map ().

C ++ 11

size_type bucket(const key_type& k) const;

Paramètres

k - Clé dont le seau doit être localisé.

Valeur de retour

Renvoie le numéro de commande du compartiment correspondant à la clé k .

Complexité temporelle

Constante ie O (1)

Exemple

L'exemple suivant montre l'utilisation de la fonction 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;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

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.