花费很长时间来编译我的C ++代码

时间:2019-04-05 04:16:30

标签: c++ c++11 compiler-optimization

我的初始化列表很长,像这样。

std::vector<std::int64_t>

大约有72000行这样的初始化程序列表,它已经用了半个多小时并且仍在编译中。有没有办法使它更快?还是对如此大量的数据有这种期望?

2 个答案:

答案 0 :(得分:0)

将此作为解决方法:

struct InitData
{
    int i;
    double v;
};

InitData init[] = { {1,30.0}, {2,30.0}, {3,30.0}, {4,30.0}, {5,30.0}, ...};

std::vector<Inventory> inventory_list;
size_t count = sizeof(init) / sizeof(init[0]);
for (size_t i = 0; i < count; i++)
{
     inventory_list.push_back(Inventory(init[i].i, init[i].v);
}

答案 1 :(得分:0)

另一种实施方式,

Inventory I[] = { {1,30.0},{2,30.0},{3,30.0},{4,30.0 },{5,30.0},{29,30.0 },{30,30.0}};

std::vector<Inventory> inventory_list (I,I+(sizeof(I)/sizeof(Inventory)));