std::chrono 时间库
掌握现代 C++ 时间点、时长与时钟的用法。 · 难度:入门 · +15XP
std::chrono 时间库
chrono 库提供 duration(时长)、time_point(时间点)和 clock(时钟)三类核心组件。常用时钟有 system_clock(系统实时时钟)、steady_clock(单调时钟,适合测量间隔)、high_resolution_clock(最高精度时钟)。支持字面量 std::chrono::seconds(5) 或 C++14 的 5s,可方便地进行加减、比较和转换。
#include <iostream>
#include <chrono>
#include <thread>
using namespace std::chrono_literals;
int main() {
auto start = std::chrono::steady_clock::now();
std::this_thread::sleep_for(200ms); // 休眠 200 毫秒
auto end = std::chrono::steady_clock::now();
auto elapsed = end - start;
std::cout << "耗时: " << elapsed.count() << " 纳秒
";
std::cout << "耗时: "
<< std::chrono::duration_cast<std::chrono::milliseconds>(elapsed).count()
<< " 毫秒
";
// 获取当前系统时间(秒级时间戳)
auto now = std::chrono::system_clock::now();
auto epoch = now.time_since_epoch();
std::cout << "秒数: " << epoch.count() / 1'000'000'000 << '
';
return 0;
}