Platform::Collections::Map Class

Represents a map, which is a collection of key-value pairs. Implements Windows::Foundation::Collections::IObservableMap to help with XAML data binding.

Syntax

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

Parameters

K
The type of the key in the key-value pair.

V
The type of the value in the key-value pair.

C
A type that provides a function object that can compare two element values as sort keys to determine their relative order in the Map. By default, std::less<K>.

__is_valid_winrt_type() A compiler-generated function that validates the type of K and V and provides a friendly error message if the type cannot be stored in the Map.

Remarks

Allowed types are:

  • integers

  • interface class^

  • public ref class^

  • value struct

  • public enum class

Map is basically a wrapper for std::map. It is a C++ concrete implementation of the Windows::Foundation::Collections::IMap<Windows::Foundation::Collections::IKeyValuePair<K,V>> and IObservableMap types that are passed across public Windows Runtime interfaces. If you try to use a Platform::Collections::Map type in a public return value or parameter, compiler error C3986 is raised. You can fix the error by changing the type of the parameter or return value to Windows::Foundation::Collections::IMap<K,V>.

For more information, see Collections.

Members

Public Constructors

Name Description
Map::Map Initializes a new instance of the Map class.

Public Methods

Name Description
Map::Clear Removes all key-value pairs from the current Map object.
Map::First Returns an iterator that specifies the first element in the map.
Map::GetView Returns a read-only view of the current Map; that is, a Platform::Collections::MapView Class.
Map::HasKey Determines whether the current Map contains the specified key.
Map::Insert Adds the specified key-value pair to the current Map object.
Map::Lookup Retrieves the element at the specified key in the current Map object.
Map::Remove Deletes the specified key-value pair from the current Map object.
Map::Size Returns the number of elements in the current Map object.

Events

Name Description
Map::MapChanged event Occurs when the Map changes.

Inheritance Hierarchy

Map

Requirements

Header: collection.h

Namespace: Platform::Collections

Map::Clear Method

Removes all key-value pairs from the current Map object.

Syntax

virtual void Clear();

Map::First Method

Returns an iterator that specifies the first element in the map, or nullptr if the map is empty.

Syntax

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

Return Value

An iterator that specifies the first element in the map.

Remarks

A convenient way to hold the iterator returned by First() is to assign the return value to a variable that is declared with the auto type deduction keyword. For example, auto x = myMap->First();.

Map::GetView Method

Returns a read-only view of the current Map; that is, a Platform::Collections::MapView Class, which implements the Windows::Foundation::Collections::IMapView<K,V> interface.

Syntax

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

Return Value

A MapView object.

Map::HasKey Method

Determines whether the current Map contains the specified key.

Syntax

bool HasKey(K key);

Parameters

key
The key used to locate the Map element. The type of key is typename K.

Return Value

true if the key is found; otherwise, false.

Map::Insert Method

Adds the specified key-value pair to the current Map object.

Syntax

virtual bool Insert(K key, V value);

Parameters

key
The key portion of the key-value pair. The type of key is typename K.

value
The value portion of the key-value pair. The type of value is typename V.

Return Value

true if the key of an existing element in the current Map matches key and the value portion of that element is set to value. false if no existing element in the current Map matches key and the key and value parameters are made into a key-value pair and then added to the current Map.

Map::Lookup Method

Retrieves the value of type V that is associated with the specified key of type K, if the key exists.

Syntax

V Lookup(K key);

Parameters

key
The key used to locate an element in the Map. The type of key is typename K.

Return Value

The value that is paired with the key. The type of the return value is typename V.

Remarks

If the key does not exist, then a Platform::OutOfBoundsException is thrown.

Map::Map Constructor

Initializes a new instance of the Map class.

Syntax

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());

Parameters

InIt
The typename of the current Map.

comp
A type that provides a function object that can compare two element values as sort keys to determine their relative order in the Map.

m
A reference or rvalue to a map Class that is used to initialize the current Map.

first
The input iterator of the first element in a range of elements used to initialize the current Map.

last
The input iterator of the first element after a range of elements used to initialize the current Map.

Map::MapChanged Event

Raised when an item is inserted into or removed from the map.

Syntax

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

Property Value/Return Value

A MapChangedEventHandler<K,V> that contains information about the object that raised the event, and the kind of change that occurred. See also IMapChangedEventArgs<K> and CollectionChange Enumeration.

.NET Framework Equivalent

Windows Runtime apps that use C# or Visual Basic project IMap<K,V> as IDictionary<K,V>.

Map::Remove Method

Deletes the specified key-value pair from the current Map object.

Syntax

virtual void Remove(K key);

Parameters

key
The key portion of the key-value pair. The type of key is typename K.

Map::Size Method

Returns the number of Windows::Foundation::Collections::IKeyValuePair<K,V> elements in the Map.

Syntax

virtual property unsigned int Size;

Return Value

The number of elements in the Map.

See also

Collections (C++/CX)
Platform Namespace
Creating Windows Runtime Components in C++