Partilhar via


Modelo de struct winrt::map_base (C++/WinRT)

Uma classe base da qual você pode derivar para implementar sua própria coleção associativa não observável personalizada. Para obter mais informações e exemplos de código, consulte Coleções com C++/WinRT.

Syntax

template <typename D, typename K, typename V>
struct map_base : map_view_base<D, K, V, winrt::impl::collection_version>

Parâmetros de modelo

typename D Seu nome de tipo derivado.

typename K O tipo das chaves na coleção.

typename V O tipo dos valores na coleção.

Requisitos

SDK mínimo com suporte: 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_base::Clear Remove todos os elementos do objeto map_base .
função map_base::First Recupera um IIterator que representa o primeiro elemento no objeto map_base .
Função map_base::GetView Recupera uma exibição imutável do objeto map_base .
Função map_base::HasKey Determina se a chave especificada pertence a um elemento no objeto map_base .
função map_base::Insert Insere ou atualiza um elemento no objeto map_base .
Função map_base::Lookup Pesquisa o elemento identificado pela chave especificada e recupera o valor correspondente.
função map_base::Remove Remove um elemento do objeto map_base .
Função map_base::Size Recupera o número de elementos no objeto map_base .

Iterators

Um map_base é um intervalo e esse intervalo é definido por funções livres internas (cada uma das quais recupera um iterador) compatíveis com os recursos de linguagem padrão. Por isso, você pode enumerar os elementos em um objeto map_base com uma instrução baseada em for intervalo.

Você também pode recuperar um IIterator da função map_base::First e usá-lo para iterar por meio dos elementos em um objeto map_base .

...
#include <iostream>
using namespace winrt;
using namespace Windows::Foundation::Collections;
...
struct MyMap :
    implements<MyMap, IMap<winrt::hstring, int>, IMapView<winrt::hstring, int>, IIterable<IKeyValuePair<winrt::hstring, int>>>,
    winrt::map_base<MyMap, winrt::hstring, int>
{
    auto& get_container() const noexcept
    {
        return m_values;
    }

    auto& get_container() noexcept
    {
        return m_values;
    }

private:
    std::map<winrt::hstring, int> m_values{
        { L"AliceBlue", 0xfff0f8ff }, { L"AntiqueWhite", 0xfffaebd7 }
    };
};
...
IMap<winrt::hstring, int> map{ winrt::make<MyMap>() };

for (auto const& el : map)
{
    std::wcout << el.Key().c_str() << L", " << std::hex << el.Value() << std::endl;
}

IIterator<IKeyValuePair<winrt::hstring, int>> it{ map.First() };
while (it.HasCurrent())
{
    std::wcout << it.Current().Key().c_str() << L", " << std::hex << it.Current().Value() << std::endl;
    it.MoveNext();
}

função map_base::Clear

Remove todos os elementos do objeto map_base .

Syntax

void Clear() noexcept;

função map_base::First

Recupera um IIterator que representa o primeiro elemento no objeto map_base .

Sintaxe

auto First();

Valor retornado

Um IIterator que representa o primeiro elemento no objeto map_base .

Função map_base::GetView

Recupera uma exibição imutável do objeto map_base .

Sintaxe

winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;

Valor retornado

Um IMapView que contém uma exibição imutável do map_base.

Função map_base::HasKey

Determina se a chave especificada pertence a um elemento no objeto map_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_base::Insert

Insere ou atualiza um elemento no objeto map_base .

Sintaxe

bool Insert(K const& key, V const& value);

Parâmetros

key A chave associada ao elemento a ser inserido ou atualizado.

value O valor a ser inserido ou substituído.

Valor retornado

true se um elemento com a chave especificada foi encontrado e atualizado; caso contrário false.

Função map_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 é lançada.

função map_base::Remove

Remove um elemento do objeto map_base .

Sintaxe

void Remove(K const& key);

Parâmetros

key A chave associada ao elemento a ser removido.

Função map_base::Size

Recupera o número de elementos no objeto map_base .

Sintaxe

uint32_t Size() const noexcept;

Valor retornado

Um valor que representa o número de elementos no objeto map_base .

Confira também