用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;
}
但是我看到这需要(或者我理解错了??)我们需要将chrono
从to_time
转换为C的计时方式,所以不会失去使用chrono
的意义吗?] >
我在搜索时发现的常见示例都是经过的时间,但是我想知道只是记录时间,因为我不太熟悉C ++ 11
什么是在C ++中记录时间的最适当方法(不是经过时间而是时间),我现在正在尝试类似#include
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>
阅读此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;
}