我正在编写一个科学计算程序,我最感兴趣的(在正确性之后)是速度。最近我注意到我也需要可读代码。 :)
代替写作
for (int k=0;k!=10;k+=1)
array[k] = fun(a, k);
我正在考虑写作
class fun_t {
private:
type a;
public:
fun_t(type in) : a(in) {};
type operator() (int k) {
...computation...
}
};
...
fun_t fun(a);
for (int k=0;k!=10;k+=1)
array[k] = fun(k);
函数对象样式会和第一个例子一样快吗?我可以期待两者有相同的内联吗?有更好的方法吗? (请注意,我只是在这里提出想法,这不是我的实际代码。)
最佳答案
我想繁重的计算是在您的函数内部执行的。相比之下,直接函数调用和成员函数调用的区别应该是微不足道的。
关于c++ - C++ 中的快速函数对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13067432/