字符串向量的初始化向量的编译时间

时间:2014-06-30 17:01:21

标签: c++ vector

我正在尝试一个C ++程序,我已经将2D矢量初始化为字符串。但矢量很大。

vector< vector <string> InVector ={ {"Alpha1","Beta1","10.23","13.20"},
                                    {"Alpha2","Beta2","30.23","13.20"},
                                      ..
                                     .. 
                                   };

矢量InVector很大 - 在我的例子中它是1000x4。

编译程序时,编译需要花费太多时间;但是,如果没有固定的矢量初始化,它编译速度非常快。使用-O2或O3优化时间太长。

这是-ftime-report

的输出
  

TOTAL:79.02 0.67 80.53
  314571 kB

知道如何改善编译时间。

我应该将它初始化为数组然后将其转换为vector吗?或者这种方法有什么替代方案。

PS:如果我从文件中读取此向量,则没有问题。

1 个答案:

答案 0 :(得分:0)

我可以想到两个选项,可能还有其他选择:

  • 初始化一个静态数组,然后从中初始化该向量。
  • 继续使用向量初始化,但将其自身放在一个文件中,这样只有在执行完整项目构建或更改数据时才会重新编译。如果您经常更改数据,则不应将其硬编码到程序中,而应将其作为资源或数据文件提供。