Espacios de nombres
Variantes
Acciones

std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::end, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cend

De cppreference.com
 
 
 
 
iterator end() noexcept;
(desde C++11)
const_iterator end() const noexcept;
(desde C++11)
const_iterator cend() const noexcept;
(desde C++11)

Devuelve un iterador al elemento que sigue después del último elemento del unordered_map.

Este elemento actúa como un marcador de posición; intentar accederlo resulta en comportamiento no definido.

range-begin-end.svg

Contenido

[editar] Parámetros

(Ninguno)

[editar] Valor de retorno

Iterador al elemento que sigue después del último elemento.

[editar] Complejidad

Constante.


[editar] Ejemplo

#include <cmath>
#include <iostream>
#include <unordered_map>
 
struct Nodo { double x, y; };
 
int main() {
    Nodo nodos[3] = { {1, 0}, {2, 0}, {3, 0} };
 
    // mag es un map que asocia la dirección de un Nodo a su magnitud en el plano
    std::unordered_map<Nodo*, double> mag = {
        { nodos,     1 },
        { nodos + 1, 2 },
        { nodos + 2, 3 }
    };
 
    // Cambiar cada coordenada y de 0 a la magnitud
    for (auto iter = mag.begin(); iter != mag.end(); ++iter){
        auto actual = iter->first; // puntero a Nodo
        actual->y = mag[actual];   // se podría usar  actual->y = iter->second;
    }
 
    // Actualizar e imprimir la magnitud de cada nodo
    for (auto iter = mag.begin(); iter != mag.end(); ++iter){
        auto actual = iter->first;
        mag[actual] = std::hypot(actual->x, actual->y);
        std::cout << "La magnitud de (" << actual->x << ", " << actual->y << ") es ";
        std::cout << iter->second << '\n';
    }
 
    // Repetir lo de arriba con el bucle for basado en rango
    for (auto i : mag) {
        auto actual = i.first;
        actual->y = i.second;
        mag[actual] = std::hypot(actual->x, actual->y);
        std::cout << "La magnitud de (" << actual->x << ", " << actual->y << ") es ";
        std::cout << mag[actual] << '\n';
        // Observa que a diferencia de std::cout << iter->second << '\n'; arriba, 
        // std::cout << i.second << '\n'; NO imprimirá la magnitud actualizada
    }
}

Posible salida:

La magnitud de (3, 3) es 4.24264
La magnitud de (1, 1) es 1.41421
La magnitud de (2, 2) es 2.82843
La magnitud de (3, 4.24264) es 5.19615
La magnitud de (1, 1.41421) es 1.73205
La magnitud de (2, 2.82843) es 3.4641

[editar] Véase también

Devuelve un iterador al principio.
(función miembro pública) [editar]