partial_sum
Vypočítá částek vstupní oblasti z prvního prvku prostřednictvím řady ith element a uloží výsledek každé takové součet v ith prvku Cílová oblast nebo vypočítá výsledek obecný postup, kde součet operace nahrazeno jiným zadána binární operace.
template<class InputIterator, class OutIt>
OutputIterator partial_sum(
InputIterator _First,
InputIterator _Last,
OutputIterator _Result
);
template<class InputIterator, class OutIt, class Fn2>
OutputIterator partial_sum(
InputIterator _First,
InputIterator _Last,
OutputIterator _Result,
BinaryOperation _Binary_op
);
Parametry
_First
Vstupní iterátoru adresování první prvek v rozsahu částečně sečtené nebo kombinované podle zadané binární operace._Last
Vstupní iterace adresování poslední prvek v rozsahu se částečně sčítat nebo kombinované podle zadané binární operace je o jednu pozici za poslední prvek iterated akumulace skutečně zahrnuty._Result
Iterace výstup adresování cílové oblasti, kde je řada dílčí součty nebo výsledky zadanou operaci uložení první prvek._Binary_op
Binární operace, která se použije v zobecněné operaci nahrazení operaci v postupu dílčí součet součtu.
Vrácená hodnota
Adresování konec rozsahu cílové výstupní iterace: _Result + ()_Last - _First),
Poznámky
Iterační výstup _Result být stejné iterační jako vstupní iterační _First, aby dílčí součty mohou vypočítané v místě.
Pro posloupnost hodnot 1, 2, 3, vstupní oblasti, první funkce šablony ukládá následné částečné částek v cílové oblasti kde ith element je dán (((1 + 2) + 3) i).
Pro posloupnost hodnot 1, 2, 3, vstupní oblasti, druhá funkce šablony ukládá následné částečné částek v cílové oblasti, kde je dán i-tého prvku ((( 1_Binary_op2 ) _Binary_op3 ) i).
Binární operace _Binary_op není nutný asociativní nebo komutativní, protože pořadí operací vztahuje zcela určen.
partial_summá dva související formuláře:
Některé formy kontrolované iterační předáte partial_sum, získat kontrolované iterační chování. Pokud předáte Nekontrolovaná iterace, získat nekontrolované chování.Další informace naleznete v tématu Zaškrtnuté iterátory.
Příklad
// numeric_partial_sum.cpp
// compile with: /EHsc
#include <vector>
#include <list>
#include <numeric>
#include <functional>
#include <iostream>
int main( )
{
using namespace std;
vector<int> V1( 10 ), V2( 10 );
vector<int>::iterator VIter1, VIter2, VIterend, VIterend2;
list <int> L1;
list <int>::iterator LIter1, LIterend;
int t;
for ( t = 1 ; t <= 10 ; t++ )
{
L1.push_back( t );
}
cout << "The input list L1 is:\n ( " ;
for ( LIter1 = L1.begin( ) ; LIter1 != L1.end( ) ; LIter1++ )
cout << *LIter1 << " ";
cout << ")." << endl;
// The first member function for the partial sums of
// elements in a list output to a vector
VIterend = partial_sum ( L1.begin ( ) , L1.end ( ) ,
V1.begin ( ) );
cout << "The output vector containing the partial sums is:\n ( " ;
for ( VIter1 = V1.begin( ) ; VIter1 != VIterend ; VIter1++ )
cout << *VIter1 << " ";
cout << ")." << endl;
// The second member function used to compute
// the partial product of the elements in a list
VIterend2 = partial_sum ( L1.begin ( ) , L1.end ( ) , V2.begin ( ) ,
multiplies<int>( ) );
cout << "The output vector with the partial products is:\n ( " ;
for ( VIter2 = V2.begin( ) ; VIter2 != VIterend2 ; VIter2++ )
cout << *VIter2 << " ";
cout << ")." << endl;
// Computation of partial sums in place
LIterend = partial_sum ( L1.begin ( ) , L1.end ( ) , L1.begin ( ) );
cout << "The in place output partial_sum list L1 is:\n ( " ;
for ( LIter1 = L1.begin( ) ; LIter1 != LIterend ; LIter1++ )
cout << *LIter1 << " ";
cout << ")." << endl;
}
Výsledek
The input list L1 is:
( 1 2 3 4 5 6 7 8 9 10 ).
The output vector containing the partial sums is:
( 1 3 6 10 15 21 28 36 45 55 ).
The output vector with the partial products is:
( 1 2 6 24 120 720 5040 40320 362880 3628800 ).
The in place output partial_sum list L1 is:
( 1 3 6 10 15 21 28 36 45 55 ).
Požadavky
Záhlaví: <numeric>
Obor názvů: std