1

我在 linux gcc-4.3.2 和 windows visual studio express 2010 上执行了代码。Linux 的执行时间约为 54 秒,而在 windows 系统上约为 1207 秒。

为什么会这样?该代码使用 C++ stl 映射、集合和向量。在 ideone 上执行相同的代码需要 9 秒。

http://ideone.com/MxGogf

stl 实现是否不同?

为了测量时间,我使用了以下内容:

int main(){
clock_t tStart = clock();
.
.
printf("\n%.4f\n",float(clock()-tStart)/CLOCKS_PER_SEC);
return 0;
}

我知道这种测量时间的方法不准确,但是 54 和 1207 相距太远。

4

1 回答 1

2

可能是因为您正在比较调试版本。不要那样做。

如果您想知道您的代码有多快,请使用优化对其进行编译

MSVC++ 在调试版本中做了很多额外的断言和调试检查。

于 2013-04-19T13:48:09.683 回答