Namespaces
Variants

std::ranges::common_view<V>::begin

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rango
 
 
constexpr auto begin() requires (!/*simple_view*/<V>);
(1) (desde C++20)
constexpr auto begin() const requires range<const V>;
(2) (desde C++20)
1) Devuelve un iterador al primer elemento de la common_view, es decir:
  • ranges::begin(base_), si tanto ranges::random_access_range<V> como ranges::sized_range<V> se satisfacen,
  • std::common_iterator<ranges::iterator_t<V>, ranges::sentinel_t<V>>(ranges::begin(base_)) de lo contrario.
2) Igual que (1), pero V está calificado como const.

Valor de retorno

Un iterador al inicio de la vista subyacente.

Ejemplo

#include <iostream>
#include <numeric>
#include <ranges>
#include <string_view>
int main()
{
    constexpr auto common = std::views::iota(1)
                          | std::views::take(3)
                          | std::views::common
                          ;
    for (int i{}; int e : common)
        std::cout << (i++ ? " + " : "") << e;
    std::cout << " = " << std::accumulate(common.begin(), common.end(), 0) << '\n';
}

Salida:

1 + 2 + 3 = 6

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Applied to Behavior as published Correct behavior
LWG 4012 C++20 la sobrecarga no constante omitió la verificación simple-view añadida

Véase también

devuelve un iterador al final
(función miembro pública)
devuelve un iterador al inicio de un rango
(objeto de punto de personalización)
devuelve un centinela que indica el final de un rango
(objeto de punto de personalización)