Namespaces
Variants

std::ranges::approximately_sized_range

Von de.cppreference.net
 
 
Ranges-Bibliothek
Bereichsadapter
 
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 )
  • 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)