我正在编写一个科学计算程序,我最感兴趣的(在正确性之后)是速度。最近我注意到我也需要可读的代码。:)
而不是写
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);
函数对象样式会和第一个例子一样快吗?我可以期望两者都有相同的内联吗?有没有更好的方法?(请注意,我只是在这里提出这个想法,这不是我的实际代码。)