std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::begin, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cbegin
De cppreference.com
<tbody>
<tbody>
</tbody>
iterator begin() noexcept; |
(desde C++11) | |
const_iterator begin() const noexcept; |
(desde C++11) | |
const_iterator cbegin() const noexcept; |
(desde C++11) | |
Devuelve un iterador al primer elemento del unordered_map.
Si el unordered_map está vacío, el iterador devuelto será igual a end().
Parámetros
(Ninguno)
Valor de retorno
Iterador al primer elemento.
Complejidad
Constante.
Ejemplo
Ejecuta este código
#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
Véase también
(C++11) |
Devuelve un iterador al final. (función miembro pública) |