C++标准库中的 <chrono> 头文件提供了一套用于处理时间的工具,包括时钟、时间点和持续时间等。下面是 <chrono> 库的一些主要组件及其使用示例:
#include <chrono>#include <iostream>int main() { // 获取当前系统时钟时间点 auto now = std::chrono::system_clock::now(); // 将时间点转换为时间戳 auto timestamp = std::chrono::system_clock::to_time_t(now); // 打印时间戳 std::cout << "Timestamp: " << timestamp << std::endl; return 0;}
#include <chrono>#include <iostream>int main() { // 使用系统时钟获取当前时间点 auto now = std::chrono::system_clock::now(); // 使用 steady_clock 获取时间点 auto start = std::chrono::steady_clock::now(); // 一些操作... // 使用 steady_clock 获取结束时间点 auto end = std::chrono::steady_clock::now(); // 计算持续时间 auto duration = end - start; // 打印持续时间 std::cout << "Duration: " << std::chrono::duration_cast<std::chrono::milliseconds>(duration).count() << " milliseconds" << std::endl; return 0;}
#include <chrono>#include <iostream>int main() { // 创建一个持续时间为1秒的时间段 auto duration = std::chrono::seconds(1); // 打印持续时间的秒数 std::cout << "Duration in seconds: " << duration.count() << std::endl; return 0;}
#include <chrono>#include <iostream>int main() { // 获取高精度时钟的当前时间点 auto high_res_now = std::chrono::high_resolution_clock::now(); // 打印高精度时钟的当前时间点 std::cout << "High resolution clock time: " << high_res_now.time_since_epoch().count() << std::endl; return 0;}
#include <chrono>#include <iostream>int main() { // 创建一个持续时间为1小时的时间段 auto duration_hours = std::chrono::hours(1); // 将持续时间从小时转换为分钟 auto duration_minutes = std::chrono::duration_cast<std::chrono::minutes>(duration_hours); // 打印转换后的持续时间 std::cout << "Duration in minutes: " << duration_minutes.count() << std::endl; return 0;}
#include <chrono>#include <iostream>#include <ctime>int main() { // 获取当前系统时钟时间点 auto now = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now()); // 使用 strftime 将时间点格式化为字符串 std::string time_str(30, '/0'); std::strftime(&time_str[0], time_str.size(), "%Y-%m-%d %H:%M:%S", std::localtime(&now)); // 打印格式化后的时间字符串 std::cout << "Formatted time: " << time_str << std::endl; return 0;}
#include <chrono>#include <iostream>int main() { // 查询系统时钟是否稳定 std::cout << "System clock is steady: " << std::chrono::is_steady<std::chrono::system_clock>::value << std::endl; // 查询高精度时钟是否为时钟类型 std::cout << "High resolution clock is a clock type: " << std::chrono::is_clock<std::chrono::high_resolution_clock>::value << std::endl; return 0;}
#include <chrono>#include <iostream>int main() { // 获取系统时钟的当前时间点 auto sys_now = std::chrono::system_clock::now(); // 将系统时钟的时间点转换为高精度时钟的时间点 auto high_res_now = std::chrono::time_point_cast<std::chrono::high_resolution_clock::duration>(sys_now); // 打印高精度时钟的时间点 std::cout << "High resolution clock time: " << high_res_now.time_since_epoch().count() << std::endl; return 0;}
#include <chrono>#include <iostream>// 自定义时钟类型struct MyClock { using duration = std::chrono::nanoseconds; // 持续时间类型 using rep = duration::rep; // 表示时间的基本类型 using period = duration::period; // 时间单位 using time_point = std::chrono::time_point<MyClock>; // 时间点类型 static constexpr bool is_steady = false; // 是否稳定 static time_point now() noexcept { return time_point(std::chrono::duration_cast<duration>(std::chrono::steady_clock::now().time_since_epoch())); }};int main() { // 获取自定义时钟的当前时间点 auto my_clock_now = MyClock::now(); // 打印自定义时钟的时间点 std::cout << "Custom clock time: " << my_clock_now.time_since_epoch().count() << std::endl; return 0;}
本文链接:http://www.28at.com/showinfo-26-80873-0.htmlC++中时间相关函数用法详解
声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com