Unordered_multiset ::equal_range() es una función incorporada en C++ STL que devuelve el rango en el que todos los elementos son iguales a un valor dado . 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, entonces devuelve un par donde tanto el límite inferior como el superior apuntan a la posición posterior al final del contenedor.
Sintaxis:
unordered_multiset_name.equal_range(value)
Parámetros: La función acepta un elemento val cuyo rango se va a devolver.
Valor devuelto: Devuelve un par de iteradores.
Los siguientes programas ilustran la función anterior:
Programa 1:
// C++ program to illustrate the // unordered_multiset::equal_range() function #include <bits/stdc++.h> using namespace std; int main() { // declaration unordered_multiset<int> sample; // inserts element sample.insert(100); sample.insert(100); sample.insert(100); sample.insert(200); sample.insert(500); sample.insert(500); sample.insert(600); // iterator of pairs pointing to range // which includes 500 and print by iterating in range auto itr = sample.equal_range(500); for (auto it = itr.first; it != itr.second; it++) { cout << *it << " "; } cout << endl; // iterator of pairs pointing to range // which includes 100 and print by iterating in range itr = sample.equal_range(100); for (auto it = itr.first; it != itr.second; it++) { cout << *it << " "; } return 0; }
Producción:
500 500 100 100 100
Programa 2:
// C++ program to illustrate the // unordered_multiset::equal_range() function #include <bits/stdc++.h> using namespace std; int main() { // declaration unordered_multiset<char> sample; // inserts element sample.insert('a'); sample.insert('a'); sample.insert('b'); sample.insert('c'); sample.insert('d'); sample.insert('d'); sample.insert('d'); // iterator of pairs pointing to range // which includes 'a' and print by iterating in range auto itr = sample.equal_range('a'); for (auto it = itr.first; it != itr.second; it++) { cout << *it << " "; } cout << endl; // iterator of pairs pointing to range // which includes 'd' and print by iterating in range itr = sample.equal_range('d'); for (auto it = itr.first; it != itr.second; it++) { cout << *it << " "; } return 0; }
Producción:
a a d d d