Bibliothèque C ++ Unordered_map - fonction equal ()

La description

La fonction C ++ std::unordered_map::equal() renvoie une plage d'éléments correspondant à une clé spécifique.

Dans les conteneurs unordered_map, où les clés sont uniques, la plage comprendra au plus un élément. Si k ne correspond à aucune clé du conteneur, la plage renvoyée a la fin en tant que limites de plage inférieure et supérieure.

Déclaration

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

C ++ 11

pair<iterator,iterator> equal_range(const key_type& k);
pair<const_iterator,const_iterator> equal_range(const key_type& k) const;

Paramètres

k - Clé à rechercher.

Valeur de retour

Si l'objet est qualifié constant, la méthode renvoie une paire d'itérateur constant, sinon une paire d'itérateur non constant.

Complexité temporelle

Constante ie O (1) dans le cas moyen.

Linéaire c'est-à-dire O (n) dans le pire des cas.

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: unordered_map :: equal ().

#include <iostream>
#include <unordered_map>

using namespace std;

int main(void) {
   unordered_map<char, int> um = {
            {'a', 1},
            {'b', 2},
            {'c', 3},
            {'d', 4},
            {'e', 5}
            };

   auto ret = um.equal_range('b');

   cout << "Lower bound is " << ret.first->first 
       << " = "<< ret.first->second << endl;
   cout << "Upper bound is " << ret.second->first
       << " = " << ret.second->second << endl;

   return 0;
}

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

Lower bound is b = 2
Upper bound is c = 3