gpt4 book ai didi

performance - 类的 operator() 或将函数绑定(bind)为仿函数?

转载 作者:行者123 更新时间:2023-12-04 02:48:56 27 4
gpt4 key购买 nike

有两种方法可以创建仿函数(一个保存状态的函数):

  1. 绑定(bind)一个函数并定义一个状态:bind(f, _1, state)

    双 g(双 x,双状态){ 返回x+状态;}function f = bind(g,_1,state);

  2. 使用 () 运算符和一个类:

struct f { 
double state;
f(double state_):state(state_) {}
double operator()(double x) {return x+state;}
};

我发现 bind-method 写起来更快,但我想知道是否有一些隐藏的石头,因为在文献中的大部分时间我都将仿函数视为类的 () 运算符。

最佳答案

3.方式是lambda表达式:

auto f = [state]( double x ) { return x * state; };

关于performance - 类的 operator() 或将函数绑定(bind)为仿函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18169838/

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