C++ 标准库 <chrono>
C++ 标准库
C++11 引入了
基本概念
时间点(Time Points)
时间点表示一个特定的时间点,通常与某个特定的时钟相关联。
持续时间(Durations)
持续时间表示两个时间点之间的时间间隔。
时钟(Clocks)
时钟是时间点和持续时间的来源。C++ 提供了几种不同的时钟,例如系统时钟、高分辨率时钟等。
基本语法
包含头文件
在使用
#include
使用时间点
auto now = std::chrono::system_clock::now();
使用持续时间
auto duration = std::chrono::seconds(5);
计算时间点
auto future_time = now + duration;
实例
测量函数执行时间
下面是一个使用
实例
#include
#include
void someFunction() {
// 模拟一些操作
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main() {
auto start = std::chrono::high_resolution_clock::now();
someFunction();
auto end = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_caststd::chrono::milliseconds(end - start);
std::cout << “Function took “ << duration.count() << “ milliseconds to execute.” << std::endl;
return 0;
}
输出结果:
Function took 1000 milliseconds to execute.
处理日期和时间
实例
#include
#include
#include
int main() {
auto now = std::chrono::system_clock::now();
std::time_t now_c = std::chrono::system_clock::to_time_t(now);
std::cout << “Current date and time: “ << std::ctime(&now_c);
return 0;
}
输出结果:
Current date and time: Fri Mar 11 12:34:56 2022
高级用法
使用不同的时钟
C++ 提供了多种时钟,例如:
std::chrono::system_clock:系统时钟,通常与系统时间同步。
std::chrono::steady_clock:单调时钟,不会受到系统时间变化的影响。
std::chrono::high_resolution_clock:提供最高分辨率的时钟。
格式化日期和时间
可以使用
实例
#include
#include
#include
#include
int main() {
auto now = std::chrono::system_clock::now();
std::time_t now_c = std::chrono::system_clock::to_time_t(now);
std::cout << std::put_time(std::localtime(&now_c), “%Y-%m-%d %H:%M:%S”);
return 0;
}
输出结果:
2022-03-11 12:34:56