定义于头文件 <chrono>

std::chrono

chrono 库定义三种主要类型以及工具函数和常用 typedef 。

  • 时钟
  • 时长
  • 时间点

决不会调整的单调时钟

std::chrono::steady_clock
class steady_clock;          (C++11 起) 

std::chrono::steady_clock 表示单调时钟。此时钟的时间点无法减少,因为物理时间向前移动。此时钟与壁钟时间无关(例如,它能是上次重启开始的时间),且最适于度量间隔。

std::chrono::steady_clock 满足平凡时钟 (TrivialClock) 的要求。

成员类型

成员类型 定义
rep 表示时钟时长中计次数的算术类型
period 表示时钟计次周期的 std::ratio 类型,单位为秒
duration std::chrono::duration<rep, period>
time_point std::chrono::time_point<std::chrono::steady_clock>

成员常量

constexpr bool is_steady

[静态]

稳定时钟标志,始终为 true

返回表示当前时钟值的 time_point

std::chrono::steady_clock::now
static std::chrono::time_point<std::chrono::steady_clock>
now() noexcept;         (C++11 起) 

返回表示当前时间的时间点。

参数

(无)

返回值

表示当前时间的时间点。

调用示例

#include <iostream>
#include <vector>
#include <numeric>
#include <chrono>volatile int sink;
int main()
{for (auto size = 1ull; size < 1000000000ull; size *= 100){// 记录开始时间auto start = std::chrono::steady_clock::now();// 做一些工作std::vector<int> v(size, 100);sink = std::accumulate(v.begin(), v.end(), 0u); // 确保其副效应// 记录结束时间auto end = std::chrono::steady_clock::now();std::chrono::duration<double> diff = end - start;std::cout << std::fixed << "Time to fill and iterate a vector of "<< size << " ints : " << diff.count() << " s\n";}
}

输出

拥有可用的最短嘀嗒周期的时钟

std::chrono::high_resolution_clock
class high_resolution_clock;      (C++11 起) 

std::chrono::high_resolution_clock 表示实现提供的拥有最小计次周期的时钟。它可以是 std::chrono::system_clock 或 std::chrono::steady_clock 的别名,或第三个独立时钟。

std::chrono::high_resolution_clock 满足平凡时钟 (TrivialClock) 的要求。

成员类型

成员类型 定义
rep 表示时钟的时期中计次数的算术类型
period 表示时钟计次周期的 std::ratio 类型,单位为秒
duration std::chrono::duration<rep, period>
time_point std::chrono::time_point<std::chrono::high_resolution_clock>

成员常量

constexpr bool is_steady

[静态]

若时间间隔计次始终为常量,即纵使在外部时钟调整的情况下,调用 now() 的返回值亦单调递增,则为 true ,否则为 false

返回表示时钟当前值的 std::chrono::time_point

std::chrono::high_resolution_clock::now
static std::chrono::time_point<std::chrono::high_resolution_clock>
now() noexcept;    (C++11 起) 

返回表示当前时间的时间点。

参数

(无)

返回值

表示当前时间的时间点。

调用示例

#include <iostream>
#include <vector>
#include <numeric>
#include <chrono>volatile int sink;
int main()
{for (auto size = 1ull; size < 1000000000ull; size *= 100){// 记录开始时间auto start = std::chrono::high_resolution_clock::now();// 做一些工作std::vector<int> v(size, 42);sink = std::accumulate(v.begin(), v.end(), 0u); // 确保其副效应// 记录结束时间auto end = std::chrono::high_resolution_clock::now();std::chrono::duration<double> diff = end - start;std::cout << "Time to fill and iterate a vector of "<< size << " ints : " << diff.count() << " s\n";}
}

输出

c++11 日期和时间工具-(std::chrono::steady_clock)(std::chrono::high_resolution_clock)相关推荐

  1. c++11日期和时间工具-(std::chrono::system_clock)

    定义于头文件 <chrono> std::chrono 库 chrono 库定义三种主要类型以及工具函数和常用 typedef . 时钟 时长 时间点 来自系统范畴实时时钟的挂钟时间 st ...

  2. Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,

    Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 日期格式化 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在J ...

  3. c++11日期和时间库:chrono

    std::chrono 主要包含两部分,std::chrono::duration 和 std::chrono::time_point,它们都是类模板,std::chrono::duration 表示 ...

  4. C++日期和时间编程总结

    C++日期和时间编程总结.md C++11 的日期和时间编程内容在 C++ Primer(第五版)这本书并没有介绍,目前网上的文章又大多质量堪忧或者不成系统,故写下这篇文章用作自己的技术沉淀和技术分享 ...

  5. Python 处理日期与时间的全面总结

    Python的时间处理模块在日常的使用中用的较多多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的使用. 目录 时间相关概念 Python time模块 时间格式化 计时器功 ...

  6. Python 处理日期与时间的全面总结!

    作者丨钱魏Way 链接 https://www.biaodianfu.com/python-datetime.html Python的时间处理模块在日常的使用中用的较多多,但是使用的时候基本上都是要查 ...

  7. 【chrono】【chrono问题】【chrono的使用学习记录】【时间计时】

    [chrono][chrono问题][chrono的使用学习记录][时间计时] 0 前言 1 chrono的使用说明 1.1 头文件的使用 1.2 代码的使用 1.2.1 计时方法一 1.2.1 0 ...

  8. C++11中的时间库std::chrono(引发关于时间的思考)

    文章目录 前言 chrono 的概况 chrono 的核心内容 duration clock system_clock steady_clock time point 关于时间的思考 时间函数思考 总 ...

  9. 弄清std::chrono::system_clock::time_point,自定义时间工具类

    time_t 是32位的整数,用来存放格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,不能表示毫秒,约能表示135年 time ...

  10. C++11 - std::chrono - 使用std::chrono::duration_cast进行时间转换

    1 小时转换为分钟/秒/毫秒/微秒 #include <iostream> #include <string> #include <chrono>int main( ...

最新文章

  1. 《C语言及程序设计》实践项目——结构体应用
  2. Python自动化运维之函数进阶
  3. AS3 中强制类型转换方法
  4. 硬件:LCD和LED相关知识介绍
  5. 关于内存的划分和传引用传参数的区别
  6. oracle堆,oracle被一堆insert和update堵死解决方案
  7. Java操作——获取文件扩展名,去掉文件扩展名
  8. AutoMapper搬运工之自定义类型转换
  9. 程序员职业自由6个阶段,你处于哪个?
  10. 软件工程复习笔记 UML
  11. 尾递归优化原理与Python实现(以Fibonacci数列和小明爬楼梯问题为例)
  12. mysql搜索_查询mysql的搜索引擎
  13. dojo/dom-class源码学习
  14. 基于java的房地产客户管理系统
  15. macd是什么意思?散户股民如何使用MACD应对证券牛市市场
  16. 交换机组播风暴_「广播风暴」CISCO交换机如何防止广播风暴 - seo实验室
  17. vue中使用DataV做大屏展示
  18. 千锋深圳Java培训分享:MySQL详细知识点
  19. 国家也补贴?有华为认证证书的你,就能拿它(附详细操作)
  20. 爬虫 | Python爬取20000+猫眼影评实战

热门文章

  1. LED跑马灯-位操作
  2. 太平洋服务器cpu型号,Intel正式发布:新一代6W的超低功耗平台CPU
  3. SQLiteDatabaseLockedException: database is locked
  4. APP登录界面UI设计欣赏
  5. App登录功能(用户名+密码)
  6. 火箭08-09赛程列表
  7. CPU中控制器的功能
  8. 解决PageHelper.startPage(page, size)后total和PageSize总是相等的问题
  9. C语言求解一元二次方程代码
  10. “风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑