用C ++记录时间的方法

问题描述 投票:0回答:2

用C ++记录时间最合适的方法是什么(not经过时间,但是有时间)

我现在正在尝试类似的东西

#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>

    int main ()
    {

      using namespace std::chrono;
      high_resolution_clock::time_point t1= high_resolution_clock::now();

      time_t tt=system_clock::to_time_t(t1);
      std::cout<<"Right now it is: " << ctime(&tt)<<std::endl;

    }

但是我看到这需要(或者我理解错了??)我们需要将chronoto_time转换为C的计时方式,所以不会失去使用chrono的意义吗?] >

我在搜索时发现的常见示例都是经过的时间,但是我想知道只是记录时间,因为我不太熟悉C ++ 11

什么是在C ++中记录时间的最适当方法(不是经过时间而是时间),我现在正在尝试类似#include #include #include #include <...>]

c++ time chrono
2个回答
0
投票

auto t1 = system_clock::now();是解决方法>

时间点是

template<
    class Clock,
    class Duration = typename Clock::duration
> class time_point;

并且system_clock::to_time_t想要time_point<system_clock>类型,但是您提供完全不同的类型time_point<high_resolution_clock>


0
投票

阅读此link下的注释

注意

high_resolution_clock不能在不同的标准库实现中一致地实现,应避免使用它。它通常只是std :: chrono :: steady_clock或std :: chrono :: system_clock的别名,但这取决于库或配置。当它是system_clock时,它不是单调的(例如,时间可以倒退)。例如,对于gcc的libstdc ++,它是system_clock,对于MSVC,它是stable_clock,对于clang的libc ++,它取决于配置。

通常,应该直接使用std :: chrono :: steady_clock或std :: chrono :: system_clock而不是std :: chrono :: high_resolution_clock:使用stable_clock进行持续时间测量,使用system_clock进行挂钟时间。

int main()
{
    using namespace std::chrono;
    auto nowTime = std::chrono::system_clock::now();
    auto tt = system_clock::to_time_t(nowTime);
    std::cout << "Right now it is: " << ctime(&tt) << std::endl;
}
© www.soinside.com 2019 - 2024. All rights reserved.