我有:
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
将绑定(bind) 2
到 divides
的第一个参数,然后是 transform
将提供 ved3
的每个元素至divides
作为第二个论点。所以结果将是 divides(2, ved3[0])
, divides(2, ved3[1])
等等。
如果要计算divides(ved3[...], 2)
相反,请使用 bind2nd(divides<double>(), 2)
.这样,2
将绑定(bind)到第二个参数,将第一个参数留给 transform
.
关于c++ - 如何使用divides和for_each?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59446437/