Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: downloads/boost_1_33_1/libs/mpl/doc/src/refmanual/set.rst @ 12

Last change on this file since 12 was 12, checked in by landauf, 18 years ago

added boost

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.

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

Docutils System Messages

?????????????????????????????????????
Note: See TracBrowser for help on using the repository browser.