gpt4 book ai didi

c++ - 指向参数较少的函数

转载 作者:行者123 更新时间:2023-11-27 22:56:47 25 4
gpt4 key购买 nike

我有一个包含多个参数的基函数 (myfunc)。我想在主函数中选择一些参数,然后调用将使用其中的 myfunc 的例程 (some_routine)。

基本上我想要的东西

myfunc(1.,2.,x) turns to f(x)

有什么办法吗?

遵循示例代码

#include<iostream>
using namespace std;

//The function
double myfunc(double tau, double chi, double phi){
double value;
//complicated process using tau, chi and x to find value.
value = tau+chi+phi;//just to work
return value;
}

//The Routine
typedef double (*function_pointer)(double);
double some_routine(function_pointer f){
// process, like finding a minimum, using some generic funcion like f(x)
double value;
double x=10;
value = f(x)*f(x);//just to work

return value;
}

//The problem
int main(){
for(double i=0.;i<10;i+=.5){
cout << some_routine(myfunc,i,i+.1) << endl;
}
//I would like to call like that. Declaring that in "some_routine" f(x):=myfunc(1,0,x)
return 0;
}

我发现了一个类似的问题 in fortran ,但它是另一种语言......在in c++上也有类似的语言,在那个问题中,选择的参数只是一个“选择器”。

最佳答案

你需要使用std::bind。详情在这里http://en.cppreference.com/w/cpp/utility/functional/bind

所以

auto f = std::bind(myfunc, args here)

然后使用std::function作为方法的数据类型

关于c++ - 指向参数较少的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32034549/

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