Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Classe
Uma exibição que faz referência aos elementos que pertencem a outro intervalo.
Sintaxe
template<std::ranges::range R>
requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;
Parâmetros de modelo
R
O intervalo a ser referenciado.
Membros
| Funções de membro | Descrição |
|---|---|
| ConstrutoresC++20 | Construa um ref_view. |
baseC++20 |
Obtenha uma referência ao intervalo subjacente. |
beginC++20 |
Obtenha um iterador para o primeiro elemento. |
dataC++20 |
Obtenha um ponteiro para o primeiro elemento no intervalo referenciado. |
emptyC++20 |
Teste se está ref_view vazio. |
endC++20 |
Pegue o sentinela no final deste ref_view. |
sizeC++20 |
Obtenha o número de elementos. O intervalo subjacente deve satisfazer sized_range. |
Herdado de view_interface |
Descrição |
backC++20 |
Obtenha o último elemento. |
frontC++20 |
Obtenha o primeiro elemento. |
operator[]C++20 |
Obter o elemento na posição especificada. |
operator boolC++20 |
Teste se isso ref_view não está vazio. |
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::all ou views::common |
| Intervalo subjacente | Deve satisfazer input_range |
| Tipo de elemento | O mesmo que o intervalo subjacente |
| Exibir categoria do iterador | O mesmo que o intervalo subjacente |
| Tamanho | Somente se o intervalo subjacente satisfizer sized_range |
É const-iterável |
Sim |
| Faixa comum | Somente se o intervalo subjacente satisfizer common_range |
| Alcance emprestado | Sim |
Requisitos
Cabeçalho: <ranges> (desde C++20)
Namespace: std::ranges
Opção do compilador: /std:c++20 ou posterior é necessária.
Construtores
Construir uma instância de um ref_view
// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);
Parâmetros
rg
O intervalo a ser referenciado.
Para obter informações sobre o tipo de parâmetro de modelo, consulte Parâmetros de modelo.
Valor retornado
Uma instância de ref_view.
Comentários
A melhor maneira de criar um ref_view é usando o adaptador de views::all 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.
A ref_view é útil para converter um contêiner em uma exibição. Por exemplo, você pode usar ref_view para converter a vector em uma exibição, o que torna barato passar os elementos do vetor.
Exemplo: ref_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v = {1,2,3};
auto refView = std::views::all(v);
std::cout << &refView[1] << " : " << &v[1]; // outputs two identical memory addresses, e.g. 00000239AFAFDF90 : 00000239AFAFDF90
refView[0] = 10; // modifies v[0]
std::cout << "\n" << v[0]; // 10
}
00000239AFAFDF90 : 00000239AFAFDF90
10
base
Obtém uma cópia do intervalo subjacente.
constexpr R& base() const;
Parâmetros
Nenhum.
Valor retornado
O intervalo subjacente.
begin
Obtenha um iterador para o primeiro elemento no ref_view.
constexpr iterator_t<R> begin() const;
Parâmetros
Nenhum.
Valor retornado
Um iterador apontando para o primeiro elemento neste ref_view.
data
Obtenha um ponteiro para o primeiro elemento neste ref_view. Os elementos no intervalo devem ser contíguos.
constexpr auto data() const requires contiguous_range<R>;
Parâmetros
Nenhum.
Valor retornado
Um ponteiro para o primeiro elemento.
empty
Teste se está ref_view vazio.
constexpr bool empty() const
Parâmetros
Nenhum.
Valor retornado
Retorna true se o ref_view não contiver elementos. Caso contrário, false.
end
Pegue o sentinela no final deste ref_view.
constexpr sentinel_t<R> end() const
Valor retornado
A sentinela que segue o último elemento neste ref_view:
size
Obtenha o número de elementos.
constexpr auto size() const requires sized_range<R>
Parâmetros
Nenhum.
Valor retornado
O número de elementos em ref_view.