accumulate.rst
来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 108 行
RST
108 行
.. Algorithms/Iteration Algorithms//accumulate |10.. 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)accumulate==========Synopsis--------.. parsed-literal:: template< typename Sequence , typename State , typename ForwardOp > struct accumulate { typedef |unspecified| type; };Description-----------Returns the result of the successive application of binary ``ForwardOp`` to the result of the previous ``ForwardOp`` invocation (``State`` if it's the first call) and every element of the sequence in the range |begin/end<Sequence>| in order. |Note:| ``accumulate`` is a synonym for |fold| |-- end note|Header------.. parsed-literal:: #include <boost/mpl/accumulate.hpp>Parameters----------+---------------+-------------------------------+---------------------------------------------------+| Parameter | Requirement | Description |+===============+===============================+===================================================+| ``Sequence`` | |Forward Sequence| | A sequence to iterate. |+---------------+-------------------------------+---------------------------------------------------+| ``State`` | Any type | The initial state for the first ``ForwardOp`` || | | application. |+---------------+-------------------------------+---------------------------------------------------+| ``ForwardOp`` | Binary |Lambda Expression| | The operation to be executed on forward || | | traversal. |+---------------+-------------------------------+---------------------------------------------------+Expression semantics--------------------For any |Forward Sequence| ``s``, binary |Lambda Expression| ``op``, and arbitrary type ``state``:.. parsed-literal:: typedef accumulate<s,state,op>::type t; :Return type: A type.:Semantics: Equivalent to .. parsed-literal:: typedef fold<s,state,op>::type t; Complexity----------Linear. Exactly ``size<s>::value`` applications of ``op``. Example-------.. parsed-literal:: typedef vector<long,float,short,double,float,long,long double> types; typedef accumulate< types , int_<0> , if_< is_float<_2>,next<_1>,_1 > >::type number_of_floats; BOOST_MPL_ASSERT_RELATION( number_of_floats::value, ==, 4 );See also--------|Algorithms|, |fold|, |reverse_fold|, |iter_fold|, |reverse_iter_fold|, |copy|, |copy_if|
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?