在ACM的一个示例中,我需要建立一个用于动态规划的大表格。我必须在每个单元格中存储两个整数,所以我决定使用std::pair<int, int>
。然而,分配一个巨大的数组需要1.5秒钟:
std::pair<int, int> table[1001][1001];
后来,我将这段代码更改为
struct Cell {
int first;
int second;
}
Cell table[1001][1001];
内存分配只花费了0秒钟。
这个时间差别如此之大的原因是什么?
Cell
添加一个无参构造函数,性能会如何? - outis-O0
选项需要0.007秒,使用-O3
选项需要2e-07秒。通过gcc(8.1),使用-O0
选项需要0.005秒,使用-O3
选项需要0秒。随着时间的推移,这个问题是否变得无效? - Eli4ph