Namespaces
Variants

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

From cppreference.net

iterator end ( ) noexcept ;
(1) (desde C++11)
(constexpr desde C++26)
const_iterator end ( ) const noexcept ;
(2) (desde C++11)
(constexpr desde C++26)
const_iterator cend ( ) const noexcept ;
(3) (desde C++11)
(constexpr desde C++26)

Devuelve un iterador más allá del último elemento de * this .

Este iterador devuelto solo actúa como centinela. No se garantiza que sea dereferenceable .

range-begin-end.svg

Contenidos

Valor de retorno

Iterador después del último elemento.

Complejidad

Constante.

Ejemplo

#include <cmath>
#include <iostream>
#include <unordered_map>
struct Node { double x, y; };
int main()
{
    Node nodes[3] = {{1, 0}, {2, 0}, {3, 0}};
    // mag es un mapa que asocia la dirección de un Node con su magnitud en el plano
    std::unordered_map<Node*, double> mag =
    {
        { nodes + 0, 1 },
        { nodes + 1, 2 },
        { nodes + 2, 3 }
    };
    // Cambiar cada coordenada y de 0 a la magnitud
    for (auto iter = mag.begin(); iter != mag.end(); ++iter)
    {
        auto cur = iter->first; // puntero a Node
        cur->y = mag[cur]; // también se podría haber usado cur->y = iter->second;
    }
    // Actualizar e imprimir la magnitud de cada nodo
    for (auto iter = mag.begin(); iter != mag.end(); ++iter)
    {
        auto cur = iter->first;
        mag[cur] = std::hypot(cur->x, cur->y);
        std::cout << "La magnitud de (" << cur->x << ", " << cur->y << ") es ";
        std::cout << iter->second << '\n';
    }
    // Repetir lo anterior con el bucle for basado en rangos
    for (auto i : mag)
    {
        auto cur = i.first;
        cur->y = i.second;
        mag[cur] = std::hypot(cur->x, cur->y);
        std::cout << "La magnitud de (" << cur->x << ", " << cur->y << ") es ";
        std::cout << mag[cur] << '\n';
        // Nótese que, en contraste con std::cout << iter->second << '\n'; anterior,
        // std::cout << i.second << '\n'; NO imprimirá la magnitud actualizada
    }
}

Salida posible:

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

Véase también

devuelve un iterador al inicio
(función miembro pública)
(C++11) (C++14)
devuelve un iterador al final de un contenedor o array
(plantilla de función)