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

Gibt einen Iterator zum ersten Element von * this zurück.

Wenn * this leer ist, wird der zurückgegebene Iterator gleich end() sein.

range-begin-end.svg

Inhaltsverzeichnis

Rückgabewert

Iterator zum ersten Element.

Komplexität

Konstante.

Beispiel

#include <cmath>
#include <iostream>
#include <unordered_map>
struct Node { double x, y; };
int main()
{
    Node nodes[3] = {{1, 0}, {2, 0}, {3, 0}};
    // mag ist eine Map, die die Adresse eines Nodes auf seine Größe in der Ebene abbildet
    std::unordered_map<Node*, double> mag =
    {
        { nodes + 0, 1 },
        { nodes + 1, 2 },
        { nodes + 2, 3 }
    };
    // Ändere jede y-Koordinate von 0 auf die Größe
    for (auto iter = mag.begin(); iter != mag.end(); ++iter)
    {
        auto cur = iter->first; // Zeiger auf Node
        cur->y = mag[cur]; // hätte auch cur->y = iter->second; verwenden können
    }
    // Aktualisiere und gebe die Größe jedes Nodes aus
    for (auto iter = mag.begin(); iter != mag.end(); ++iter)
    {
        auto cur = iter->first;
        mag[cur] = std::hypot(cur->x, cur->y);
        std::cout << "Die Größe von (" << cur->x << ", " << cur->y << ") ist ";
        std::cout << iter->second << '\n';
    }
    // Wiederhole das obige mit der bereichsbasierten for-Schleife
    for (auto i : mag)
    {
        auto cur = i.first;
        cur->y = i.second;
        mag[cur] = std::hypot(cur->x, cur->y);
        std::cout << "Die Größe von (" << cur->x << ", " << cur->y << ") ist ";
        std::cout << mag[cur] << '\n';
        // Beachte, dass im Gegensatz zu std::cout << iter->second << '\n'; oben,
        // std::cout << i.second << '\n'; NICHT die aktualisierte Größe ausgeben wird
    }
}

Mögliche Ausgabe:

Die Größe von (3, 3) ist 4.24264
Die Größe von (1, 1) ist 1.41421
Die Größe von (2, 2) ist 2.82843
Die Größe von (3, 4.24264) ist 5.19615
Die Größe von (1, 1.41421) ist 1.73205
Die Größe von (2, 2.82843) ist 3.4641

Siehe auch

gibt einen Iterator zum Ende zurück
(öffentliche Elementfunktion)
(C++11) (C++14)
gibt einen Iterator zum Anfang eines Containers oder Arrays zurück
(Funktionstemplate)