std::unordered_set<Key,Hash,KeyEqual,Allocator>:: end, std::unordered_set<Key,Hash,KeyEqual,Allocator>:: cend
From de.cppreference.net
<
cpp
|
container
|
unordered set
|
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 dem letzten Element von * this liegt.
Dieser zurückgegebene Iterator fungiert lediglich als Sentinel. Es ist nicht garantiert, dass er dereferenzierbar ist.
Inhaltsverzeichnis |
Rückgabewert
Iterator hinter dem letzten Element.
Komplexität
Konstante.
Hinweise
Da sowohl
iterator
als auch
const_iterator
konstante Iteratoren sind (und tatsächlich derselbe Typ sein können), ist es nicht möglich, die Elemente des Containers über einen von diesen Memberfunktionen zurückgegebenen Iterator zu verändern.
Beispiel
Diesen Code ausführen
#include <iostream> #include <unordered_set> struct Point { double x, y; }; int main() { Point pts[3] = {{1, 0}, {2, 0}, {3, 0}}; // points ist eine Menge, die die Adressen der Punkte enthält std::unordered_set<Point*> points = { pts, pts + 1, pts + 2 }; // Ändere jede y-Koordinate von (i, 0) von 0 in i^2 und gib den Punkt aus for (auto iter = points.begin(); iter != points.end(); ++iter) { (*iter)->y = ((*iter)->x) * ((*iter)->x); // iter ist ein Pointer-zu-Point* std::cout << "(" << (*iter)->x << ", " << (*iter)->y << ") "; } std::cout << '\n'; // Nun verwenden wir die bereichsbasierte for-Schleife, um jede y-Koordinate um 10 zu erhöhen for (Point* i : points) { i->y += 10; std::cout << "(" << i->x << ", " << i->y << ") "; } }
Mögliche Ausgabe:
(3, 9) (1, 1) (2, 4) (3, 19) (1, 11) (2, 14)
Siehe auch
|
gibt einen Iterator zum Anfang zurück
(public member function) |
|
|
(C++11)
(C++14)
|
gibt einen Iterator zum Ende eines Containers oder Arrays zurück
(function template) |