gpt4 book ai didi

c++ - 你如何从一个更大的函数创建一个更小的函数?

转载 作者:行者123 更新时间:2023-11-30 01:23:07 25 4
gpt4 key购买 nike

假设我有一个函数 int func(int x, int y, int z) 并且我需要在另一个函数中调用它 10 次,即 int runge(int, . .. , int func(int a, int b))。我知道我可以创建 10 个函数,即

 int runge1(int a, int b) {return func(1, a, b);}

但是,我想要一种更简单的方法来执行此操作。基本上我想创建一个函数指针:

for(int i=0; i<10; i++)
{
//func would have two variables input into it, variable1, variable2
int (*func)=func(i, variable1, variable2);
}

最佳答案

您正在寻找 std::bind :

std::function<int(int,int)> f = std::bind(&func, i, std::placeholders::_1, std::placeholders::_2);

这会将 i 绑定(bind)到 func 的第一个参数,并保留其余参数未绑定(bind)。然后你可以像这样调用 f:

f(1, 2);

如果您愿意,可以将所有新绑定(bind)的函数推送到 std::vector 中:

using namespace std::placeholders;
std::vector<std::function<int(int,int)>> funcs;
for (int i = 0; i < 10; i++) {
funcs.push_back(std::bind(&func, i, _1, _2));
}

如果你没有 C++11,有一个 boost::bind对方。

关于c++ - 你如何从一个更大的函数创建一个更小的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15363346/

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