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