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) (depuis C++11)
(constexpr depuis C++26)
const_iterator end ( ) const noexcept ;
(2) (depuis C++11)
(constexpr depuis C++26)
const_iterator cend ( ) const noexcept ;
(3) (depuis C++11)
(constexpr depuis C++26)

Retourne un itérateur après le dernier élément de * this .

Cet itérateur retourné agit uniquement comme un sentinelle. Il n'est pas garanti qu'il soit déréférençable .

range-begin-end.svg

Table des matières

Valeur de retour

Itérateur après le dernier élément.

Complexité

Constante.

Exemple

#include <cmath>
#include <iostream>
#include <unordered_map>
struct Node { double x, y; };
int main()
{
    Node nodes[3] = {{1, 0}, {2, 0}, {3, 0}};
    // mag est une table de hachage associant l'adresse d'un Node à sa magnitude dans le plan
    std::unordered_map<Node*, double> mag =
    {
        { nodes + 0, 1 },
        { nodes + 1, 2 },
        { nodes + 2, 3 }
    };
    // Modifier chaque coordonnée y de 0 à la magnitude
    for (auto iter = mag.begin(); iter != mag.end(); ++iter)
    {
        auto cur = iter->first; // pointeur vers Node
        cur->y = mag[cur]; // on aurait pu utiliser cur->y = iter->second;
    }
    // Mettre à jour et afficher la magnitude de chaque nœud
    for (auto iter = mag.begin(); iter != mag.end(); ++iter)
    {
        auto cur = iter->first;
        mag[cur] = std::hypot(cur->x, cur->y);
        std::cout << "La magnitude de (" << cur->x << ", " << cur->y << ") est ";
        std::cout << iter->second << '\n';
    }
    // Répéter ce qui précède avec la boucle for basée sur les intervalles
    for (auto i : mag)
    {
        auto cur = i.first;
        cur->y = i.second;
        mag[cur] = std::hypot(cur->x, cur->y);
        std::cout << "La magnitude de (" << cur->x << ", " << cur->y << ") est ";
        std::cout << mag[cur] << '\n';
        // Notez qu'à la différence de std::cout << iter->second << '\n'; ci-dessus,
        // std::cout << i.second << '\n'; n'affichera PAS la magnitude mise à jour
    }
}

Sortie possible :

La magnitude de (3, 3) est 4.24264
La magnitude de (1, 1) est 1.41421
La magnitude de (2, 2) est 2.82843
La magnitude de (3, 4.24264) est 5.19615
La magnitude de (1, 1.41421) est 1.73205
La magnitude de (2, 2.82843) est 3.4641

Voir aussi

retourne un itérateur vers le début
(fonction membre publique)
(C++11) (C++14)
retourne un itérateur vers la fin d'un conteneur ou d'un tableau
(fonction template)