Espacios de nombres
Variantes
Acciones

std::multimap<Key,T,Compare,Allocator>::equal_range

De cppreference.com
< cpp‎ | container‎ | multimap
 
 
 
 
std::pair<iterator,iterator> equal_range( const Key& key );
(1)
std::pair<const_iterator,const_iterator> equal_range( const Key& key ) const;
(2)
template< class K >
std::pair<iterator,iterator> equal_range( const K& x );
(3) (desde C++14)
template< class K >
std::pair<const_iterator,const_iterator> equal_range( const K& x ) const;
(4) (desde C++14)

Devuelve un rango que contiene todos los elementos con la clave dada en el contenedor. El rango está definido por dos iteradores, uno apunta al primer elemento que es no menor que la clave key y otro apunta al primer elemento mayor que la clave key (efectivamente un rango de igualdad). Alternativamente, el primer iterador se puede obtener con lower_bound() y el segundo con upper_bound().

1,2) Compara las claves con key.
3,4) Compara las claves con el valor x. Esta sobrecarga solo participa en la resolución de sobrecargas si el id-calificado Compare::is_transparent es válido y denota un tipo. Permite llamar a esta función sin construir una instancia de Key.

Contenido

[editar] Parámetros

key - El valor de la clave con la cual comparar los elementos.
x - Valor alternativo que puede compararse con Key.

[editar] Valor de retorno

std::pair que contiene un par de iteradores que definen el rango deseado: el primero apunta al primer elemento que no es menor que key y el segundo apunta al primer elemento mayor que key.

Si no existen elementos no menores que key, devuelve un iterador después del final (véase end()) como el primer elemento. Similarmente, si no existen elementos mayores que key, devuelve un iterador después del final como el segundo elemento.

Ya que emplace y la versión de insert sin una pista siempre insertan en el límite superior, el orden de los elementos equivalentes en el rango de igualdad es el orden de inserción a menos que la versión de insert con un pista o emplace_hint se haya usado para insertar un elemento en una posición diferente.

(desde C++11)

[editar] Complejidad

Logarítmica en el tamaño del contenedor.

[editar] Ejemplo

#include <iostream>
#include <map>
 
int main()
{
    std::multimap<int, char> diccionario {
        {1, 'A'},
        {2, 'B'},
        {2, 'C'},
        {2, 'D'},
        {4, 'E'},
        {3, 'F'}
    };
 
    auto rango = diccionario.equal_range(2);
 
    for (auto i = rango.first; i != rango.second; ++i)
    {
        std::cout << i->first << ": " << i->second << '\n';
    }
}

Salida:

2: B
2: C
2: D

[editar] Véase también

Encuentra un elemento con una clave específica.
(función miembro pública) [editar]
(C++20)
Comprueba si el contenedor contiene un elemento con una clave específica.
(función miembro pública) [editar]
Devuelve el número de elementos que coinciden con una clave específica.
(función miembro pública) [editar]
Devuelve un iterador al primer elemento mayor que la clave dada.
(función miembro pública) [editar]
Devuelve un iterador al primer elemento no menor que la clave dada.
(función miembro pública) [editar]
Devuelve el rango de los elementos que coinciden con una clave específica.
(plantilla de función) [editar]