winrt::map_view_base modelo de struct (C++/WinRT)
Uma classe base da qual você pode derivar para implementar sua própria exibição personalizada, ou intervalo, de uma sequência contígua de elementos em uma coleção associativa. Para obter mais informações e exemplos de código, consulte Coleções com C++/WinRT.
Syntax
template <typename D, typename K, typename V, typename Version = winrt::impl::no_collection_version>
struct map_view_base : iterable_base<D, winrt::Windows::Foundation::Collections::IKeyValuePair<K, V>, Version>
Parâmetros de modelo
typename D
Seu nome de tipo derivado.
typename K
O tipo das chaves na coleção que o map_view_base exibições ou abrange.
typename V
O tipo dos valores na coleção que o map_view_base exibições ou abrange.
typename Version
Um tipo que fornece política de controle de versão e serviços para a coleção.
Requisitos
SDK com suporte mínimo: Windows SDK versão 10.0.17763.0 (Windows 10, versão 1809)
Namespace: winrt
Cabeçalho: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluído por padrão)
Funções de membro
Função | Descrição |
---|---|
função map_view_base::First | Recupera um IIterator que representa o primeiro elemento exibido pelo objeto map_view_base . |
Função map_view_base::HasKey | Determina se a chave especificada pertence a um elemento exibido pelo objeto map_view_base . |
função map_view_base::Lookup | Pesquisa o elemento identificado pela chave especificada e recupera o valor correspondente. |
Função map_view_base::Size | Recupera o número de elementos exibidos pelo objeto map_view_base . |
Função map_view_base::Split | Divide a exibição do mapa em duas exibições. |
Iterators
Um map_view_base é um intervalo e esse intervalo é definido por funções livres internas (cada uma delas recupera um iterador) compatíveis com recursos de linguagem padrão. Por isso, você pode enumerar os elementos exibidos por um objeto map_view_base com uma instrução baseada em for
intervalo.
Você também pode recuperar um IIterator da função map_view_base::First e usá-lo para iterar por meio dos elementos exibidos por um objeto map_view_base .
...
#include <iostream>
using namespace winrt;
using namespace Windows::Foundation::Collections;
...
struct MyMapView :
implements<MyMapView, IMapView<winrt::hstring, int>, IIterable<IKeyValuePair<winrt::hstring, int>>>,
winrt::map_view_base<MyMapView, winrt::hstring, int>
{
auto& get_container() const noexcept
{
return m_values;
}
private:
std::map<winrt::hstring, int> m_values{
{ L"AliceBlue", 0xfff0f8ff }, { L"AntiqueWhite", 0xfffaebd7 }
};
};
...
IMapView<winrt::hstring, int> view{ winrt::make<MyMapView>() };
for (auto const& el : view)
{
std::wcout << el.Key().c_str() << L", " << std::hex << el.Value() << std::endl;
}
IIterator<IKeyValuePair<winrt::hstring, int>> it{ view.First() };
while (it.HasCurrent())
{
std::wcout << it.Current().Key().c_str() << L", " << std::hex << it.Current().Value() << std::endl;
it.MoveNext();
}
função map_view_base::First
Recupera um IIterator que representa o primeiro elemento exibido pelo objeto map_view_base .
Sintaxe
auto First();
Valor retornado
Um IIterator que representa o primeiro elemento exibido pelo objeto map_view_base .
Função map_view_base::HasKey
Determina se a chave especificada pertence a um elemento exibido pelo objeto map_view_base .
Sintaxe
bool HasKey(K const& key) const noexcept;
Parâmetros
key
A chave a ser pesquisada.
Valor retornado
true
se um elemento que contém a chave for encontrado, caso contrário false
.
função map_view_base::Lookup
Pesquisa o elemento identificado pela chave especificada e recupera o valor correspondente.
Sintaxe
V Lookup(K const& key) const;
Parâmetros
key
A chave a ser pesquisada.
Valor retornado
O valor correspondente à chave que está sendo pesquisada se encontrado, caso contrário, uma exceção winrt::hresult_out_of_bounds é gerada.
Função map_view_base::Size
Recupera o número de elementos exibidos pelo objeto map_view_base .
Sintaxe
uint32_t Size() const noexcept;
Valor retornado
Um valor que representa o número de elementos exibidos pelo objeto map_view_base .
Função map_view_base::Split
Divide a exibição do mapa em duas exibições.
Sintaxe
void Split(Windows::Foundation::Collections::IMapView<K, V>& first, Windows::Foundation::Collections::IMapView<K, V>& second) const noexcept;
Parâmetros
first
Metade do mapa original.
second
A segunda metade do mapa original.