gpt4 book ai didi

c++ - 有没有办法用带有多个参数的函数调用 std::transform

转载 作者:可可西里 更新时间:2023-11-01 18:04:10 25 4
gpt4 key购买 nike

你好,我有一个函数,签名是

std::string f(double x, double param1, double param2, double param3);

我想在参数 x 的 std::vector xvalues 上调用它,使用类似 std::transform 的东西来调用 param1、param2 和 param3 的特定值。

这相当于:

double param1(1.);
double param2(1.1);
double param3(1.2);
std::vector<std::string> results();
for (std::vector<double>::const_iterator it = xvalues.begin() ; it != xvalues.end() ; ++xvalues)
{
results.push_back(f(*it, param1, param2, param3);
}

如何以更优雅的方式做到这一点?

亲切的问候托尼

最佳答案

你应该看看boost::bind顾名思义,这将允许您将参数“绑定(bind)”到您的函数 f :

 std::transform([...], boost::bind(&f, _1, param1, param2, param3));

此绑定(bind)的结果是一个一元函数(_1 是它应该调用的参数的占位符):所有其他参数将具有固定值 param1 , param2, param3.

关于c++ - 有没有办法用带有多个参数的函数调用 std::transform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4183462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com