Namespaces
Variants

std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: begin, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>:: cbegin

From cppreference.net

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

Devuelve un iterador al primer elemento de * this .

Si * this está vacío, el iterador devuelto será igual a end() .

range-begin-end.svg

Contenidos

Valor de retorno

Iterador al primer 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 asigna la dirección de un Node a 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 final
(función miembro pública)
(C++11) (C++14)
devuelve un iterador al inicio de un contenedor o array
(plantilla de función)