你好,我对 std::chrono 有问题,我插入了包含。我尝试使用函数将时间重置为零 开始.
我的功能变成.cpp
void MyTimer::Start(){ std::chrono::duration::zero;}
my.hh 有一个单例和我的函数
public :
static MyTime& GetInstance;
private:
static MyTime t_getinstance;
MyTime& operator = 'const MyTime&){}
MyTime (const MyTime&){}
void Start();
我需要包含另一个库才能使用时间吗?如果我想重置我的时间,std:chrono:duration::zero是个好主意吗?因为我不太了解这个库。
std::chrono
不是计时器;不能将其设置为零。该函数zero()
仅返回值0。要获取经过的时间,请先获取当前时间,然后执行您需要执行的任何操作,然后再次获取当前时间。从结束时间中减去开始时间。这里有一个例子。
将时间重置回大爆炸? 不。
工作只是计算两个时间点之间的差异。简单的想法从now((开始。
#include <chrono>
// 'compressed' chrono access --------------vvvvvvv
typedef std::chrono::high_resolution_clock HRClk_t;
typedef HRClk_t::time_point Time_t;
typedef std::chrono::milliseconds MS_t;
typedef std::chrono::microseconds US_t;
typedef std::chrono::nanoseconds NS_t;
using namespace std::chrono_literals; // suffixes: 100ms, 2s, 30us
并用于持续时间测量,如下所示:
int main(int argc, char* argv[])
{
Time_t start_us = HRClk_t::now(); // time point 1
int retVal = 0;
{
T514_t test514;
retVal = test514.exec(); // do interesting stuff
}
auto duration_us =
std::chrono::duration_cast<US_t>(HRClk_t::now() - start_us);
// time points ------------------ -------2------- - ----1---
// after cast for duration extract------vvvvvvv
std::cout << " FINI " << duration_us.count() << " us" << std::endl;
return(static_cast<int>(errStr.size()));
}