双精度型静态const数组的静态const数组
static const array of static const arrays of doubles
我设法制作了一个double
s数组的数组,拥有所有这些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的情况下做到这一点?这将提供我相信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>>
中。