Share via


Platform::Collections::Map 類別

代表 Map,這是機碼值組的集合。 實作 Windows::Foundation::Collections::IObservableMap 以協助進行 XAML 資料系結

語法

template <
   typename K,
   typename V,
   typename C = std::less<K>>
ref class Map sealed;

參數

K
機碼值組中,機碼的類型。

V
機碼值組中,值的型別。

C
一個型別,提供函式物件,可以根據排序鍵比較兩個項目值,判斷它們在 Map 中的相對順序。 根據預設, std::less < K >

__is_valid_winrt_type() 編譯器產生的函式,會驗證 K V 的類型 ,並在無法將類型儲存在 Map 中時提供易記的錯誤訊息。

備註

可使用的型別如下:

  • integers

  • 介面類別別^

  • 公用 ref 類別^

  • value struct

  • 公用列舉類別

Map 基本上是 std::map的包裝函式。 它是 Windows::Foundation::Collections::IMap < Windows::Foundation::Collections::IKeyValuePair < K、V >> 和 IObservableMap 類型的 C++ 具體實 作,這些類型會跨公用Windows 執行階段介面傳遞。 如果您嘗試在公用傳回值或參數中使用 Platform::Collections::Map 類型,則會引發編譯器錯誤 C3986。 您可以將參數的類型變更為 Windows::Foundation::Collections::IMap < K,V > ,以修正錯誤。

如需詳細資訊,請參閱 集合

成員

公用建構函式

名稱 描述
Map::Map 初始化 Map 類別的新執行個體。

公用方法

名稱 描述
Map::Clear 從目前 Map 物件移除所有機碼值組。
Map::First 傳回迭代器,指定 Map 中的第一個項目。
Map::GetView 傳回目前 Map 的唯讀檢視,也就是 Platform::Collections::MapView Class
Map::HasKey 判斷目前 Map 是否包含指定的機碼。
Map::Insert 將指定的機碼值組加入目前 Map 物件中。
Map::Lookup 擷取目前 Map 物件中,所指定機碼處的項目。
Map::Remove 從目前 Map 物件中刪除指定的機碼值組。
Map::Size 傳回目前 Map 物件中的項目數。

事件

名稱 描述
Map::MapChanged 事件 發生於 Map 變更時。

繼承階層架構

Map

需求

標頭: collection.h

命名空間: Platform::Collections

Map::Clear 方法

從目前 Map 物件移除所有機碼值組。

語法

virtual void Clear();

Map::First 方法

傳回指定 Map 中第一個元素的迭代器。如果 Map 是空的,則傳回 nullptr

語法

virtual Windows::Foundation::Collections::IIterator<
Windows::Foundation::Collections::IKeyValuePair<K, V>^>^ First();

傳回值

迭代器,指定對應中的第一個元素。

備註

保留 First() 所傳回反覆運算器的便利方式是將傳回值指派給以類型推算關鍵字宣告的 auto 變數。 例如: auto x = myMap->First();

Map::GetView 方法

傳回目前地圖的唯讀檢視;也就是 Platform::Collections::MapView 類別 ,它會實作 Windows::Foundation::Collections::IMapView < K,V > 介面。

語法

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

傳回值

MapView 物件。

Map::HasKey 方法

判斷目前 Map 是否包含指定的機碼。

語法

bool HasKey(K key);

參數

key
用來尋找 Map 項目的機碼。 索引鍵 的類型 為 typename K

傳回值

true 如果找到索引鍵,則為 ;否則為 false

Map::Insert 方法

將指定的機碼值組加入目前 Map 物件中。

語法

virtual bool Insert(K key, V value);

參數

key
機碼值組的機碼部分。 索引鍵 的類型 為 typename K

value
機碼值組的值部分。 實值 的類型為 typename V

傳回值

true如果目前 Map 中現有專案的索引鍵符合 索引鍵 ,且該專案的值部分設定為 value ,則為 false如果目前 Map 中沒有任何現有元素符合 索引鍵 ,且 索引鍵和 值參數會變成索引鍵 /值 組,然後新增至目前的 Map。

Map::Lookup 方法

取得與類型為 K 之指定機碼 (如果該機碼存在的話) 相關聯且類型為 V 的值。

語法

V Lookup(K key);

參數

key
用來在 Map 中尋找元素的機碼。 索引鍵 的類型 為 typename K

傳回值

索引鍵 配對的值。 傳回值的型別為 typename V

備註

如果機碼不存在, 則會擲回 Platform::OutOfBoundsException

Map::Map 建構函式

初始化 Map 類別的新執行個體。

語法

explicit Map(const C& comp = C());
explicit Map(const StdMap& m);
explicit Map(StdMap&& m ;
template <typename InIt>
Map(
   InItfirst,
   InItlast,
   const C& comp = C());

參數

Init
目前 Map 的 typename。

comp
一個型別,提供函式物件,可以根據排序鍵比較兩個項目值,判斷它們在 Map 中的相對順序。

m
用來 map Class 初始化目前 Map 之 的參考或 右值

first
用來初始化目前 Map 的項目範圍中,第一個項目的輸入迭代器。

last
用來初始化目前 Map 的項目範圍以外第一個項目的輸入迭代器。

Map::MapChanged 事件

在對應中插入或移除項目時引發。

語法

event Windows::Foundation::Collections::MapChangedEventHandler<K,V>^ MapChanged;

屬性值/傳回值

MapChangedEventHandler < K、V > ,其中包含引發事件之物件的相關資訊,以及發生的變更種類。 另 請參閱 IMapChangedEventArgs < K > CollectionChange 列舉

.NET Framework 同等

Windows 執行階段使用 C# 或 Visual Basic 專案 IMap < 的應用程式K,V > 作為 IDictionary < K,V > .

Map:: remove 方法

從目前 Map 物件中刪除指定的機碼值組。

語法

virtual void Remove(K key);

參數

key
機碼值組的機碼部分。 索引鍵 的類型 為 typename K

Map::Size 方法

傳回 Map 中 Windows::Foundation::Collections::IKeyValuePair < K,V > 元素的數目

語法

virtual property unsigned int Size;

傳回值

Map 中的元素數目。

另請參閱

集合 (C++/CX)
平臺命名空間
在 C++ 中建立 Windows 執行階段元件