我想对使用const缓存对缓存中的某些静态函数的性能进行基准测试。所以我有类似的东西:
class Foo {
static double cost(int factor) { <moderately complex function> };
// Other stuff using the cost() function
};
我想针对像这样的替代版本进行基准测试:
class Foo {
private:
static double _cost(int factor) { <same function as before> };
static const double cost_cache[MAX_FACTOR] = ???;
public:
static double cost(int factor) { return cost_cache[factor]; };
// Other stuff
}
用一种方法以相当于
的方式初始化我的cost_cache数组for (int idx = 0; i < MAX_FACTOR; ++i)
cost_cache[idx] = _cost(idx);
在高级功能语言中,我会使用map原语。如何在C ++ 11(或C ++ 14?)中正确初始化它?我看到其他帖子解决类似的问题,如Initializing private member static const array,但其解决方案在我的情况下不适用,我无法提出来源中的10k值逐字。
我正在使用clang++
答案 0 :(得分:0)
首先用“{}”初始化数组怎么样, 然后通过从文件加载值的方法覆盖元素?