Date and time utilities
日期和时间效用
C++包括对两种时间操作的支持:
- 大
chrono
库,它是一个灵活的类型集合,可以跟踪不同精度的时间(%28等)。std::chrono::time_point
29%。
- C样式的日期和时间库%28例如。
std::time
%29
chrono图书馆
大chrono
库定义了三种主要类型%28持续时间、时钟和时间点%29以及实用程序函数和常见类型。
持续时间
持续时间由一段时间组成,定义为某一时间单位的若干个刻度。例如,“42秒”可以由一个1秒单位的42个刻度组成的持续时间表示。
在标头中定义<chrono>
*。
在命名空间std::timeo中定义
持续时间%28C++11%29 a时间间隔%28类模板%29
钟
时钟由起点%28或纪元%29和滴答率组成。例如,一个时钟可能有一个1970年1月1日的时代,并且每秒钟都会滴答作响。C++定义了三种时钟类型:
在标头中定义<chrono>
*。
在命名空间std::timeo中定义
系统[医]时钟%28C++11%29来自系统范围内的实时时钟%28class%29
稳住[医]永远不会调整的时钟%28C++11%29
高[医]分辨力[医]时钟%28C++11%29具有最短的刻度周期的时钟%28C++11%29
时间点
时间点是指自特定时钟时代以来过去的时间。
在标头中定义<chrono>
*。
在命名空间std::timeo中定义
时间[医]时间点%28C++11%29 a点%28类模板%29
C风格的日期和时间库
还提供了C样式的日期和时间函数,如std::time_t
,,,std::difftime
CLOCKS_PER_SEC
...
例
此示例显示有关函数调用的执行时间的信息:
二次
#include <iostream>
#include <chrono>
#include <ctime>
long fibonacci(unsigned n)
{
if (n < 2) return n;
return fibonacci(n-1) + fibonacci(n-2
}
int main()
{
std::chrono::time_point<std::chrono::system_clock> start, end;
start = std::chrono::system_clock::now(
std::cout << "f(42) = " << fibonacci(42) << '\n';
end = std::chrono::system_clock::now(
std::chrono::duration<double> elapsed_seconds = end-start;
std::time_t end_time = std::chrono::system_clock::to_time_t(end
std::cout << "finished computation at " << std::ctime(&end_time)
<< "elapsed time: " << elapsed_seconds.count() << "s\n";
}
二次
可能的产出:
二次
f(42) = 267914296
finished computation at Mon Jul 29 08:41:09 2013
elapsed time: 0.670427s
二次
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。