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

Retourne un itérateur vers le premier élément de * this .

Si * this est vide, l'itérateur retourné sera égal à end() .

range-begin-end.svg

Table des matières

Valeur de retour

Itérateur vers le premier é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]; // 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 la fin
(fonction membre publique)
(C++11) (C++14)
retourne un itérateur vers le début d'un conteneur ou d'un tableau
(fonction template)