【发布时间】:2013-12-12 16:44:06
【问题描述】:
所以我有一个相当大的文本文件,其中包含 2 列数字,我希望能够在我作为二维数组编写的程序中使用它。这是每次启动程序时都需要访问的数据,我觉得每次启动程序时都必须使用文件读取器读取数据太慢/效率低下。
所以我想知道是否有一种更简单/更有效的方式来访问数据,而无需以传统方式(ifstream 等)读取数据?我相信我曾经见过类似以下的事情:
float array[]{
#include "myfile.txt"
}
但我什至不确定这是否有效,而且我找不到任何相关信息。
【问题讨论】:
-
如果您的数据被格式化为创建合法的数组初始化,那么就可以这样做。当然,每次数据变化时都需要重新编译。您是否尝试过在启动时读取文件? “相当大”有多大?
-
如果myfile.txt不遵循c++语法,编译错误。
-
myfile.txt 需要什么样的语法?现在它只是 2 个垂直的数字列,用空格分隔列,但没有其他标点符号
-
@me.deeiip 使用这个技巧的人通常会构造他们的数据,以便它确实遵循 C++ 语法。生成错误代码是没有意义的。
-
如果您还没有尝试在运行时读取文件,我建议您尝试一下,如果只是为了了解它确实需要多长时间。你可能会感到惊讶。用那位伟大的圣人 Don Knuth 的话来说,“过早的优化是万恶之源。”
标签: c++ arrays file optimization multidimensional-array