winrt::map_view_base templat struct (C++/WinRT)
Kelas dasar tempat Anda dapat memperoleh untuk mengimplementasikan tampilan kustom Anda sendiri, atau rentang, dari urutan elemen yang berdekatan dalam koleksi asosiatif. Untuk informasi selengkapnya, dan contoh kode, lihat Koleksi dengan C++/WinRT.
Sintaks
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>
Parameter templat
typename D
Nama jenis turunan Anda.
typename K
Jenis kunci dalam koleksi yang map_view_base tampilan, atau rentang.
typename V
Jenis nilai dalam koleksi yang map_view_base tampilan, atau rentang.
typename Version
Jenis yang menyediakan kebijakan dan layanan penerapan versi ke koleksi.
Persyaratan
SDK minimum yang didukung: Windows SDK versi 10.0.17763.0 (Windows 10, versi 1809)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (disertakan secara default)
Fungsi anggota
Fungsi | Deskripsi |
---|---|
map_view_base::Fungsi pertama | Mengambil IIterator yang mewakili elemen pertama yang dilihat oleh objek map_view_base . |
map_view_base::HasKey (Fungsi HasKey) | Menentukan apakah kunci yang ditentukan milik elemen yang dilihat oleh objek map_view_base . |
map_view_base::Fungsi pencarian | Mencari elemen yang diidentifikasi oleh kunci yang ditentukan, dan mengambil nilai yang sesuai. |
map_view_base::Fungsi ukuran | Mengambil jumlah elemen yang dilihat oleh objek map_view_base . |
fungsi map_view_base::Split | Memisahkan tampilan peta menjadi dua tampilan. |
Iterator
map_view_base adalah rentang, dan rentang tersebut didefinisikan oleh fungsi bebas internal (yang masing-masing mengambil iterator) yang kompatibel dengan fitur bahasa standar. Karena itu, Anda dapat menghitung elemen yang dilihat oleh objek map_view_base dengan pernyataan berbasis for
rentang.
Anda juga dapat mengambil IIterator dari fungsi map_view_base::First , dan menggunakannya untuk melakukan iterasi melalui elemen yang dilihat oleh objek 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::Fungsi pertama
Mengambil IIterator yang mewakili elemen pertama yang dilihat oleh objek map_view_base .
Sintaks
auto First();
Mengembalikan nilai
IIterator yang mewakili elemen pertama yang dilihat oleh objek map_view_base.
map_view_base::HasKey (Fungsi HasKey)
Menentukan apakah kunci yang ditentukan milik elemen yang dilihat oleh objek map_view_base .
Sintaks
bool HasKey(K const& key) const noexcept;
Parameter
key
Kunci yang harus dicari.
Mengembalikan nilai
true
jika elemen yang berisi kunci ditemukan, jika tidak false
.
map_view_base::Fungsi pencarian
Mencari elemen yang diidentifikasi oleh kunci yang ditentukan, dan mengambil nilai yang sesuai.
Sintaks
V Lookup(K const& key) const;
Parameter
key
Kunci untuk mencari.
Mengembalikan nilai
Nilai yang sesuai dengan kunci yang sedang dicari jika ditemukan, jika tidak, pengecualian winrt::hresult_out_of_bounds dilemparkan.
map_view_base::Fungsi ukuran
Mengambil jumlah elemen yang dilihat oleh objek map_view_base .
Sintaks
uint32_t Size() const noexcept;
Mengembalikan nilai
Nilai yang menunjukkan jumlah elemen yang dilihat oleh objek map_view_base .
fungsi map_view_base::Split
Memisahkan tampilan peta menjadi dua tampilan.
Sintaks
void Split(Windows::Foundation::Collections::IMapView<K, V>& first, Windows::Foundation::Collections::IMapView<K, V>& second) const noexcept;
Parameter
first
Setengah dari peta asli.
second
Paruh kedua peta asli.