自动生成的 cpp 文件中未知大小的多维数组的标头声明
Header declaration for multi-dimensional array of unknown size in auto-generated cpp file?
作为我正在从事的项目的一部分,我有一个用python编写的工具,它可以读取CSV数据文件并生成一个包含静态声明的三维数组的c ++文件。数组的维度取决于 CSV 文件中的数据,并且可以从编译到编译而变化。
声明/定义如下所示:
const double aero_coeffs[81][25][8] = { ...
我已经编写了一个标题来伴随生成的 cpp 文件,我真的不希望也生成它。但是,如果我尝试这样做,我会收到错误:
extern const double*** aero_coeffs;
或者这个(我认为实际上只是等效的):
extern const double aero_coeffs[][][];
关于解决这个问题的最佳方法有什么想法吗?
你也许可以使用std::vector。使用新的 c++11 初始器列表语法,生成的文件可以非常相似。像这样:
std::vector< std::vector< std::vector< double > > > coeffs = {
{ {1, 2, 3}, {4, 5, 6} },
{ {7, 8, 9}, {0, 0, 0} } };
然后,在标题中,您只需使用:
extern std::vector< std::vector< std::vector< double > > > coeffs;
相关文章:
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 为什么从函数返回数组时需要将数组声明为静态数组.(C++)
- 在 c++ 中直接访问的内联数组声明
- 由于 2D 数组声明,C++ 14 中的运行时错误
- 如何将char数组声明为函数参数?或告诉我此代码中还有其他问题?
- 来自函数参数的 C++ 静态数组声明
- C++ 中的动态数组声明
- C++数组声明
- 数组声明中的错误:表达式必须具有常量值
- 程序随数组声明崩溃
- 运行时和编译时的数组声明
- C++数组声明和初始化
- 带有常量表达式的数组声明
- C ,数组声明,模板,链接器错误
- 如何用'n'维数组声明 std::vector?
- 数组声明上的编译器错误
- 这是什么数组声明
- 头文件类中的数组声明
- 节点数组声明
- 在静态数组声明中使用了两次C++常量