reverse_transform.rst
来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 164 行
RST
164 行
.. Algorithms/Transformation Algorithms//reverse_transform |130.. 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_transform=================Synopsis--------.. parsed-literal:: template< typename Seq , typename Op , typename In = |unspecified| > struct reverse_transform { typedef |unspecified| type; }; template< typename Seq1 , typename Seq2 , typename BinaryOp , typename In = |unspecified| > struct reverse_transform { typedef |unspecified| type; };Description-----------``reverse_transform`` is an |overloaded name|:* ``reverse_transform<Seq,Op>`` returns a reversed, transformed copy of the original sequence produced by applying an unary transformation ``Op`` to every element in the |begin/end<Sequence>| range.* ``reverse_transform<Seq1,Seq2,Op>`` returns a new sequence produced by applying a binary transformation ``BinaryOp`` to a pair of elements (e\ :sub:`1`, e2\ :sub:`1`) from the corresponding |begin/end<Seq1>| and |begin/end<Seq2>| ranges in reverse order.|transformation algorithm disclaimer|Header------.. parsed-literal:: #include <boost/mpl/transform.hpp>Model of--------|Reversible Algorithm|Parameters----------+-------------------+-----------------------------------+-----------------------------------+| Parameter | Requirement | Description |+===================+===================================+===================================+| ``Sequence``, | |Forward Sequence| | Sequences to transform. || ``Seq1``, ``Seq2``| | |+-------------------+-----------------------------------+-----------------------------------+| ``Op``, | |Lambda Expression| | A transformation. || ``BinaryOp`` | | |+-------------------+-----------------------------------+-----------------------------------+| ``In`` | |Inserter| | An inserter. |+-------------------+-----------------------------------+-----------------------------------+Expression semantics--------------------|Semantics disclaimer...| |Reversible Algorithm|.For any |Forward Sequence|\ s ``s``, ``s1`` and ``s2``, |Lambda Expression|\ s ``op`` and ``op2``, and an |Inserter| ``in``:.. parsed-literal:: typedef reverse_transform<s,op,in>::type r; :Return type: A type. :Postcondition: Equivalent to .. parsed-literal:: typedef lambda<op>::type f; typedef lambda<in::operation>::type in_op; typedef reverse_fold< s , in::state , bind< in_op, _1, bind<f, _2> > >::type r;.. parsed-literal:: typedef transform<s1,s2,op,in>::type r; :Return type: A type. :Postcondition: Equivalent to .. parsed-literal:: typedef lambda<op2>::type f; typedef lambda<in::operation>::type in_op; typedef reverse_fold< pair_view<s1,s2> , in::state , bind< in_op , _1 , bind<f, bind<first<>,_2>, bind<second<>,_2> > > >::type r;Complexity----------Linear. Exactly ``size<s>::value`` / ``size<s1>::value`` applications of ``op`` / ``op2`` and ``in::operation``.Example-------.. parsed-literal:: typedef vector<char,short,int,long,float,double> types; typedef vector<double*,float*,long*,int*,short*,char*> pointers; typedef reverse_transform< types,boost::add_pointer<_1> >::type result; BOOST_MPL_ASSERT(( equal<result,pointers> ));See also--------|Transformation Algorithms|, |Reversible Algorithm|, |transform|, |reverse_copy|, |replace_if|
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?