Libreria C ++ Unordered_multimap - funzione equal_range ()
Descrizione
La funzione C ++ std::unordered_multimap::equal_range() restituisce un intervallo di elementi che corrisponde a una chiave specifica.
L'intervallo è definito da due iteratori, uno punta al primo elemento che non è inferiore alla chiave k e un altro punta al primo elemento maggiore della chiave k .
Dichiarazione
La seguente è la dichiarazione per l'intestazione std :: unordered_multimap :: equal_range () della funzione 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;
Parametri
k - Chiave da cercare.
Valore di ritorno
Se l'oggetto è qualificato costante, il metodo restituisce una coppia di iteratori costanti, altrimenti una coppia di iteratori non costanti.
Complessità temporale
Costante cioè O (1) nel caso medio.
Lineare cioè O (n) nel caso peggiore.
Esempio
L'esempio seguente mostra l'utilizzo della funzione std :: unordered_multimap :: equal_range ().
#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
unordered_multimap<char, int> umm = {
{'a', 1},
{'b', 2},
{'b', 3},
{'b', 4},
{'c', 5}
};
auto ret = umm.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;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
Elements associated with key 'b': 4 3 2