我是 C++ 的新手,所以我没有太多经验。我已经学习了 Python,并且我正在尝试对我用 C++ 编写的 Python 代码进行改进。但是,我希望它实时工作,所以我需要设置 While 循环的速度。我确定有答案,但我找不到。我想要一个类似的代码:
rate(timeModifier * (1/dt))
这是我在 Python 中使用的代码。我可以设置一个变量 dt 来使计算更精确,并设置 timeModifier 来将速度提高一倍或三倍(1 将其设置为实时)。这意味着程序每秒将执行循环 1/dt 次。我知道我可以在 header 中包含 time.h,但我想我对 C++ 还太陌生,无法理解如何将其转换为我的需要。
最佳答案
您可以编写自己的计时器类:
#include <ctime>
class Timer {
private:
unsigned long startTime;
public:
void start() {
startTime = clock();
}
unsigned long elapsedTime() {
return ((unsigned long) clock() - startTime) / CLOCKS_PER_SEC;
}
bool isTimeout(unsigned long seconds) {
return seconds >= elapsedTime();
}
};
int main()
{
unsigned long dt = 10; //in seconds
Timer t;
t.start();
while(true)
{
if(t.elapsedTime() < dt)
{
//do something to pass time as a busy-wait or sleep
}
else
{
//do something else
t = Timer(); //reset the timer
}
}
}
请注意,不鼓励使用忙等待,因为它们会占用 CPU。如果您不需要做任何事情,请使用 sleep
命令(Windows) 或 usleep
(Linux)。有关在 C++ 中制作计时器的更多信息,请参阅 this link .
关于C++ 设置每秒 While 循环的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10653611/