source:
downloads/boost_1_34_1/libs/mpl/doc/src/refmanual/erase.rst
@
29
| Last change on this file since 29 was 29, checked in by landauf, 17 years ago | |
|---|---|
| File size: 4.6 KB | |
erase
Synopsis
template<
typename Sequence
, typename First
, typename Last = |unspecified|
>
struct erase
{
typedef |unspecified| type;
};
Description
erase performs a removal of one or more adjacent elements in the sequence starting from an arbitrary position.
Header
#include <boost/mpl/erase.hpp>
Model of
Parameters
| Parameter | Requirement | Description |
|---|---|---|
| Sequence | |Extensible Sequence| or |Extensible Associative Sequence| | A sequence to erase from. |
| First | |Forward Iterator| | An iterator to the beginning of the range to be erased. |
| Last | |Forward Iterator| | An iterator past-the-end of the range to be erased. |
Expression semantics
For any |Extensible Sequence| s, and iterators pos, first and last into s:
typedef erase<s,first,last>::type r;
| Return type: | |
|---|---|
| Precondition: | [first,last) is a valid range in s. |
| Semantics: | r is a new sequence, |concept-identical| to s, of the following elements: [begin<s>::type, pos), [last, end<s>::type). |
| Postcondition: | The relative order of the elements in r is the same as in s; size<r>::value == size<s>::value - distance<first,last>::value |
typedef erase<s,pos>::type r;
| Return type: | |
|---|---|
| Precondition: | pos is a dereferenceable iterator in s. |
| Semantics: | Equivalent to typedef erase< s,pos,next<pos>::type >::type r; |
For any |Extensible Associative Sequence| s, and iterator pos into s:
typedef erase<s,pos>::type r;
| Return type: | |Extensible Sequence|. |
|---|---|
| Precondition: | pos is a dereferenceable iterator to s. |
| Semantics: | Erases the element at a specific position pos; equivalent to erase_key<s, deref<pos>::type >::type. |
| Postcondition: | size<r>::value == size<s>::value - 1. |
Complexity
| Sequence archetype | Complexity (the range form) |
|---|---|
| |Extensible Associative Sequence| | Amortized constant time. |
| |Extensible Sequence| | Quadratic in the worst case, linear at best. |
Example
typedef vector_c<int,1,0,5,1,7,5,0,5> values; typedef find< values, integral_c<int,7> >::type pos; typedef erase<values,pos>::type result; BOOST_MPL_ASSERT_RELATION( size<result>::value, ==, 7 ); typedef find<result, integral_c<int,7> >::type iter; BOOST_MPL_ASSERT(( is_same< iter, end<result>::type > ));
Note: See TracBrowser
for help on using the repository browser.










