Modello di struct winrt::map_base (C++/WinRT)
Classe di base da cui è possibile derivare per implementare una raccolta associativa personalizzata non osservabile. Per altre info ed esempi di codice, vedi Raccolte con C++/WinRT.
template <typename D, typename K, typename V>
struct map_base : map_view_base<D, K, V, winrt::impl::collection_version>
typename D
Nome del tipo derivato.
typename K
Tipo delle chiavi nell'insieme.
typename V
Tipo dei valori nell'insieme.
SDK minimo supportato: Windows SDK versione 10.0.17763.0 (Windows 10, versione 1809)
Spazio dei nomi: winrt
Intestazione: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluso per impostazione predefinita)
Funzione | Descrizione |
---|---|
funzione map_base::Clear | Rimuove tutti gli elementi dall'oggetto map_base . |
funzione map_base::First | Recupera un IIterator che rappresenta il primo elemento dell'oggetto map_base . |
funzione map_base::GetView | Recupera una visualizzazione non modificabile dell'oggetto map_base . |
funzione map_base::HasKey | Determina se la chiave specificata appartiene a un elemento nell'oggetto map_base . |
funzione map_base::Insert | Inserisce o aggiorna un elemento nell'oggetto map_base . |
funzione map_base::Lookup | Cerca l'elemento identificato dalla chiave specificata e recupera il valore corrispondente. |
funzione map_base::Remove | Rimuove un elemento dall'oggetto map_base . |
funzione map_base::Size | Recupera il numero di elementi nell'oggetto map_base . |
Un map_base è un intervallo e tale intervallo viene definito da funzioni libere interne (ognuna delle quali recupera un iteratore) compatibili con le funzionalità del linguaggio standard. Per questo motivo, è possibile enumerare gli elementi in un oggetto map_base con un'istruzione basata su for
intervalli.
È anche possibile recuperare un IIterator dalla funzione map_base::First e usarlo per scorrere gli elementi in un oggetto 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();
}
Rimuove tutti gli elementi dall'oggetto map_base .
void Clear() noexcept;
Recupera un IIterator che rappresenta il primo elemento dell'oggetto map_base .
auto First();
IIterator che rappresenta il primo elemento dell'oggetto map_base.
Recupera una visualizzazione non modificabile dell'oggetto map_base .
winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;
Oggetto IMapView contenente una visualizzazione non modificabile del map_base.
Determina se la chiave specificata appartiene a un elemento nell'oggetto map_base .
bool HasKey(K const& key) const noexcept;
key
Chiave da cercare.
true
se viene trovato un elemento contenente la chiave; in caso contrario false
, .
Inserisce o aggiorna un elemento nell'oggetto map_base .
bool Insert(K const& key, V const& value);
key
Chiave associata all'elemento da inserire o aggiornare.
value
Valore da inserire o sostituire.
true
se è stato trovato e aggiornato un elemento con la chiave specificata; in caso contrario false
, .
Cerca l'elemento identificato dalla chiave specificata e recupera il valore corrispondente.
V Lookup(K const& key) const;
key
Chiave da cercare.
Se presente, il valore corrispondente alla chiave cercata; in caso contrario, viene generata un'eccezione winrt::hresult_out_of_bounds .
Rimuove un elemento dall'oggetto map_base .
void Remove(K const& key);
key
Chiave associata all'elemento da rimuovere.
Recupera il numero di elementi nell'oggetto map_base .
uint32_t Size() const noexcept;
Valore che rappresenta il numero di elementi nell'oggetto map_base .