std::ranges::cend
| Definiert in Header <ranges>
|
||
| Definiert in Header <iterator>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */ cend = /* unspecified */;
}
|
(seit C++20) (Customization-Point-Objekt) |
|
| Aufrufsignatur |
||
template< class T >
requires /* see below */
constexpr /* see below */ auto cend( T&& t );
|
(seit C++20) | |
Gibt einen Sentinel für den konstanten Iterator(seit C++23) zurück, der das Ende eines const-qualifizierten(bis C++23) Bereichs anzeigt.
|
Sei
Ein Aufruf von |
(bis C++23) |
|
Wenn das Argument ein Lvalue ist oder
In allen anderen Fällen ist ein Aufruf von |
(seit C++23) |
Wenn ranges::cend(e) für einen Ausdruck e gültig ist, wobei decltype((e)) T ist, dann modelliert CT std::ranges::range, und(bis C++23) std::sentinel_for<S, I> ist true in allen Fällen, wobei S decltype(ranges::cend(e)) ist und I decltype(ranges::cbegin(e)) ist. Zusätzlich modelliert S constant-iterator wenn es input_iterator modelliert.(seit C++23)
Customization Point Objects
Der Name
ranges::cend
bezeichnet ein
Customization Point Object
, welches ein konstantes
Function Object
eines
Literal
semiregular
-Klassentyps ist. Weitere Details finden Sie unter
CustomizationPointObject
.
Beispiel
#include <algorithm> #include <cassert> #include <ranges> #include <vector> int main() { std::vector vec{3, 1, 4}; int arr[]{5, 10, 15}; assert(std::ranges::find(vec, 5) == std::ranges::cend(vec)); assert(std::ranges::find(arr, 5) != std::ranges::cend(arr)); }
Siehe auch
|
(C++20)
|
gibt einen Sentinel zurück, der das Ende eines Bereichs anzeigt
(Anpassungspunktobjekt) |
|
(C++11)
(C++14)
|
gibt einen Iterator zum Ende eines Containers oder Arrays zurück
(Funktionstemplate) |