c++ numeric頭文件中數值算法
- #include <iostream>
- #include <numeric> //數值算法
- #include <vector>
- #include <functional>
- #include <iterator>
- #include <math.h>
- using namespace std;
- int main()
- {
- int ia[]={1,2,3,4,5};
- vector<int> iv(ia,ia+5);
- cout<<accumulate(iv.begin(),iv.end(),0)<<endl; //累加 初值爲0
- cout<<accumulate(iv.begin(),iv.end(),0,minus<int>())<<endl; //累加 符號位負
- cout<<inner_product(iv.begin(),iv.end(),iv.begin(),10)<<endl;//兩個數組內積 初值爲10
- cout<<inner_product(iv.begin(),iv.end(),iv.begin(),10,minus<int>(),plus<int>())<<endl;//10-(1+1)-(2+2)
- ostream_iterator<int> oite(cout," ");//迭代器綁定到cout上作爲輸出使用
- partial_sum(iv.begin(),iv.end(),oite);//依次輸出前n個數的和
- cout<<endl;
- partial_sum(iv.begin(),iv.end(),oite,minus<int>());//依次輸出第一個數減去(除第一個數外到當前數的和)
- cout<<endl;
- adjacent_difference(iv.begin(),iv.end(),oite); //輸出相鄰元素差值 前面-後面
- cout<<endl;
- adjacent_difference(iv.begin(),iv.end(),oite,plus<int>()); //輸出相鄰元素差值 前面+後面 。前面更改影響後面元素
- cout<<endl;
- cout<<pow(10,3)<<endl; // 平方
- /* VC 不支持 只有安裝了才SGI STL支持
- int n=3;
- iota(iv.begin(),iv.end(),n);//在指定區間填入n n+1 n+2
- for(int i=0;i<iv.size();++i)
- cout<<iv[i]<<" ";
- */
- return 0;
- }