std::ranges::approximately_sized_range
Von de.cppreference.net
| Definiert in Header <ranges>
|
||
template< class T >
concept approximately_sized_range = ranges::range<T> &&
requires(T& t) {
ranges::reserve_hint(t);
};
|
(seit C++26) | |
Das approximately_sized_range Konzept legt die Anforderungen an einen range-Typ fest, der seine Größe in konstanter Zeit mit der reserve_hint-Funktion abschätzen kann.
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) |