reverse_stable_partition.rst

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

RST
133
字号
.. Algorithms/Transformation Algorithms//reverse_stable_partition |190.. 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)reverse_stable_partition========================Synopsis--------.. parsed-literal::        template<          typename Seq        , typename Pred        , typename In1 = |unspecified|        , typename In2 = |unspecified|        >    struct reverse_stable_partition    {        typedef |unspecified| type;    };Description-----------Returns a pair of sequences together containing all elements in the range |begin/end<Seq>| split into two groups based on the predicate ``Pred``.``reverse_stable_partition`` is guaranteed to preserve the reversed relative order of the elements in the resulting sequences.|transformation algorithm disclaimer|Header------.. parsed-literal::        #include <boost/mpl/stable_partition.hpp>Model of--------|Reversible Algorithm|Parameters----------+-------------------+-----------------------------------+-------------------------------+| Parameter         | Requirement                       | Description                   |+===================+===================================+===============================+| ``Seq``           | |Forward Sequence|                | An original sequence.         |+-------------------+-----------------------------------+-------------------------------+| ``Pred``          | Unary |Lambda Expression|         | A partitioning predicate.     |+-------------------+-----------------------------------+-------------------------------+| ``In1``, ``In2``  | |Inserter|                        | Output inserters.             |+-------------------+-----------------------------------+-------------------------------+Expression semantics--------------------|Semantics disclaimer...| |Reversible Algorithm|.For any |Forward Sequence| ``s``, an unary |Lambda Expression| ``pred``, and |Inserter|\ s ``in1`` and ``in2``:.. parsed-literal::    typedef reverse_stable_partition<s,pred,in1,in2>::type r;:Return type:    A |pair|.    :Semantics:    Equivalent to     .. parsed-literal::            typedef lambda<pred>::type p;        typedef lambda<in1::operation>::type in1_op;        typedef lambda<in2::operation>::type in2_op;                typedef reverse_fold<              s            , pair< in1::state, in2::state >            , if_<                   apply_wrap\ ``1``\<p,_2>                , pair< apply_wrap\ ``2``\<in1_op,first<_1>,_2>, second<_1> >                , pair< first<_1>, apply_wrap\ ``2``\<in2_op,second<_1>,_2> >                >            >::type r;Complexity----------Linear. Exactly ``size<s>::value`` applications of ``pred``, and ``size<s>::value`` of summarized ``in1::operation`` / ``in2::operation`` applications. Example-------.. parsed-literal::        template< typename N > struct is_odd : bool_<(N::value % 2)> {};    typedef reverse_stable_partition<          range_c<int,0,10>         , is_odd<_1>        , back_inserter< vector<> >        , back_inserter< vector<> >        >::type r;    BOOST_MPL_ASSERT(( equal< r::first, vector_c<int,9,7,5,3,1> > ));    BOOST_MPL_ASSERT(( equal< r::second, vector_c<int,8,6,4,2,0> > ));See also--------|Transformation Algorithms|, |Reversible Algorithm|, |stable_partition|, |reverse_partition|, |sort|, |transform|

⌨️ 快捷键说明

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