winrt::map_view_base 구조체 템플릿(C++/WinRT)

결합 컬렉션에 있는 연속된 요소 시퀀스의 사용자 지정 뷰 또는 범위를 구현하기 위해 파생할 수 있는 기본 클래스입니다. 자세한 정보 및 코드 예제는 C++/WinRT가 있는 컬렉션을 참조하세요.

구문

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>

템플릿 매개 변수

typename D 파생 형식 이름입니다.

typename K컬렉션에서 map_view_base 보거나 포괄하는 키의 형식입니다.

typename V컬렉션에서 map_view_base 보거나 포괄하는 값의 형식입니다.

typename Version 컬렉션에 버전 관리 정책 및 서비스를 제공하는 형식입니다.

요구 사항

지원되는 최소 SDK: Windows SDK 버전 10.0.17763.0(Windows 10, 버전 1809)

네임스페이스: winrt

헤더: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h(기본적으로 포함)

멤버 함수

기능 설명
map_view_base::First 함수 map_view_base 개체에서 보는 첫 번째 요소를 나타내는 IIterator를 검색합니다.
map_view_base::HasKey 함수 지정된 키가 map_view_base 개체에서 보는 요소에 속하는지 여부를 확인합니다.
map_view_base::Lookup 함수 지정된 키로 식별된 요소를 조회하고 해당 값을 검색합니다.
map_view_base::Size 함수 map_view_base 개체에서 보는 요소 수를 검색합니다.
map_view_base::Split 함수 지도 보기를 두 개의 보기로 분할합니다.

반복기

map_view_base 범위이며 해당 범위는 표준 언어 기능과 호환되는 내부 자유 함수(각각 반복기를 검색)에 의해 정의됩니다. 이 때문에 범위 기반 for 문을 사용하여 map_view_base 개체에서 보는 요소를 열거할 수 있습니다.

또한 map_view_base::First 함수에서 IIterator를 검색하고 이를 사용하여 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 함수

map_view_base 개체에서 보는 첫 번째 요소를 나타내는 IIterator를 검색합니다.

구문

auto First();

반환 값

map_view_base 개체에서 보는 첫 번째 요소를 나타내는 IIterator입니다.

map_view_base::HasKey 함수

지정된 키가 map_view_base 개체에서 보는 요소에 속하는지 여부를 확인합니다.

구문

bool HasKey(K const& key) const noexcept;

매개 변수

key 찾을 키입니다.

반환 값

true 키를 포함하는 요소가 있으면 없으면 이고, 그렇지 않으면 false.

map_view_base::Lookup 함수

지정된 키로 식별된 요소를 조회하고 해당 값을 검색합니다.

구문

V Lookup(K const& key) const;

매개 변수

key 조회할 키입니다.

반환 값

찾을 경우 조회되는 키에 해당하는 값입니다. 그렇지 않으면 winrt::hresult_out_of_bounds 예외가 throw됩니다.

map_view_base::Size 함수

map_view_base 개체에서 보는 요소 수를 검색합니다.

구문

uint32_t Size() const noexcept;

반환 값

map_view_base 개체에서 보는 요소 수를 나타내는 값입니다.

map_view_base::Split 함수

지도 보기를 두 개의 보기로 분할합니다.

구문

void Split(Windows::Foundation::Collections::IMapView<K, V>& first, Windows::Foundation::Collections::IMapView<K, V>& second) const noexcept;

매개 변수

first 원래 맵의 절반.

second 원본 맵의 후반부입니다.

참고 항목