Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
partial_sum
Prototype

template<class SinglePassRange,
         class OutputIterator>
OutputIterator partial_sum(const SinglePassRange& rng,
                           OutputIterator out_it);

template<class SinglePassRange,
         class OutputIterator,
         class BinaryOperation>
OutputIterator partial_sum(const SinglePassRange& rng,
                           OutputIterator out_it,
                           BinaryOperation op);

Description

partial_sum calculates a generalised partial sum of rng in the same manner as std::partial_sum(boost::begin(rng), boost::end(rng), out_it). See partial_sum.

Definition

Defined in the header file boost/range/numeric.hpp

Requirements
For the first version
  1. SinglePassRange is a model of the Single Pass Range Concept.
  2. OutputIterator is a model of the OutputIteratorConcept.
  3. If x and y are objects of SinglePassRange's value type, then x + y is defined.
  4. The return type of x + y is convertible to the value type of SinglePassRange.
  5. The value type of SinglePassRange is convertible to a type in OutputIterator's set of value types.
For the second version
  1. SinglePassRange is a model of the Single Pass Range Concept.
  2. OutputIterator is a model of the OutputIteratorConcept.
  3. BinaryOperation is a model of the BinaryFunctionConcept.
  4. The result type of BinaryOperation is convertible to the value type of SinglePassRange.
  5. The value type of SinglePassRange is convertible to a type in OutputIterator's set of value types.
Precondition:

[result, result + distance(rng)) is a valid range.

Complexity

Linear. If empty(rng) then zero applications, otherwise distance(rng) - 1 applications are performed.


PrevUpHomeNext