c++中数值运算的几个函数

编程入门 行业动态 更新时间:2024-10-11 03:24:07

c++中数值运算的<a href=https://www.elefans.com/category/jswz/34/1769605.html style=几个函数"/>

c++中数值运算的几个函数

以下几个函数都要包含头文件<numeric>
1 itoa函数
先看函数原型

template<class _FwdIt, class _Ty> inline
void iota(_FwdIt _First, _FwdIt _Last, _Ty _Val)

这个函数先把value赋值给*first, 再奖value++, 再把value赋值给下一个值,以此类推。

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input{ 1, 2, 3, 4, 5 };for (auto item : input) {cout << item << " ";}cout << endl;iota(input.begin(), input.end(), 3);for (auto item : input) {cout << item << " ";}cout << endl;cin.get();return 0;
}

结果为:

1 2 3 4 5
3 4 5 6 7

2 adjacent_difference函数

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input{ -1,4,6,8,10 };for (auto item : input) {cout << item << " ";}cout << endl;adjacent_difference(input.begin(), input.end(), input.begin());for (auto item : input) {cout << item << " ";}cout << endl;cin.get();return 0;
}

结果为:

-1 4 6 8 10
-1 5 2 2 2

也可以自己指定函数:

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input{ -1,4,6,8,10 };for (auto item : input) {cout << item << " ";}cout << endl;adjacent_difference(input.begin(), input.end(), input.begin(), [](int a, int b)->int {return 2 * b - 3 * a; });for (auto item : input) {cout << item << " ";}cout << endl;cin.get();return 0;
}

结果为:

-1 4 6 8 10
-1 -14 -10 -12 -14

3 partial_sum函数

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input{ -1,4,6,8,10 };for (auto item : input) {cout << item << " ";}cout << endl;partial_sum(input.begin(), input.end(), input.begin());for (auto item : input) {cout << item << " ";}cout << endl;cin.get();return 0;
}

结果为:

-1 4 6 8 10
-1 3 9 17 27

也可以指定运算:

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input{ -1,4,6,8,10 };for (auto item : input) {cout << item << " ";}cout << endl;partial_sum(input.begin(), input.end(), input.begin(), [](int a, int b)->int {return 2 * b - 3 * a; });for (auto item : input) {cout << item << " ";}cout << endl;cin.get();return 0;
}

结果为:

-1 4 6 8 10
-1 11 -21 79 -217

4 inner_product
这个求两个向量的卷积

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input1{ 1,2,3 };vector<int> input2{ -1, 0 ,2 };auto res = inner_product(input1.begin(), input1.end(), input2.begin(), 0);cout << res;cin.get();return 0;
}

结果为:

5

5 accumulate

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{vector<int> input{ 1,2,3 };auto res = accumulate(input.begin(), input.end(), 0);cout << res;cin.get();return 0;
}

结果为:

6

更多推荐

c++中数值运算的几个函数

本文发布于:2024-02-11 11:36:25,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1680771.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:几个   数值   函数

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!