我正在尝试做一些我认为非常简单的事情,但我到处寻找,我无法弄明白。我也是C ++的新手,并且对模板等没有很好的理解。
我只需要一个函数来测量从程序启动到某个点的时间(以毫秒为单位),如:
class timeCounter {
private:
long startTime;
long currentTime;
long timeDifference;
public:
long getTime();
}
timeCounter::timeCounter () {
startTime = time.now();
}
long timeCounter::getTimePassed () {
currentTime = time.now();
timeDifference = timeNow - timeStart;
return timeDifference;
}
我曾尝试clock() / CLOCKS_PER_SECONDS
,但结果慢于一秒。
任何人都可以帮助我吗?
非常感谢!
答案 0 :(得分:2)
我最近编写了一个类似的系统来获取游戏引擎的增量时间。
使用std::chrono
库,这是一个例子:
#include <iostream>
#include <chrono>
#include <thread>
class timer
{
// alias our types for simplicity
using clock = std::chrono::system_clock;
using time_point_type = std::chrono::time_point < clock, std::chrono::milliseconds > ;
public:
// default constructor that stores the start time
timer()
{
start = std::chrono::time_point_cast<std::chrono::milliseconds>(clock::now());
}
// gets the time elapsed from construction.
long /*milliseconds*/ getTimePassed()
{
// get the new time
auto end = clock::now();
// return the difference of the times
return (end - start).count();
}
private:
time_point_type start;
};
int main()
{
timer t;
std::this_thread::sleep_for(std::chrono::seconds(5));
std::cout << t.getTimePassed();
std::cin.get();
}