single_view
(Clase, Biblioteca estándar de C++)
Vista que solo tiene un elemento. Esta vista es útil para fines de prueba para llamar al código que debe proporcionarse con una vista con al menos un elemento en él.
Sintaxis
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Parámetros de plantilla
T
El tipo del elemento.
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::single |
Intervalo subyacente | None |
Tipo de elemento | Se especifica cuando se crea .single_view |
Ver categoría de iterador | contiguous_range |
Tamaño | Siempre devuelve 1 |
Es const -iterable |
Sí |
Rango común | Sí |
Intervalo prestado | No |
Miembros
Funciones miembro | Descripción |
---|---|
ConstructoresC++20 | Construya un elemento single_view . |
begin C++20 |
Obtiene un iterador al elemento . |
data C++20 |
Obtiene un puntero al elemento . |
end C++20 |
Obtenga el sentinel al final de la vista. |
size C++20 |
Obtiene el número de elementos. Siempre devuelve 1 . |
Heredado de view_interface |
Descripción |
back C++20 |
Obtenga el elemento . |
empty C++20 |
Compruebe si la vista está vacía (siempre devuelve false ). |
front C++20 |
Obtenga el elemento . |
operator[] C++20 |
Obtenga el elemento en la posición especificada (solo la posición 0 es válida). |
operator bool C++20 |
Compruebe si la vista no está vacía (siempre devuelve false ). |
Comentarios
La mejor manera de crear un single_view
es usar el adaptador de views::single
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.
El valor de single_view
se puede modificar a menos que el valor de plantilla sea const
. Por ejemplo: single_view<const float> sv{3.14} // this value can't be modified because it's const
.
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 single_view
.
1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
requires constructible_from<T, Args...>
constexpr single_view(in_place_t, Args&&... args);
Parámetros
t
Valor del elemento.
Para obtener información sobre el tipo de parámetro de plantilla, consulte Parámetros de plantilla.
Comentarios
La mejor manera de crear un single_view
es usar el adaptador de views::single
rango.
1) Cree un single_view
con un único elemento del tipo especificado construido de forma predeterminada. Por ejemplo, single_view<float> sv{}
crea un single_view
objeto con un único elemento de tipo float
que se construye de forma predeterminada en 0.0
.
2) Cree un single_view
objeto con un único elemento del tipo especificado que se inicializa copiando desde el argumento especificado. Por ejemplo, single_view<myObjectType> sv{myObject}
crea un single_view
objeto con un único elemento de tipo myObjectType
que se inicializa con copia desde el argumento .
3) Cree un single_view
objeto con un único elemento del tipo especificado que se inicializa desde el argumento .
4) Cree un single_view
con un único elemento del tipo especificado inicializado con (std::forward<Args>(args)...)
.
Por ejemplo, single_view
/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>
int main()
{
std::ranges::single_view<int> sv{7};
std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7
std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit
begin
Obtenga un puntero al único elemento de la vista.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Parámetros
Ninguno.
Valor devuelto
Puntero al elemento único dentro de single_view
.
data
Obtenga un puntero al único elemento de .single_view
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Parámetros
Ninguno.
Valor devuelto
Puntero al elemento de .single_view
end
Obtiene un puntero al sentinel después del elemento .
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Parámetros
Ninguno.
Valor devuelto
Puntero al centinela que sigue al elemento .
size
Obtiene el número de elementos de la vista. Siempre devuelve 1
.
static constexpr size_t size() noexcept;
Parámetros
Ninguno.
Valor devuelto
1