编写程序需要实际的时间来执行c++

Making program take actual time to execute C++

本文关键字:时间 执行 c++ 程序      更新时间:2023-10-16

我试图模拟一个真实的生活场景,使用c++需要实际的时间;我使用for循环将时间分成五分钟的增量。

我想知道是否有任何方法可以告诉程序每秒只执行一次for循环?这样,程序就变成了"可观看的"。

获取当前时间并添加频率,执行您的动作并等待直到计算出时间。一样。

#include <thread>
#include <chrono>
//...
while(whatever_condition()) {
    auto next=std::chrono::system_clock::now() 
             +std::chrono::seconds(1);
    do_whatever();
    std::this_thread::sleep_until(next);
}
http://en.cppreference.com/w/cpp/thread/sleep_until

注意,使用普通的"sleep"answers" ussleep "函数是不标准的,并且不会考虑操作所花费的时间。

编辑:这是一个c++11的解决方案,但是如果没有c++11的boost, c++ 98和c++ 03也提供了这个功能。我认为这仍然比使用sleep

更可取。

使用sleep可以让程序等待。我不知道这是不是你想要的。所以要等一秒钟,输入:

睡眠(1000)

以一致的速率运行有多重要?sleep()是一种可能的方法,但sleep在提供精确的时间片方面非常糟糕。当然,游戏总是需要这样做,所以游戏程序员已经探索了各种方法,你可以在这里找到关于如何执行游戏循环的讨论。核心理论是定期检查计时器并根据每秒所需的帧数进行更新。