Namespaces
Variants

std::ranges::enumerate_view<V>::size

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

Devuelve el número de elementos. Equivalente a return ranges::size(base_);, donde base_ es la vista subyacente.

Parámetros

(ninguno)

Valor de retorno

El número de elementos.

Ejemplo

#include <cassert>
#include <forward_list>
#include <ranges>
#include <string_view>
int main()
{
    constexpr static auto v1 = {1, 2, 3, 4, 5};
    constexpr auto ev1{v1 | std::views::enumerate};
    static_assert(ev1.size() == 5);
    static_assert(std::ranges::sized_range<decltype(v1)>);
    auto v2 = std::forward_list{1, 2, 3, 4, 5};
    auto ev2 {v2 | std::views::enumerate};
    static_assert(not std::ranges::sized_range<decltype(v2)>);
    // auto size = ev2.size(); // Error: v2 is not a sized range
    assert(std::ranges::distance(v2) == 5); // OK, distance does not require sized
                                            // range, but has O(N) complexity here
}

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)