Compartir a través de


common_view (Clase, Biblioteca estándar de C++)

Tome un intervalo que pueda tener diferentes tipos de iterador y centinela y cree una vista que tenga el mismo iterador y tipo centinela. Esto resulta útil para llamar a algoritmos STL que aceptan intervalos especificados por pares de iteradores.

Sintaxis

template<ranges::view V>
    requires (!ranges::common_range<V> && std::copyable<ranges::iterator_t<V>>)
class common_view : public ranges::view_interface<common_view<V>>;

Parámetros de plantilla

V
Tipo de la vista subyacente.

Características de la vista

Para obtener una descripción de las siguientes entradas, vea View class characteristics (Ver características de clase).

Característica Descripción
Adaptador de rango views::common
Intervalo subyacente Debe satisfacer forward_range o superior
Tipo de elemento Igual que el intervalo subyacente
Ver categoría de iterador forward_range o random_access_range cuando el intervalo subyacente satisface random_access_range y sized_range
Tamaño Solo si el intervalo subyacente cumple sized_range
Es const-iterable Solo si el intervalo subyacente es const iterable
Rango común
Intervalo prestado Solo si el intervalo subyacente cumple borrowed_range

Miembros

Funciones miembro Descripción
ConstructoresC++20 Construya un elemento common_view.
baseC++20 Obtenga la vista subyacente.
beginC++20 Obtenga un iterador al primer elemento de la vista.
endC++20 Obtenga el sentinel al final de la vista.
sizeC++20 Obtiene el número de elementos de la vista.
Heredado de view_interface Descripción
backC++20 Obtenga el último elemento.
dataC++20 Obtiene un puntero al primer elemento.
emptyC++20 Compruebe si la vista está vacía.
frontC++20 Obtiene el primer elemento.
operator[]C++20 Obtiene el elemento que se encuentra en la posición especificada.
operator boolC++20 Compruebe si la vista no está vacía.

Comentarios

La mejor manera de crear un common_view es usar el adaptador de views::common rango. Los adaptadores de rango son la manera prevista de crear clases de vista. Los tipos de vista se exponen en caso de que desee crear su propio tipo de vista personalizado.

Esta vista es útil para pasar un intervalo que tiene diferentes tipos de iterador o centinela a un algoritmo heredado que espera que sean los mismos.

Requisitos

Encabezado: <ranges> (desde C++20)

Espacio de nombres: std::ranges

Opción del compilador: /std:c++20 o posterior es necesaria.

Constructores

Cree una instancia de common_view.

1) common_view() = default;
2) constexpr explicit common_view(V v);

Parámetros

v
Vista subyacente.

Para obtener información sobre el tipo de parámetro de plantilla, consulte Parámetros de plantilla.

Comentarios

1) El valor predeterminado construye .common_view
2) Construye a common_view partir de la vista subyacente mediante std::move(v). Se producirá un error si V es un intervalo común para evitar el uso indebido que afectaría negativamente al rendimiento.

base

Obtiene una copia de la vista subyacente.

// Uses a copy constructor to return the underlying view
constexpr V base() const& requires std::copy_constructible<V>;

// Uses a move constructor to return the underlying view
constexpr V base() &&;

begin

Obtenga un iterador al primer elemento.

constexpr auto begin();
constexpr auto begin() const requires range<const V>;

Valor devuelto

Iterador que apunta al primer elemento de la vista:

Imagen de un vector con los elementos 10, 20 y 30. El primer elemento contiene 10 y se etiqueta begin(). El último elemento contiene 30 y se etiqueta como

end

Obtenga el sentinel al final de la vista.

constexpr auto end();
constexpr auto end() const requires ranges::range<const V>;

Valor devuelto

Sentinel que sigue al último elemento de la vista:

Imagen de un vector con los elementos 10, 20 y 30. El primer elemento contiene 10 y se etiqueta begin(). El último elemento contiene 30 y se etiqueta como

size

Obtiene el número de elementos de la vista.

constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;

Parámetros

Ninguno.

Valor devuelto

Número de elementos de la vista.

Consulte también

<ranges>
common adaptador de rango
ver clases