Partilhar via


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.

Confira também