AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

C++中時間相關函數用法詳解

來源: 責編: 時間:2024-04-02 17:22:20 186觀看
導讀C++標準庫中的 <chrono> 頭文件提供了一套用于處理時間的工具,包括時鐘、時間點和持續時間等。下面是 <chrono> 庫的一些主要組件及其使用示例:時鐘(Clocks):時鐘是一種用于度量時間的設備,C++標準庫提供了幾種不同的時鐘類

C++標準庫中的 <chrono> 頭文件提供了一套用于處理時間的工具,包括時鐘、時間點和持續時間等。下面是 <chrono> 庫的一些主要組件及其使用示例:DNq28資訊網——每日最新資訊28at.com

  • 時鐘(Clocks):時鐘是一種用于度量時間的設備,C++標準庫提供了幾種不同的時鐘類型,包括系統時鐘、高精度時鐘和穩定時鐘。示例:
#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;}
  • 時間點(Time points):時間點是時鐘的特定實例化,代表特定時鐘上的一個瞬時點。示例:
#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;}
  • 持續時間(Durations):持續時間表示兩個時間點之間的時間段。示例:
#include <chrono>#include <iostream>int main() {    // 創建一個持續時間為1秒的時間段    auto duration = std::chrono::seconds(1);    // 打印持續時間的秒數    std::cout << "Duration in seconds: " << duration.count() << std::endl;    return 0;}
  • 時鐘精度(Clock precision):每種時鐘可能具有不同的精度,可以使用std::chrono::high_resolution_clock來獲取高精度時鐘。示例:
#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;}
  • 時間單位轉換(Time unit conversion):可以使用std::chrono::duration_cast函數將持續時間從一個時間單位轉換為另一個時間單位。示例:
#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;}
  • 日期和時間格式化(Date and time formatting):C++ 標準庫不提供直接的日期和時間格式化功能,但可以與其他庫(如strftime)結合使用來實現格式化。示例:
#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;}
  1. 時鐘類型的特性(Clock traits):每種時鐘類型都有一些特性,如是否穩定、是否單調遞增等。可以使用std::chrono::is_steady和std::chrono::is_clock等類型特性查詢特定時鐘類型的屬性。示例:
#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;}
  • 時鐘轉換(Clock conversion):可以使用std::chrono::time_point_cast函數將時間點從一個時鐘類型轉換為另一個時鐘類型。示例:
#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;}
  • 自定義時鐘(Custom clocks):可以根據需要自定義時鐘類型,并提供時鐘類型的必要特性和實現。示例:
#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;}

DNq28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-80873-0.htmlC++中時間相關函數用法詳解

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: SpringBoot動態權限校驗:從零到一實現高效、優雅的解決方案

下一篇: Next.js項目部署,跨端適配,圖表渲染優化復盤

標簽:
  • 熱門焦點
Top