| Front Page / Sequences / Classes / map | 
map is a variadic, associative, extensible sequence of type pairs that supports constant-time insertion and removal of elements, and testing for membership. A map may contain at most one element for each key.
| Sequence form | Header | 
|---|---|
| Variadic | #include <boost/mpl/map.hpp> | 
| Numbered | #include <boost/mpl/map/mapn.hpp> | 
In the following table and subsequent specifications, m is an instance of map, pos is an iterator into m, x and p1,p2,... pn are pairs, and k is an arbitrary type.
| Expression | Semantics | 
|---|---|
| map<p1,p2,... pn> mapn<p1,p2,... pn> | map of elements p1,p2,... pn; see Variadic Sequence. | 
| map<p1,p2,... pn>::type mapn<p1,p2,... pn>::type | Identical to mapn<p1,p2,... pn>; see Variadic Sequence. | 
| begin<m>::type | An iterator pointing to the beginning of m; see Associative Sequence. | 
| end<m>::type | An iterator pointing to the end of m; see Associative Sequence. | 
| size<m>::type | The size of m; see Associative Sequence. | 
| empty<m>::type | A boolean Integral Constant c such that c::value == true if and only if m is empty; see Associative Sequence. | 
| front<m>::type | The first element in m; see Associative Sequence. | 
| has_key<m,k>::type | Queries the presence of elements with the key k in m; see Associative Sequence. | 
| count<m,k>::type | The number of elements with the key k in m; see Associative Sequence. | 
| order<m,k>::type | A unique unsigned Integral Constant associated with the key k in m; see Associative Sequence. | 
| at<m,k>::type at<m,k,default>::type | The element associated with the key k in m; see Associative Sequence. | 
| key_type<m,x>::type | Identical to x::first; see Associative Sequence. | 
| value_type<m,x>::type | Identical to x::second; see Associative Sequence. | 
| insert<m,x>::type | A new map, t, equivalent to m except that at< t, key_type<m,x>::type >::type is identical to value_type<m,x>::type. | 
| insert<m,pos,x>::type | Equivalent to insert<m,x>::type; pos is ignored. | 
| erase_key<m,k>::type | A new map, t, equivalent to m except that has_key<t, k>::value == false. | 
| erase<m,pos>::type | Equivalent to erase<m, deref<pos>::type >::type. | 
| clear<m>::type | An empty map; see clear. | 
typedef map< pair<int,unsigned> , pair<char,unsigned char> , pair<long_<5>,char[17]> , pair<int[42],bool> > m; BOOST_MPL_ASSERT_RELATION( size<m>::value, ==, 4 ); BOOST_MPL_ASSERT_NOT(( empty<m> )); BOOST_MPL_ASSERT(( is_same< at<m,int>::type, unsigned > )); BOOST_MPL_ASSERT(( is_same< at<m,long_<5> >::type, char[17] > )); BOOST_MPL_ASSERT(( is_same< at<m,int[42]>::type, bool > )); BOOST_MPL_ASSERT(( is_same< at<m,long>::type, void_ > ));