Platform::Collections::Map 类

表示一个 映射,它是键值对的集合。 实现 Windows::Foundation::Collections::IObservableVector 以帮助进行 XAML 数据绑定

语法

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

参数

K
键值对中键的类型。

V
键值对中值的类型。

C
提供一个函数对象的类型,该对象可以将两个元素值作为排序键加以比较,以决定它们在映射中的相对顺序。 在默认情况下为 std::less<K>

__is_valid_winrt_type() 编译器生成的函数,用于验证 K 和 V 类型,并在此类型无法存储在映射中时提供友好错误消息。

注解

允许的类型是:

  • integers

  • interface class^

  • 公共 ref 类

  • value struct

  • 公共枚举类

映射基本上是 std::map的包装器。 这是在公共 接口之间传递的 Windows::Foundation::Collections::IMap<Windows::Foundation::Collections::IKeyValuePair<K,V>>IObservableMap 类型的 C++ 具体实现。 如果你尝试在公共返回值或参数中使用 Platform::Collections::Map 类型,则将引发编译器错误 C3986。 通过将参数或返回值的类型更改为 Windows::Foundation::Collections::IMap<K,V> 可修复该错误。

有关详细信息,请参阅集合

成员

公共构造函数

名称 描述
Map::Map 初始化 Map 类的新实例。

公共方法

名称 描述
Map::Clear 从当前 Map 对象中移除所有键值对。
Map::First 返回指定映射中第一个元素的迭代器。
Map::GetView 返回当前映射的只读视图,即 Platform::Collections::MapView Class
Map::HasKey 确定当前 Map 中是否包含指定键。
Map::Insert 将指定的键值对添加到当前 Map 对象中。
Map::Lookup 检索当前 Map 对象中指定键处的元素。
Map::Remove 从当前 Map 对象中删除指定的键值对。
Map::Size 返回当前 Map 对象中的元素数目。

事件

名称 描述
Map::MapChanged 事件 当映射更改时发生。

继承层次结构

Map

要求

标头: collection.h

命名空间: Platform::Collections

Map::Clear 方法

从当前 Map 对象中移除所有键值对。

语法

virtual void Clear();

Map::First 方法

返回指定映射中第一个元素的迭代器,如果映射为空,则返回 nullptr

语法

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

返回值

指定映射中第一个元素的迭代器。

备注

保留 First() 返回的迭代器的一种简便方式是将返回值分配给用 auto 类型推导关键字声明的变量。 例如 auto x = myMap->First();

Map::GetView 方法

返回当前 Map 的只读视图;即实现 Windows::Foundation::Collections::IMapView<K,V> 接口的 Platform::Collections::MapView 类

语法

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

返回值

MapView 对象。

Map::HasKey 方法

确定当前 Map 中是否包含指定键。

语法

bool HasKey(K key);

参数


用于定位 Map 元素的键。 key 的类型名称为 K。

返回值

如果找到该键,则为 true;否则为 false

Map::Insert 方法

将指定的键值对添加到当前 Map 对象中。

语法

virtual bool Insert(K key, V value);

参数


键值对中的键部分。 key 的类型名称为 K。

value
键值对中的值部分。 value 的类型名称为 V。

返回值

如果当前映射中一个现有元素的键匹配 key 并且该元素的值部分设置为 value,则为 true 如果当前映射中没有任何现有元素匹配 key 并且 key 和 value 参数构成键值对并随后添加到当前 Map 中,则为 false

Map::Lookup 方法

检索与类型 K 的指定键关联的类型 V 的值(如果键存在)。

语法

V Lookup(K key);

参数


用于定位映射中的元素的键。 key 的类型名称为 K。

返回值

key 配对的值。 返回值的类型名称为 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
当前映射的类型名称。

comp
提供一个函数对象的类型,该对象可以将两个元素值作为排序键加以比较,以决定它们在映射中的相对顺序。

m
对用于初始化当前映射的 rvalue 的引用或 map Class

first
用于初始化当前映射的一系列元素中的第一个元素的输入迭代器。

last
用于初始化当前映射的一系列元素之后的第一个元素的输入迭代器。

Map::MapChanged 事件

项目插入到映射中或从映射中移除时引发。

语法

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

属性值/返回值

包含与引发事件的对象和所发生更改的类型相关的信息的 MapChangedEventHandler<K,V>。 另请参见 IMapChangedEventArgs<K>CollectionChange 枚举

.NET Framework 等效项

将 C# 或 Visual Basic 项目 IMap<K,V> 用作 IDictionary<K,V> 的 Windows 运行时应用。

Map::Remove 方法

从当前 Map 对象中删除指定的键值对。

语法

virtual void Remove(K key);

参数


键值对中的键部分。 key 的类型名称为 K。

Map::Size 方法

返回 Map 中的 Windows::Foundation::Collections::IKeyValuePair<K,V> 元素数目。

语法

virtual property unsigned int Size;

返回值

Map 中的元素数目。

另请参阅

集合 (C++/CX)
Platform 命名空间
使用 C++ 创建 Windows 运行时组件