编程第五十七天

c++ numeric头文件中数值算法

  1. #include <iostream>  
  2. #include <numeric>  //数值算法   
  3. #include <vector>  
  4. #include <functional>   
  5. #include <iterator>   
  6.   
  7. #include <math.h>   
  8.  using namespace std;  
  9.    
  10.  int main()  
  11.  {  
  12.     int ia[]={1,2,3,4,5};  
  13.     vector<int> iv(ia,ia+5);  
  14.       
  15.     cout<<accumulate(iv.begin(),iv.end(),0)<<endl; //累加  初值为0   
  16.     cout<<accumulate(iv.begin(),iv.end(),0,minus<int>())<<endl; //累加 符号位负  
  17.        
  18.     cout<<inner_product(iv.begin(),iv.end(),iv.begin(),10)<<endl;//两个数组内积  初值为10   
  19.     cout<<inner_product(iv.begin(),iv.end(),iv.begin(),10,minus<int>(),plus<int>())<<endl;//10-(1+1)-(2+2)  
  20.       
  21.     ostream_iterator<int> oite(cout," ");//迭代器绑定到cout上作为输出使用  
  22.     partial_sum(iv.begin(),iv.end(),oite);//依次输出前n个数的和   
  23.       
  24.     cout<<endl;   
  25.     partial_sum(iv.begin(),iv.end(),oite,minus<int>());//依次输出第一个数减去(除第一个数外到当前数的和)  
  26.       
  27.     cout<<endl;   
  28.     adjacent_difference(iv.begin(),iv.end(),oite); //输出相邻元素差值 前面-后面  
  29.       
  30.     cout<<endl;   
  31.     adjacent_difference(iv.begin(),iv.end(),oite,plus<int>()); //输出相邻元素差值 前面+后面  。前面更改影响后面元素   
  32.        
  33.        
  34.     cout<<endl;   
  35.     cout<<pow(10,3)<<endl; // 平方  
  36.       
  37.     /*  VC 不支持   只有安装了才SGI STL支持   
  38.     int n=3;  
  39.     iota(iv.begin(),iv.end(),n);//在指定区间填入n  n+1 n+2  
  40.     for(int i=0;i<iv.size();++i)  
  41.         cout<<iv[i]<<" ";   
  42.           
  43.         */   
  44.     return 0;  
  45.  }  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章