这是一个明确的问题:能否提供一个简单的示例,说明如何从main(或它自己的类)中调用chrono并在另一个类中使用它。或示例的链接。
下面是我摸索着尝试更详细地解释我的问题:
我整天都在努力,并一直保持在同一个地方。我正在编写一个程序,该程序应该在某些过程完成后输出经过的时间。我遇到的问题是这些过程发生在不同的类中,我无法使时钟正常工作。我一直回到主时钟上,但是我真的很难使所有东西都啮合在一起。因此,也许这是有关使用类的简单问题。但是有些事情我不了解,我也不知道那是什么。
下面是该计时器的4条线,我将它们恢复为原来的状态并将其放置在主要功能中。它以x.xxxxxx的格式打印时钟
auto clock_start = chrono::system_clock::now();
auto clock_now = chrono::system_clock::now();
float currentTime = float(chrono::duration_cast <chrono::microseconds> (clock_now - clock_start).count());
cout << "Elapsed Time: " << currentTime /1000000 << " S \n";
Run Code Online (Sandbox Code Playgroud)
最终,我有一个结构队列,它们在我处理后的循环中突然弹出。在每次循环迭代结束时打印时,它们需要时间戳记。我只是无法终生获得计时器来提供循环中经过的时间(甚至无法工作)。
这可能吗?我已经阅读了许多有关chrono的线程,而当我尝试在程序的多个类/函数中使用计时器时,某些事情只是没有点击。
编辑***
所以这是我当前在meta.h中的类:这些是Meta类中的私有成员
typedef std::chrono::system_clock timer;
timer::time_point currentTime;
timer::time_point startTime;
timer::time_point clock_wait;
timer::time_point clock_check;
timer::time_point elapsed_time; // this is my issue
Run Code Online (Sandbox Code Playgroud)
然后我从meta.cpp开始时间
void Meta::startTimer()
{
startTime = timer::now();
}
Run Code Online (Sandbox Code Playgroud)
这是缺少一些片段的循环,因此我们可以专注于计时器:
void Meta::displaySim()
{
//auto clock_start = chrono::system_clock::now(); THIS IS WHAT I WAS DOING
queue<sData>newFile;
while (!MetaQ.empty())
{ …Run Code Online (Sandbox Code Playgroud)