【VC开源代码栏目提醒】:本文主要为网学会员提供NUMERIC.CPP,希望对需要NUMERIC.CPP网友有所帮助,学习一下!
// numeric.cpp : 定义控制台应用
程序的入口点。
//
#include "stdafx.h"
#include <iostream.h>
#include <deque>
#include <numeric>
#include <functional>
using namespace std;
typedef deque<int> TestDeque;
typedef TestDeque::iterator TestDequeIt;
void OutputDeque (TestDeque deque, char*);
void main( )
{
TestDeque b;
int i;
for ( i = 1 ; i < 21 ; i++ )
{
b.push_back( i );
}
//输出结果
cout<<"初始情况下的队列b:"<<endl;
OutputDeque (b,"b");
// 计算总和
int total;
total = accumulate (b.begin ( ) , b.end ( ) , 0 );
cout << endl<<"b队列所有元素的总和为: "<< total << "." << endl<<endl;
// 计算部分和
int j = 0, partotal;
TestDequeIt Iter;
TestDeque a(20);
for ( Iter = b.begin( ) + 1; Iter != b.end( ) + 1 ; Iter++ )
{
partotal = accumulate ( b.begin ( ) , Iter, 0 );
a [ j ] = partotal;
j++;
}
OutputDeque (a,"b队列的部分和队列 ");
cout<<endl;
// 计算乘积
TestDeque c;
for ( i = 1 ; i < 11 ; i++ )
{
c.push_back( i );
}
OutputDeque(c,"c");
total = accumulate ( c.begin ( ) , c.end ( ) , 1 , multiplies<int>( ) );
cout <<endl<< "队列c各元素的乘积为: "<< total << "." << endl;
}
//显示双队列内容
void OutputDeque (TestDeque deque, char *name)
{
//创建一个迭代器
TestDeque::iterator mydeque;
cout <<"双队列"<< name <<"的内容为 : ";
for(mydeque = deque.begin(); mydeque != deque.end();mydeque++)
{
cout << *mydeque <<" ";
}
cout<<endl;
}