Namespaces
Variants

std::ranges::stride_view<V>::size

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rango
 
 
constexpr auto size() requires ranges::sized_range<V>;
(desde C++23)
constexpr auto size() const requires ranges::sized_range<const V>;
(desde C++23)

Devuelve el número de elementos.

Sea base_ la vista subyacente y stride_ el valor de stride almacenado. Equivalente a:

return /*to-unsigned-like*/(/*div-ceil*/(ranges::distance(base_), stride_));

Parámetros

(ninguno)

Valor de retorno

El número de elementos. El valor devuelto se calcula como si por la expresión

( ranges:: size ( base_ ) / stride_ ) + ( ( ranges:: size ( base_ ) % stride_ ? 1 : 0 ) .

Ejemplo

#include <forward_list>
#include <ranges>
int main()
{
    namespace vs = std::views;
    constexpr static auto v = {1, 2, 3, 4, 5};
    static_assert
    (
        vs::stride(v, 1).size() == 5 and
        vs::stride(v, 2).size() == 3 and
        vs::stride(v, 3).size() == 2 and
        vs::stride(v, 4).size() == 2 and
        vs::stride(v, 5).size() == 1 and
        vs::stride(v, 6).size() == 1
    );
    std::forward_list list{v};
//  auto s = vs::stride(list, 2).size(); // Error: not a sized_range
}

Véase también

devuelve un entero igual al tamaño de un rango
(objeto de punto de personalización)
devuelve un entero con signo igual al tamaño de un rango
(objeto de punto de personalización)