我设法制作了double
个数组的数组,包含所有这些static
和const
:
# myclass.h
class myclass {
static constexpr double I_1[] = {... , ... , ... ...};
static constexpr double I_2[] = {... , ... , ... ...};
static constexpr double I_3[] = {... , ... , ... ...};
...
static constexpr const double* list[] = {I_1,I_2,I_3,...};
}
请注意,所有数组都可以有不同的大小。
现在,这种技术需要在cpp
文件中定义这些静态变量:
# myclass.cpp
constexpr const double* myclass::list[];
constexpr double myclass::I_1[], myclass::I_2[], myclass::I_3[],...
如果有许多数组,这个列表可能会很长。这对我来说似乎有点复杂。
有更好的方法吗?
奖金问题:有没有办法在不需要C ++ 11的情况下完成?
答案 0 :(得分:0)
这将提供我认为OP正在寻找的东西。
在某处的标题中,不需要C ++ 11
class ConfigDB
{
public:
static const std::vector<std::vector<double>> db;
};
分配ConfigDB :: db的cpp文件需要c ++ 11作为漂亮的初始化列表。
const std::vector<std::vector<double>> ConfigDB::db
{
{1,2,3,4},
{5,6,7}
};
非C ++ 11替代方案包括加载所有vector<double>
,然后将其加载到vector<vector<double>>
。与OP的阵列解决方案一样糟糕或更糟。