Compartir a través de


map::equal_range

Devuelve un par de iteradores que representan lower_bound de clave y upper_bound de la clave.

pair <const_iterator, const_iterator> equal_range (
   const Key& _Key
) const;
pair <iterator, iterator> equal_range (
   const Key& _Key
);

Parámetros

  • _Key
    El valor de clave de argumento que se va a comparar con el criterio de ordenación de un elemento de mapa que se busca.

Valor devuelto

Para tener acceso al primer iterador de un par pr devuelto por la función miembro, utilice pr.Primera, y desreferenciar el iterador enlazado inferior, usa * (pr.Primera).Para tener acceso al segundo iterador de un par pr devuelto por la función miembro, utilice pr.segundo, y desreferenciar el iterador de límite superior, utilice * (pr.segundo).

Ejemplo

// map_equal_range.cpp
// compile with: /EHsc
#include <map>
#include <iostream>

int main( )
{
   using namespace std; 
   typedef map <int, int, less<int> > IntMap;
   IntMap m1;
   map <int, int> :: const_iterator m1_RcIter;
   typedef pair <int, int> Int_Pair;

   m1.insert ( Int_Pair ( 1, 10 ) );
   m1.insert ( Int_Pair ( 2, 20 ) );
   m1.insert ( Int_Pair ( 3, 30 ) );

   pair <IntMap::const_iterator, IntMap::const_iterator> p1, p2;
   p1 = m1.equal_range( 2 );

   cout << "The lower bound of the element with "
        << "a key of 2 in the map m1 is: "
        << p1.first -> second << "." << endl;

   cout << "The upper bound of the element with "
        << "a key of 2 in the map m1 is: "
        << p1.second -> second << "." << endl;

   // Compare the upper_bound called directly 
   m1_RcIter = m1.upper_bound( 2 );

   cout << "A direct call of upper_bound( 2 ) gives "
        << m1_RcIter -> second << "," << endl
        << " matching the 2nd element of the pair"
        << " returned by equal_range( 2 )." << endl;

   p2 = m1.equal_range( 4 );

   // If no match is found for the key,
   // both elements of the pair return end( )
   if ( ( p2.first == m1.end( ) ) && ( p2.second == m1.end( ) ) )
      cout << "The map m1 doesn't have an element "
           << "with a key less than 40." << endl;
   else
      cout << "The element of map m1 with a key >= 40 is: "
           << p2.first -> first << "." << endl;
}
  
  
  
  

Requisitos

encabezado: <Asignar>

espacio de nombres: std

Vea también

Referencia

map Class

Biblioteca de plantillas estándar