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

Gibt einen Iterator zurück, der hinter das letzte Element von * this zeigt.

Dieser zurückgegebene Iterator fungiert lediglich als Sentinel. Es ist nicht garantiert, dass er dereferenzierbar ist.

range-begin-end.svg

Inhaltsverzeichnis

Rückgabewert

Iterator hinter dem letzten 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]; // könnte auch cur->y = iter->second; verwenden
    }
    // 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 << "The magnitude of (" << cur->x << ", " << cur->y << ") is ";
        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 << "The magnitude of (" << cur->x << ", " << cur->y << ") is ";
        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:

The magnitude of (3, 3) is 4.24264
The magnitude of (1, 1) is 1.41421
The magnitude of (2, 2) is 2.82843
The magnitude of (3, 4.24264) is 5.19615
The magnitude of (1, 1.41421) is 1.73205
The magnitude of (2, 2.82843) is 3.4641

Siehe auch

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