Namespaces
Variants

std::ranges:: approximately_sized_range

From cppreference.net
Ranges library
Range adaptors
Definiert im 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 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 )
  • wenn ranges:: iterator_t < T > das Konzept forward_iterator modelliert, 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 von reserve_hint nur vor dem ersten Aufruf von begin unterstü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

Siehe auch

spezifiziert, dass ein Bereich seine Größe in konstanter Zeit kennt
(Konzept)