我正在尝试做一些我认为非常简单的事情,但是到处都是,我无法弄清楚。我还是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
,但结果慢于一秒钟。谁能帮我吗?
非常感谢你!
最佳答案
我最近正在编写一个类似的系统,以获取游戏引擎的增量时间。
使用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();
}