【发布时间】:2019-04-05 04:16:30
【问题描述】:
我有一个很长的初始化列表,像这样。
std::vector<Inventory> inventory_list = {Inventory(0,30.0),
Inventory(1,30.0),
Inventory(2,30.0),
Inventory(3,30.0),
Inventory(4,30.0),
Inventory(5,30.0),
Inventory(29,30.0),
Inventory(30,30.0),}
.....
有大约 72000 行这样的初始化列表,它已经花费了半个多小时并且仍在编译。有没有办法让它更快?或者这是对如此大量数据的预期?
【问题讨论】:
-
可怜的编译器,要经过这72,000行,半小时没有休息……请结束它的痛苦。
-
为什么不用for循环从文件中加载这么大的初始化列表呢?另外,您使用的是哪个编译器?
-
你不能写一个简单的循环来填充数据结构吗?还是在运行时从文件中加载数据?
-
碰巧
inventory_list是一个全局变量,您在全局命名空间(而不是函数体)中初始化? -
这东西有什么用?为什么不能将其存储在更方便的文件中,例如二进制文件、CSV/JSON/YAML/XML 文件或 SQLite 之类的数据库中?
标签: c++ c++11 compiler-optimization