Bagikan melalui


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.

Lihat juga