Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Classe
Uma exibição que tem apenas um elemento. Essa exibição é útil para fins de teste para chamar o código que precisa ser fornecido com uma exibição com pelo menos um elemento.
Sintaxe
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Parâmetros de modelo
T
O tipo do elemento.
Ver características
Para obter uma descrição das entradas a seguir, consulte Exibir características da classe
| Característica | Descrição |
|---|---|
| Adaptador de gama | views::single |
| Intervalo subjacente | Nenhum |
| Tipo de elemento | Especificado quando o single_view é criado |
| Exibir categoria do iterador | contiguous_range |
| Tamanho | Sempre retorna 1 |
É const-iterável |
Sim |
| Faixa comum | Sim |
| Alcance emprestado | Não |
Membros
| Funções de membro | Descrição |
|---|---|
| ConstrutoresC++20 | Construa um single_view. |
beginC++20 |
Obtenha um iterador para o elemento. |
dataC++20 |
Obtenha um ponteiro para o elemento. |
endC++20 |
Pegue a sentinela no final da vista. |
sizeC++20 |
Obtenha o número de elementos. Sempre retorna 1. |
Herdado de view_interface |
Descrição |
backC++20 |
Obtenha o elemento. |
emptyC++20 |
Teste se a exibição está vazia (sempre retorna false). |
frontC++20 |
Obtenha o elemento. |
operator[]C++20 |
Obtenha o elemento na posição especificada (somente a posição 0 é válida). |
operator boolC++20 |
Teste se a exibição não está vazia (sempre retorna false). |
Comentários
A melhor maneira de criar um single_view é usando o adaptador de views::single intervalo. Os adaptadores de intervalo são a maneira pretendida de criar classes de exibição. Os tipos de exibição são expostos caso você queira criar seu próprio tipo de exibição personalizado.
O valor no single_view pode ser modificado, a menos que o valor do modelo seja const. Por exemplo: single_view<const float> sv{3.14} // this value can't be modified because it's const.
Requisitos
Cabeçalho: <ranges> (desde C++20)
Namespace: std::ranges
Opção do compilador: /std:c++20 ou posterior é necessária.
Construtores
Crie uma instância de uma 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
O valor do elemento.
Para obter informações sobre o tipo de parâmetro de modelo, consulte Parâmetros de modelo.
Comentários
A melhor maneira de criar um single_view é usando o adaptador de views::single intervalo.
1) Crie um single_view com um único elemento do tipo especificado que é construído por padrão. Por exemplo, single_view<float> sv{} cria um single_view com um único elemento do tipo float que é construído por padrão para 0.0.
2) Crie um single_view com um único elemento do tipo especificado que é inicializado por cópia do argumento especificado. Por exemplo, single_view<myObjectType> sv{myObject} cria um single_view com um único elemento do tipo myObjectType que é inicializado por cópia do argumento.
3) Crie um single_view com um único elemento do tipo especificado que é inicializado por movimento a partir do argumento.
4) Crie um single_view com um único elemento do tipo especificado inicializado com (std::forward<Args>(args)...).
Exemplo single_view
/// requires /std:c++20 or later
#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
Obtenha um ponteiro para o elemento único na exibição.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Parâmetros
Nenhum.
Valor retornado
Um ponteiro para o único elemento dentro do single_view.
data
Obtenha um ponteiro para o elemento único no single_view.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Parâmetros
Nenhum.
Valor retornado
Um ponteiro para o elemento no single_view.
end
Obtém um ponteiro para o sentinela após o elemento.
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Parâmetros
Nenhum.
Valor retornado
Um ponteiro para a sentinela que segue o elemento.
size
Obtenha o número de elementos na exibição. Sempre retorna 1.
static constexpr size_t size() noexcept;
Parâmetros
Nenhum.
Valor retornado
1