mapear equal_range() en C++ STL

El map::equal_range() es una función integrada en C++ STL que devuelve un par de iteradores. El par se refiere a los límites de un rango que incluye todos los elementos en el contenedor que tienen una clave equivalente a k. Dado que el contenedor del mapa solo contiene una clave única, por lo tanto, el primer iterador del par devuelto apunta al elemento y el segundo iterador del par apunta a la siguiente clave que viene después de la clave K. Si no hay coincidencias con la clave K y el la clave K es mayor que la clave más grande, el rango devuelto es de longitud 1 con ambos iteradores apuntando a un elemento que tiene una clave que indica el tamaño del mapa y los elementos como 0. De lo contrario, el límite inferior y el límite superior apuntan al elemento justo mayor que la clave K.
Sintaxis: 

iterator map_name.equal_range(key)

Parámetros: esta función acepta una sola clave de parámetro obligatoria que especifica el elemento cuyo rango en el contenedor se va a devolver. 
Valor devuelto: la función devuelve un par de iteradores como se explicó anteriormente.
Los siguientes programas ilustran el método anterior: 
Programa 1: 

CPP

// C++ program to illustrate the
// map::equal_range() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<int, int> mp;
 
    // insert elements in random order
    mp.insert({ 4, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 6, 60 });
 
    pair<map<int, int>::iterator,
         map<int, int>::iterator>
        it;
 
    // iterator of pairs
    it = mp.equal_range(1);
    cout << "The lower bound is "
         << it.first->first
         << ":" << it.first->second;
 
    cout << "\nThe upper bound is "
         << it.second->first
         << ":" << it.second->second;
 
    return 0;
}
Producción: 

The lower bound is 1:40
The upper bound is 4:30

 

Programa 2:  

CPP

// C++ program to illustrate the
// map::equal_range() function
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // initialize container
    map<int, int> mp;
 
    // insert elements in random order
    mp.insert({ 4, 30 });
    mp.insert({ 1, 40 });
    mp.insert({ 6, 60 });
 
    pair<map<int, int>::iterator,
         map<int, int>::iterator>
        it;
 
    // iterator of pairs
    it = mp.equal_range(10);
    cout << "The lower bound is "
         << it.first->first << ":"
         << it.first->second;
 
    cout << "\nThe upper bound is "
         << it.second->first
         << ":" << it.second->second;
 
    return 0;
}
Producción: 

The lower bound is 3:0
The upper bound is 3:0

 

Publicación traducida automáticamente

Artículo escrito por gopaldave y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *