c++ - 如何使用divides和for_each?
问题描述
我有:
vector<double> ved1 = { 1,2,3,4,5,6,7,8,9,10 };
vector<double> ved2 = { 11,12,13,14,15,16,17,18,19,20 };
vector<double> ved3(10);
我想要 ved3=ved3/2 但我不能正确得到它,结果是 2/ved3; 如何使用分频器?
transform(ved1.begin(), ved1.end(), ved2.begin(), ved3.begin(), plus<double>());
transform(ved3.begin(), ved3.end(), ved3.begin(), bind1st(divides<double>(),2));`
我想要 cos(ved2),但我无法得到它。我的代码有什么问题?
double cos_1(double x) { return cos(x); }
for_each(ved2.begin(), ved2.end(), cos_1);
解决方案
bind1st
将绑定2
到 的第一个参数divides
,然后将提供to的transform
每个元素作为第二个参数。所以结果将是,依此类推。ved3
divides
divides(2, ved3[0])
divides(2, ved3[1])
如果您想改为计算divides(ved3[...], 2)
,请使用bind2nd(divides<double>(), 2)
. 这样,2
将绑定到第二个参数,而将第一个参数留空transform
。
推荐阅读
- typescript - 在库内调用“Interval.after”时,Luxon 返回 Invalid Interval
- wordpress - 在 Wordpress 主菜单中启用、添加和编辑导航链接
- fortran - Fortran中加速度计算子程序模块中的浮点协处理器故障
- python - 如何在 Python 3 中加入三个没有“None”的数组
- python - 如何将画布传递给另一个 Python 类?
- java - 与 OR Crotch 一起使用时,Solr 查询不起作用
- c - 函数适用于 arm-gcc 但不适用于 Keil
- java - Java 线程名称是如何选择的?
- python - Numpy dot product of a 4D array with its transpose fails
- c# - C# MouseClick Event Doesn't Fire On Middle Click or Right Click