編程第五十七天

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.  }  

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