source:
downloads/boost_1_34_1/libs/mpl/doc/src/refmanual/set.rst
@
29
| Last change on this file since 29 was 29, checked in by landauf, 17 years ago | |
|---|---|
| File size: 7.8 KB | |
set
Description
set is a |variadic|, `associative`__, `extensible`__ sequence of types that supports constant-time insertion and removal of elements, and testing for membership. A set may contain at most one element for each key.
Header
| Sequence form | Header |
|---|---|
| Variadic | #include <boost/mpl/set.hpp> |
| Numbered | #include <boost/mpl/set/setn.hpp> |
Expression semantics
In the following table, s is an instance of set, pos is an iterator into s, and x, k, and |t1...tn| are arbitrary types.
| Expression | Semantics |
|---|---|
set<|t1...tn|> setn<|t1...tn|> |
set of elements |t1...tn|; see |Variadic Sequence|. |
set<|t1...tn|>::type setn<|t1...tn|>::type |
Identical to setn<|t1...tn|>; see |Variadic Sequence|. |
| begin<s>::type | An iterator pointing to the beginning of s; see |Associative Sequence|. |
| end<s>::type | An iterator pointing to the end of s; see |Associative Sequence|. |
| size<s>::type | The size of s; see |Associative Sequence|. |
| empty<s>::type | |true if and only if| s is empty; see |Associative Sequence|. |
| front<s>::type | The first element in s; see |Associative Sequence|. |
| has_key<s,k>::type | |true if and only if| there is one or more elements with the key k in s; see |Associative Sequence|. |
| count<s,k>::type | The number of elements with the key k in s; see |Associative Sequence|. |
| order<s,k>::type | A unique unsigned |Integral Constant| associated with the key k in s; see |Associative Sequence|. |
at<s,k>::type at<s,k,def>::type |
The element associated with the key k in s; see |Associative Sequence|. |
| key_type<s,x>::type | Identical to x; see |Associative Sequence|. |
| value_type<s,x>::type | Identical to x; see |Associative Sequence|. |
| insert<s,x>::type | A new set equivalent to s except that at< t, key_type<s,x>::type >::type is identical to value_type<s,x>::type. |
| insert<s,pos,x>::type | Equivalent to insert<s,x>::type; pos is ignored. |
| erase_key<s,k>::type | A new set equivalent to s except that has_key<t, k>::value == false. |
| erase<s,pos>::type | Equivalent to erase<s, deref<pos>::type >::type. |
| clear<s>::type | An empty set; see |clear|. |
Example
typedef set< int,long,double,int_<5> > s; BOOST_MPL_ASSERT_RELATION( size<s>::value, ==, 4 ); BOOST_MPL_ASSERT_NOT(( empty<s> )); BOOST_MPL_ASSERT(( is_same< at<s,int>::type, int > )); BOOST_MPL_ASSERT(( is_same< at<s,long>::type, long > )); BOOST_MPL_ASSERT(( is_same< at<s,int_<5> >::type, int_<5> > )); BOOST_MPL_ASSERT(( is_same< at<s,char>::type, void_ > ));
Note: See TracBrowser
for help on using the repository browser.










