std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::end, std::unordered_map<Key,T,Hash,KeyEqual,Allocator>::cend
De cppreference.com
< cpp | container | unordered map
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.
Contenido |
[editar] Parámetros
(Ninguno)
[editar] Valor de retorno
Iterador al elemento que sigue después del último elemento.
[editar] Complejidad
Constante.
[editar] 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
[editar] Véase también
(C++11) |
Devuelve un iterador al principio. (función miembro pública) |