insert_range.rst

来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 125 行

RST
125
字号
.. Sequences/Intrinsic Metafunctions//insert_range.. Copyright Aleksey Gurtovoy, David Abrahams 2007... Distributed under the Boost.. Software License, Version 1.0. (See accompanying.. file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)insert_range============Synopsis--------.. parsed-literal::        template<          typename Sequence        , typename Pos        , typename Range        >    struct insert_range    {        typedef |unspecified| type;    };Description-----------``insert_range`` performs an insertion of a range of elements at an arbitrary position in the sequence.Header------.. parsed-literal::        #include <boost/mpl/insert_range.hpp>Model of--------|Tag Dispatched Metafunction|Parameters----------+---------------+-----------------------------------+-----------------------------------------------+| Parameter     | Requirement                       | Description                                   |+===============+===================================+===============================================+| ``Sequence``  | |Extensible Sequence| or          | A sequence to insert into.                    ||               | |Extensible Associative Sequence| |                                               |+---------------+-----------------------------------+-----------------------------------------------+| ``Pos``       | |Forward Iterator|                | An iterator in ``Sequence`` specifying the    ||               |                                   | insertion position.                           |+---------------+-----------------------------------+-----------------------------------------------+| ``Range``     | |Forward Sequence|                | The range of elements to be inserted.         |+---------------+-----------------------------------+-----------------------------------------------+Expression semantics--------------------For any |Extensible Sequence| ``s``, iterator ``pos`` in ``s``, and |Forward Sequence| ``range``:.. parsed-literal::    typedef insert<s,pos,range>::type r; :Return type:    |Extensible Sequence|.:Precondition:    ``pos`` is an iterator into ``s``. :Semantics:    ``r`` is a sequence, |concept-identical| to ``s``, of the following elements:     [``begin<s>::type``, ``pos``), [``begin<r>::type``, ``end<r>::type``),    [``pos``, ``end<s>::type``).:Postcondition:    The relative order of the elements in ``r`` is the same as in ``s``;    .. parsed-literal::            size<r>::value == size<s>::value + size<range>::value Complexity----------Sequence dependent. Quadratic in the worst case, linear at best; see the particular sequence class' specification for details.Example-------.. parsed-literal::        typedef vector_c<int,0,1,7,8,9> numbers;    typedef find< numbers,integral_c<int,7> >::type pos;    typedef insert_range< numbers,pos,range_c<int,2,7> >::type range;    BOOST_MPL_ASSERT_RELATION( size<range>::value, ==, 10 );    BOOST_MPL_ASSERT(( equal< range,range_c<int,0,10> > ));    typedef insert_range<           list\ ``0``\ <>        , end< list\ ``0``\ <> >::type        , list<int>        >::type result2;        BOOST_MPL_ASSERT_RELATION( size<result2>::value, ==, 1 );See also--------|Extensible Sequence|, |insert|, |push_front|, |push_back|, |erase|

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?