gpt4 book ai didi

c++ chrono意外行为

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:37 26 4
gpt4 key购买 nike

std::chrono::system_clock::time_point start;
//1 second passes
std::cout << (std::chrono::high_resolution_clock::now()-start).count();

上面的代码,1 秒后,在 Visual Studio 2012 中给我 10000000但是在 gcc 4.8.2 上给了我 100000000 .

将最后一行更改为 std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::high_resolution_clock::now()-start).count();按预期工作,并在两个编译器上给我相同的结果。

这怎么可能?

最佳答案

根据 http://en.cppreference.com/w/cpp/chrono/high_resolution_clock

Class std::chrono::high_resolution_clock represents the clock with the smallest tick period provided by the implementation.

因此,GCC 对 VS 有不同的解决方案。

标准允许这样做,因为不同的系统对时间精度有不同的要求。

正如您已经发现的那样,存在将此类时钟转换为已知分辨率的方法。

关于c++ chrono意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22583358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com