Asa*_*aaj 4 c++ time loops modifier while-loop
我对C++比较陌生,所以我没有丰富的经验.我学习了Python,我正在尝试使用C++编写的Python代码的改进版本.但是,我希望它能够实时工作,所以我需要设置While循环的速度.我确信有答案,但我找不到.我想要一个类似的代码:
rate(timeModifier * (1/dt))
Run Code Online (Sandbox Code Playgroud)
这是我在Python中使用的代码.我可以设置变量dt以使计算更精确,timeModifier可以设置速度的两倍或三倍(1将其设置为实时).这意味着程序将以每秒1次/秒的速度循环.我知道我可以在标题中包含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
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,不鼓励忙等待,因为它们会占用CPU.如果您不需要执行任何操作,请使用sleep命令(Windows)或usleep(Linux).有关使用C++创建计时器的更多信息,请参阅此链接.