std::ranges:: approximately_sized_range
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
|
Definiert im Header
<ranges>
|
||
|
template
<
class
T
>
concept approximately_sized_range
=
ranges::
range
<
T
>
&&
|
(seit C++26) | |
Das
approximately_sized_range
Konzept spezifiziert die Anforderungen eines
range
Typs, der seine Größe in konstanter Zeit mit der
reserve_hint
Funktion schätzen kann.
Inhaltsverzeichnis |
Semantische Anforderungen
Gegeben einen Lvalue
t
vom Typ
std::
remove_reference_t
<
T
>
,
T
modelliert
approximately_sized_range
nur wenn
- ranges :: reserve_hint ( t )
-
- hat amortisierte konstante Zeitkomplexität,
- verändert den Wert von t nicht in einer für gleichheitserhaltende Ausdrücke beobachtbaren Weise, und
- hat einen Wert, der nicht negativ ist und in ranges:: range_difference_t < T > darstellbar ist, und
-
wenn
ranges::
iterator_t
<
T
>
das Konzept
forward_iteratormodelliert, ist ranges :: reserve_hint ( t ) unabhängig von der Auswertung von ranges:: begin ( t ) wohldefiniert (mit anderen Worten: Ein Single-Pass-Approximately-Sized-Range könnte einen Aufruf vonreserve_hintnur vor dem ersten Aufruf vonbeginunterstützen, aber ein Forward-Range muss die Größe zu jeder Zeit unterstützen).
Hinweise
| Feature-Test Makro | Wert | Standard | Funktion |
|---|---|---|---|
__cpp_lib_ranges_reserve_hint
|
202502L
|
(C++26) | ranges::approximately_sized_range |
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++20)
|
spezifiziert, dass ein Bereich seine Größe in konstanter Zeit kennt
(Konzept) |