Шаблон структуры winrt::map_base (C++/WinRT)

Базовый класс, производный от которого можно реализовать собственную не наблюдаемую ассоциативную коллекцию. Дополнительные сведения и примеры кода см. в разделе "Коллекции" с помощью C++/WinRT.

Синтаксис

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

Параметры шаблона

typename D Имя производного типа.

typename K Тип ключей в коллекции.

typename V Тип значений в коллекции.

Требования

Минимальный поддерживаемый пакет SDK: пакет SDK Windows версии 10.0.17763.0 (Windows 10, версия 1809)

Пространство имен: winrt

Заголовок: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (включен по умолчанию)

Функции элементов

Функция Описание
функция map_base::Clear Удаляет все элементы из объекта map_base .
функция map_base::First Извлекает IIterator , представляющий первый элемент в объекте map_base .
функция map_base::GetView Извлекает неизменяемое представление объекта map_base .
функция map_base::HasKey Определяет, принадлежит ли указанный ключ элементу в объекте map_base .
функция map_base::Insert Вставляет или обновляет элемент в объекте map_base .
функция map_base::Lookup Ищет элемент, определенный указанным ключом, и извлекает соответствующее значение.
функция map_base::Remove Удаляет элемент из объекта map_base .
функция map_base::Size Извлекает количество элементов в объекте map_base .

Iterators

Map_base — это диапазон, который определяется внутренними бесплатными функциями (каждый из которых получает итератор), совместимый со стандартными языковыми функциями. Из-за этого можно перечислить элементы в объекте map_base с помощью оператора на основе for диапазона.

Вы также можете получить IIterator из функции map_base::First и использовать ее для итерации элементов в объекте 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();
}

функция map_base::Clear

Удаляет все элементы из объекта map_base .

Синтаксис

void Clear() noexcept;

функция map_base::First

Извлекает IIterator , представляющий первый элемент в объекте map_base .

Синтаксис

auto First();

Возвращаемое значение

IIterator, представляющий первый элемент в объекте map_base.

функция map_base::GetView

Извлекает неизменяемое представление объекта map_base .

Синтаксис

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

Возвращаемое значение

IMapView, содержащий неизменяемое представление map_base.

функция map_base::HasKey

Определяет, принадлежит ли указанный ключ элементу в объекте map_base .

Синтаксис

bool HasKey(K const& key) const noexcept;

Параметры

key Ключ для поиска.

Возвращаемое значение

true Значение , если элемент, содержащий ключ, найден, в противном случае false.

функция map_base::Insert

Вставляет или обновляет элемент в объекте map_base .

Синтаксис

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

Параметры

key Ключ, связанный с элементом для вставки или обновления.

value Значение для вставки или замены.

Возвращаемое значение

true Значение , если элемент с указанным ключом найден и обновлен; в противном случае false.

функция map_base::Lookup

Ищет элемент, определенный указанным ключом, и извлекает соответствующее значение.

Синтаксис

V Lookup(K const& key) const;

Параметры

key Ключ для поиска.

Возвращаемое значение

Значение, соответствующее поиску ключа при обнаружении, в противном случае возникает исключение winrt::hresult_out_of_bounds .

функция map_base::Remove

Удаляет элемент из объекта map_base .

Синтаксис

void Remove(K const& key);

Параметры

key Ключ, связанный с удаляемого элемента.

функция map_base::Size

Извлекает количество элементов в объекте map_base .

Синтаксис

uint32_t Size() const noexcept;

Возвращаемое значение

Значение, представляющее количество элементов в объекте map_base .

См. также раздел