我的代码中有非常大的哈希表,它们用于计算。现在这两个表是一个包含 5,000,000 个 float 类型的数组。可能会有更多桌子,尺寸更大。
当我将它们包含在代码中时,Clion 开始变慢很多,语法突出显示停止工作。但它们存储在一个单独的文件中,并像这样包含#include“table1.h”。
此刻的我是这样的:
namespace ns{
class Calc{
public:
Calc() {}
static float table1[5000000];
static float table2[5000000];
private:
};
}
我知道公开它们不是一个好主意,但现在为了方便我这样做了,然后我会将它们移至私有。 并且表本身在文件 table1.h 和 table2.h 中单独声明,如下所示:
#include "Calc.h"
float ns::Calc::table1[5000000] = {.../*here initialization*/...};
我有几个问题:
如何正确地将它们包含到代码中,以便 Clion 不会分析它们,并且这些文件在编译之前不会以任何方式进行分析。也许它们应该从类中取出并设为全局变量?无论如何,它们都是静态的。
如果其中一些表是 const,如何对 const 数组执行相同操作。
重要。提供建议,考虑到我是初学者,请尽量使信息尽可能容易理解。但我将非常感谢任何帮助,并且会理解任何答案。我将对有关处理大量数据的任何信息感兴趣。
根本不要将它们放在头文件中,只需将数组的声明放在其中即可。将实际内容保存在编译一次的常规目标文件 (
.cpp
) 中。这应该会让您的 IDE(尤其是您的编译器)更加满意。
因此,不要将定义放在可能包含在各处的头文件中,而是使用像
table1.cpp
这样的文件,其内容完全相同,但不会包含在任何地方:
#include "Calc.h"
float ns::Calc::table1[5000000] = {.../*here initialization*/...};