Plantilla de estructura winrt::map_view_base (C++/WinRT)
Una clase base de la que se puede derivar para implementar su propia vista personalizada, o intervalo, de una secuencia contigua de elementos de una colección asociativa. Para obtener más información y ejemplos de código, consulta Colecciones con C++/WinRT.
Sintaxis
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 plantilla
typename D
El nombre del tipo derivado.
typename K
Tipo de las claves de la colección que abarca las vistas de map_view_base .
typename V
Tipo de los valores de la colección que map_view_base vistas o abarca.
typename Version
Tipo que proporciona la directiva de control de versiones y los servicios a la colección.
Requisitos
SDK mínimo admitido: sdk de Windows versión 10.0.17763.0 (Windows 10, versión 1809)
Espacio de nombres: winrt
Encabezado: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluido de forma predeterminada)
Funciones miembro
Función | Descripción |
---|---|
map_view_base::First (Función) | Recupera un IIterator que representa el primer elemento visto por el objeto map_view_base . |
map_view_base::HasKey (Función) | Determina si la clave especificada pertenece a un elemento visto por el objeto map_view_base . |
map_view_base::Lookup (Función) | Busca el elemento identificado por la clave especificada y recupera el valor correspondiente. |
map_view_base::Size (Función) | Recupera el número de elementos vistos por el objeto map_view_base . |
map_view_base::Split (función) | Divide la vista de mapa en dos vistas. |
Iterators
Un map_view_base es un intervalo y ese intervalo se define mediante funciones libres internas (cada una de las cuales recupera un iterador) que son compatibles con las características de lenguaje estándar. Por este motivo, puede enumerar los elementos vistos por un objeto map_view_base con una instrucción basada en for
intervalos.
También puede recuperar un IIterator de la función map_view_base::First y usarlo para recorrer en iteración los elementos vistos por un 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();
}
map_view_base::First (Función)
Recupera un IIterator que representa el primer elemento visto por el objeto map_view_base .
Sintaxis
auto First();
Valor devuelto
IIterator que representa el primer elemento visto por el objeto map_view_base.
map_view_base::HasKey (Función)
Determina si la clave especificada pertenece a un elemento visto por el objeto map_view_base .
Sintaxis
bool HasKey(K const& key) const noexcept;
Parámetros
key
Clave que se va a buscar.
Valor devuelto
true
es si se encuentra un elemento que contiene la clave; de lo contrario false
, es .
map_view_base::Lookup (Función)
Busca el elemento identificado por la clave especificada y recupera el valor correspondiente.
Sintaxis
V Lookup(K const& key) const;
Parámetros
key
Clave que se va a buscar.
Valor devuelto
El valor correspondiente a la clave que se busca si se encuentra, de lo contrario, se produce una excepción winrt::hresult_out_of_bounds .
map_view_base::Size (Función)
Recupera el número de elementos vistos por el objeto map_view_base .
Sintaxis
uint32_t Size() const noexcept;
Valor devuelto
Valor que representa el número de elementos vistos por el objeto map_view_base .
map_view_base::Split (función)
Divide la vista de mapa en dos vistas.
Sintaxis
void Split(Windows::Foundation::Collections::IMapView<K, V>& first, Windows::Foundation::Collections::IMapView<K, V>& second) const noexcept;
Parámetros
first
Una mitad del mapa original.
second
Segunda mitad del mapa original.