gpt4 book ai didi

c++ - 从另一个函数 f0(x,y) 定义函数 f1(x) 对象,但将 y 设置为固定值 c++

转载 作者:行者123 更新时间:2023-11-30 05:41:29 27 4
gpt4 key购买 nike

假设我有一个函数

  void f0(double x, double parameters[]) { ... }

我想定义一个函数对象

  std::function <void (double x) >f1 

例如,f1(x) = f0(x,a) 其中 a 是一组指定的参数(例如 double parameters[ 4] = {1.0, 2.9, 6.2, 2.1})

我该怎么做?我的想法是尝试拥有一个输入 a 输出 f1 的函数,但我不确定该怎么做。

这样做的动机是,本质上,我在库中还有另一个函数 FUNC,它输入一个具有单个双输入的函数,但我希望更灵活地向该函数添加参数

最佳答案

使用 lambda 非常简单:

std::function<void(double)> f1 =
[&parameters](double x) { f0(x, parameters); };

或者,您可以使用 std::bind

using namespace std::placeholders;
std::function<void(double)> f2 = std::bind(f0, _1, parameters);

但几乎在任何情况下我都更喜欢 lambda。

关于c++ - 从另一个函数 f0(x,y) 定义函数 f1(x) 对象,但将 y 设置为固定值 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31128605/

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