#include <iostream>
#include <chrono>
int main() {
// 记录开始时间
auto start = std::chrono::steady_clock::now();
// 执行一些操作,这里只是简单地等待一段时间
std::this_thread::sleep_for(std::chrono::seconds(1));
// 记录结束时间
auto end = std::chrono::steady_clock::now();
// 计算持续时间
auto duration = end - start;
// 将持续时间转换为秒(注意:这里使用了 std::chrono::duration_cast 来进行类型转换)
auto seconds = std::chrono::duration_cast<std::chrono::seconds>(duration).count();
// 输出结果
std::cout << "Operation took " << seconds << " seconds." << std::endl;
return 0;
}
std::chrono::steady_clock::now()
是 C++ 标准库中 <chrono>
头文件提供的一个函数,用于获取当前时间点,这个时间点是相对于 steady_clock
的纪元(epoch)的。steady_clock
是一种时钟,它保证提供的是单调递增的时间点,意味着它不会受到系统时间调整(如手动更改系统时间或夏令时变更)的影响。这使得 steady_clock
特别适合用于测量时间间隔和性能基准测试。
std::chrono::steady_clock::now()
返回一个 std::chrono::time_point<std::chrono::steady_clock>
类型的值,该值表示调用函数时的当前时间点。这个时间点是一个相对于 steady_clock
纪元的具体时间点,但具体的纪元值(即时间点的起始值)是未指定的,因为它依赖于实现。因此,你通常不会直接对 time_point
的值进行算术操作或比较,而是使用 <chrono>
库中提供的函数和运算符来处理时间点和时间间隔。