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.
Uma exibição sobre o primeiro índice em cada valor semelhante a uma tupla em uma coleção. Por exemplo, dado um intervalo de std::tuple<string, int>, crie uma exibição que consiste em todos os string elementos de cada tupla.
keys_view é um alias para elements_view<R, 0> e é útil para fazer a visualização das chaves de contêineres associativos como std::map ou std::unordered_map.
Sintaxe
template<input_range R>
using keys_view = ranges::elements_view<R, 0>;
Parâmetros do modelo
R
O tipo do intervalo subjacente. Este tipo deve satisfazer ranges::input_range.
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::keys |
| Gama subjacente | Deve satisfazer input_range ou superior |
| Tipo de elemento | O mesmo que o tipo do primeiro elemento de tupla do intervalo subjacente |
| Ver categoria do iterador |
random_access_range se o intervalo subjacente for contíguo, caso contrário o mesmo que o intervalo subjacente |
| Tamanho | Apenas se o intervalo subjacente satisfizer sized_range |
É const-iterável |
Apenas se o intervalo subjacente satisfizer const-iterable |
| Gama comum | Apenas se o intervalo subjacente satisfizer common_range |
| Intervalo emprestado | Apenas se o intervalo subjacente satisfizer borrowed_range |
Membros
A lista a seguir de funções de membro refere-se à keys_view classe. Lembre-se de que este é um alias para uma instanciação de element_view modelo de classe.
| Funções de membro | Descrição |
|---|---|
| ConstrutoresC++20 | Construa um keys_viewarquivo . |
base
C++20 |
Obtenha o intervalo subjacente. |
begin
C++20 |
Obtenha um iterador para o primeiro elemento. |
end
C++20 |
Obtenha a sentinela no final da vista. |
size
C++20 |
Obtenha o número de elementos. A gama subjacente deve satisfazer sized_range. |
Herdado de view_interface |
Descrição |
back
C++20 |
Obtenha o último elemento. |
empty
C++20 |
Teste se o está keys_view vazio. |
front
C++20 |
Obtenha o primeiro elemento. |
operator[]
C++20 |
Obtenha o elemento na posição especificada. |
operator bool
C++20 |
Teste se o keys_view não está vazio. |
Requerimentos
Cabeçalho:<ranges> (desde C++20)
Espaço de nomes: std::ranges
Opção do compilador:/std:c++20 ou mais tarde é necessário.
Observações
Os tipos semelhantes a tuplas com os quais você pode usar keys_view são std::tuple, std::pair, e std::array.
Construtores
Construa uma instância de um keys_viewarquivo .
1) constexpr keys_view(V base);
2) keys_view() requires std::default_initializable<V> = default;
Parâmetros
base
O intervalo subjacente.
Para obter informações sobre o tipo de parâmetro de modelo, consulte Parâmetros de modelo.
Valor de retorno
Um keys_view exemplo.
Observações
A melhor maneira de criar um keys_view é usando o adaptador de keys 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.
1) Crie um keys_view a partir da visualização especificada.
2) O construtor padrão cria um vazio keys_view.
Exemplo: keys_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <utility>
int main()
{
// ========== work with a std::map
std::map<std::string, int> cpp_standards
{
{"C++98", 1988},
{"C++03", 2003},
{"C++11", 2011},
{"C++14", 2014},
{"C++17", 2017},
{"C++20", 2020}
};
// Extract all of the keys from the map
for (const std::string& standards : std::views::keys(cpp_standards))
{
std::cout << standards << ' '; // C++03 C++11 C++14 C++17 C++98 C++20
}
std::cout << '\n';
// ========== work with a range of std::pair
std::vector<std::pair<std::string, int>> windows
{
{"Windows 1.0", 1985},
{"Windows 2.0", 1987},
{"Windows 3.0", 1990},
{"Windows 3.1", 1992},
{"Windows NT 3.1", 1993},
{"Windows 95", 1995},
{"Windows NT 4.0", 1996},
{"Windows 95", 1995},
{"Windows 98", 1998},
{"Windows 1.0", 1985},
{"Windows 2000", 2000}
};
// Another way to call the range adaptor using '|': create an keys_view from each pair
for (const std::string& version : windows | std::views::keys)
{
std::cout << version << ' '; // Windows 1.0 Windows 2.0 Windows 3.0 ...
}
}
C++03 C++11 C++14 C++17 C++98 c++20
Windows 1.0 Windows 2.0 Windows 3.0 Windows 3.1 Windows NT 3.1 Windows 95 Windows NT 4.0 Windows 95 Windows 98 Windows 1.0 Windows 2000
base
Obtém uma cópia do modo de exibição subjacente.
// 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() &&;
Parâmetros
Nenhum.
Valor de retorno
A visão subjacente.
begin
Obtenha um iterador para o primeiro elemento no keys_view.
1) constexpr auto begin() requires (!Simple_view<V>);
2) constexpr auto begin() const requires (Simple_view<V>) // or put another way, requires ranges::range<const V>;
Parâmetros
Nenhum.
Valor de retorno
Um iterador apontando para o primeiro elemento no keys_view.
end
Obtenha a sentinela no final da seringa keys_view
1) constexpr auto end() requires (!Simple_view<V> && !ranges::common_range<V>);
2) constexpr auto end() requires (!Simple_view<V> && ranges::common_range<V>);
3) constexpr auto end() const requires ranges::range<const V>;
4) constexpr auto end() const requires ranges::common_range<const V>;
Parâmetros
Nenhum.
Valor de retorno
A sentinela que se segue ao último elemento do keys_view:
size
Obtenha o número de elementos.
constexpr auto size() requires sized_range<V>
constexpr auto size() const requires sized_range<const V>
Parâmetros
Nenhum.
Valor de retorno
O número de elementos no keys_view.
Observações
O tamanho da vista só está disponível se o intervalo subjacente for um sized_range, ou, por outras palavras, limitado.