unordered_multimap::equal_range() es una función integrada en C++ STL que devuelve el rango en el que todas las claves del elemento son iguales a una clave . Devuelve un par de iteradores donde el primero es un iterador que apunta al límite inferior del rango y el segundo es un iterador que apunta al límite superior del rango. Si no hay ningún elemento igual a un valor dado en el contenedor, devuelve un par en el que tanto el límite inferior como el superior apuntan a la posición más allá del final del contenedor o unordered_multimap.end().
Sintaxis:
unordered_multimap_name.equal_range(k)
Parámetros: La función acepta un parámetro obligatorio k . El rango devuelto tendrá los elementos con clave k.
Valor devuelto: Devuelve un par de iteradores.
Los siguientes programas ilustran la función anterior:
Programa 1:
// C++ program to illustrate the // unordered_multimap::equal_range() #include <iostream> #include <unordered_map> using namespace std; int main() { // declaration unordered_multimap<int, int> sample; // inserts key and element sample.insert({ 1, 2 }); sample.insert({ 1, 2 }); sample.insert({ 2, 3 }); sample.insert({ 3, 4 }); sample.insert({ 2, 6 }); // iterator of pairs pointing to range // which includes 1 and print by iterating in range auto itr = sample.equal_range(1); cout << "Elements with Key 1: "; for (auto it = itr.first; it != itr.second; it++) { cout << it->second << " "; } cout << endl; // iterator of pairs pointing to range // which includes 2 and print by iterating in range itr = sample.equal_range(2); cout << "Elements with Key 2: "; for (auto it = itr.first; it != itr.second; it++) { cout << it->second << " "; } return 0; }
Elements with Key 1: 2 2 Elements with Key 2: 6 3
Programa 2:
// C++ program to illustrate the // unordered_multimap::equal_range() #include <iostream> #include <unordered_map> using namespace std; int main() { // declaration unordered_multimap<char, char> sample; // inserts key and element sample.insert({ 'a', 'b' }); sample.insert({ 'a', 'b' }); sample.insert({ 'a', 'd' }); sample.insert({ 'b', 'e' }); sample.insert({ 'b', 'd' }); // iterator of pairs pointing to range // which includes b and print by iterating in range auto itr = sample.equal_range('b'); cout << "Elements with Key b: "; for (auto it = itr.first; it != itr.second; it++) { cout << it->second << " "; } cout << endl; // iterator of pairs pointing to range // which includes a and print by iterating in range itr = sample.equal_range('a'); cout << "Elements with Key a: "; for (auto it = itr.first; it != itr.second; it++) { cout << it->second << " "; } return 0; }
Elements with Key b: d e Elements with Key a: d b b