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的包裝函式。 它是 C++ Windows::Foundation::Collections::IMap<Windows::Foundation::Collections::IKeyValuePair<K、V>> 和 IObservableMap 類型的具體實作,這些類型會跨公用 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 中的元素數目。