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 中的元素数目。