Namespaces
Variants

std::ranges::zip_transform_view<F,Views...>::iterator

De es.cppreference.net
 
 
Biblioteca de rangos
Adaptadores de rango
 
 
template< bool Const >
class /*iterator*/;
(desde C++23)
(solo exposición*)

El tipo de iterador de un zip_transform_view posiblemente calificado como const, devuelto por zip_transform_view::begin y en ciertos casos por zip_transform_view::end.

El tipo /*iterator*/<true> o /*iterator*/<false> trata las vistas subyacentes como calificadas como const o no calificadas como const, respectivamente.

Tipos de miembros

Tipo Definición
Parent (privado) maybe-const <Const, zip_transform_view>
(tipo de miembro solo para exposición*)
Base (privado) maybe-const <Const, InnerView>
(tipo de miembro solo para exposición*)
iterator_category
(presente condicionalmente)

Sea /*POT*/ el paquete de tipos

std::iterator_traits<std::iterator_t<
    /*maybe-const*/<Const, Views>>>::iterator_category...

Si /*Base*/ modela forward_range, entonces iterator_category denota:

  • std::input_iterator_tag, si
    std::invoke_result_t</*maybe-const*/<Const, F>&,
        ranges::range_reference_t</*maybe-const*/<Const, Views>>...>
    
no es una referencia.
  • En caso contrario,
  • std::random_access_iterator_tag, si
(std::derived_from</*POT*/, std::random_access_iterator_tag> && ...) es true.
  • En caso contrario, std::bidirectional_iterator_tag, si
(std::derived_from</*POT*/, std::bidirectional_iterator_tag> && ...) es true.
  • En caso contrario, std::forward_iterator_tag, si
(std::derived_from</*POT*/, std::forward_iterator_tag> && ...) es true.
  • En caso contrario, std::input_iterator_tag.

No presente si /*Base*/ no modela forward_range.

iterator_concept /*ziperator*/<Const>::iterator_concept
value_type

Sea /*RREF*/ ranges::range_reference_t<Views>...,
y /*CRREF*/ sea ranges::range_reference_t<const Views>.... Entonces:

  • std::remove_cvref_t<std::invoke_result_t<F&, /*RREF*/>> si Const es false,
  • std::remove_cvref_t<std::invoke_result_t<const F&, /*CRREF*/>> en caso contrario.
difference_type range::range_difference_t</*Base*/>

Miembros de datos

Miembro Descripción
Parent* parent_ (privado) un puntero al objeto padre
(miembro de exposición únicamente objeto*)
ziperator<Const> inner_ (privado) un iterador
(miembro de exposición únicamente objeto*)

Funciones miembro

construye un iterador
(función miembro pública)
obtiene el resultado de aplicar el objeto invocable a los elementos subyacentes apuntados
(función miembro pública)
obtiene el resultado de aplicar el objeto invocable a los elementos subyacentes en el desplazamiento dado
(función miembro pública)
avanza o decrementa el iterador subyacente
(función miembro pública)

Funciones no miembro

compara los iteradores subyacentes
(función)
realiza operaciones aritméticas de iterador sobre los iteradores subyacentes
(función)

Ejemplo