Bibliothèque de cartes C ++ - fonction equal_range ()

La description

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

La plage est définie par deux itérateurs, l'un pointe vers le premier élément qui n'est pas inférieur à la clé k et l'autre pointe vers le premier élément supérieur à la clé k .

Déclaration

Voici la déclaration de la fonction std :: multimap :: equal_range () sous forme d'en-tête std :: map.

C ++ 98

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

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.

Des exceptions

Aucun effet sur le conteneur si une exception est levée.

Complexité temporelle

Logarithmique ie O (log n)

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: multimap :: equal_range ().

#include <iostream>
#include <map>

using namespace std;

int main(void) {
   multimap<char, int> m = {
      {'a', 1},
      {'b', 2},
      {'b', 3},
      {'b', 4},
      {'d', 5}
        };

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

   cout << "Elements associated with key 'b': ";

   for (auto it = ret.first; it != ret.second; ++it)
      cout << it->second << " ";
   cout << endl;

   return 0;
}

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

Elements associated with key 'b': 2 3 4