C++ 通过固定一个输入参数生成新函数
我想写一个函数C++ 通过固定一个输入参数生成新函数,c++,c++11,gcc,C++,C++11,Gcc,我想写一个函数double add\u 100(double x),我已经写了double add\u两个数字(double a,double b)注意:这里变量x是局部变量,因此我需要在main()函数中实现它。我发现std::bind可能有帮助,但无法获得如何实现它。我认为另一种可能是Lambda表达式,但我同样无法理解如何实现它。您可能需要Lambda或std::function,或std::bind double add_100(double x) { return add_two
double add\u 100(double x)
,我已经写了double add\u两个数字(double a,double b)
注意:这里变量x
是局部变量,因此我需要在main()函数中实现它。我发现std::bind
可能有帮助,但无法获得如何实现它。我认为另一种可能是Lambda表达式
,但我同样无法理解如何实现它。您可能需要Lambda或std::function
,或std::bind
double add_100(double x)
{
return add_two_numbers(x, 100);
}
auto l_add_100 = [](double x) { return add_two_numbers(x, 100); };
std::function<double(double)> f_add_100 = [](double x) { return add_two_numbers(x, 100); }
auto b_add_100 = std::bind(add_two_numbers, std::place_holder::_1, 100);
auto l_add_100=[](双x){返回两个数字(x,100);};
函数f_add_100=[](双x){返回add_两个数字(x,100);}
auto b_add_100=std::bind(添加两个编号,std::place_holder::_1100);
或者使用非硬编码的数字
double y = //...
auto l_add_y = [y](double x) { return add_two_numbers(x, y); }
std::function<double(double)> f_add_y = [](double x) { return add_two_numbers(x, y); }
auto b_add_100 = std::bind(add_two_numbers, std::place_holder::_1, y);
double y=/。。。
自动l_加法y=[y](双x){返回加法两个数字(x,y);}
函数f_add_y=[](双x){返回add_两个数字(x,y);}
自动b_add_100=std::bind(添加两个编号,std::place_holder::_1,y);
确切的问题是,我想让一个函数双f(双x),它将在点“x”处计算任何函数的值。但是现在,当我为多项式做这样的函数时,我有一个额外的参数向量系数。用于存储系数。现在用这个怎么做。因为为了计算f(x),我需要将向量系数发送给它。@user3496912你的意思是?@user确切的问题可以在上面阅读,与你在评论中写的完全不同。与其半心半意地写问题,希望我们能读懂你的心思,不如多花点时间问你想让我们回答的问题。请下次再努力一点。@DavidHeffernan我是这个社区的新手。对不起,对这个问题的描述是错误的。我现在已经编辑了这个问题,下次会努力改进。你的编辑很难改进。请更加努力。如果100是指在运行时知道的某个数字,那么您就不能实现这样的功能。但是,yoy可以生成一个std::函数
。