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 + -
显示快捷键?