c++11 日期和时间工具-(std::chrono::steady_clock)(std::chrono::high_resolution_clock)
定义于头文件 <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)相关推荐
- c++11日期和时间工具-(std::chrono::system_clock)
定义于头文件 <chrono> std::chrono 库 chrono 库定义三种主要类型以及工具函数和常用 typedef . 时钟 时长 时间点 来自系统范畴实时时钟的挂钟时间 st ...
- Java8 ,LocalDate,LocalDateTime处理日期和时间工具类,
Java8 ,LocalDate,LocalDateTime处理日期和时间工具类 日期格式化 1.获取今天的日期 2.在Java 8 中获取年.月.日信息 3.在Java 8 中处理特定日期 4.在J ...
- c++11日期和时间库:chrono
std::chrono 主要包含两部分,std::chrono::duration 和 std::chrono::time_point,它们都是类模板,std::chrono::duration 表示 ...
- C++日期和时间编程总结
C++日期和时间编程总结.md C++11 的日期和时间编程内容在 C++ Primer(第五版)这本书并没有介绍,目前网上的文章又大多质量堪忧或者不成系统,故写下这篇文章用作自己的技术沉淀和技术分享 ...
- Python 处理日期与时间的全面总结
Python的时间处理模块在日常的使用中用的较多多,但是使用的时候基本上都是要查资料,还是有些麻烦的,梳理下,便于以后方便的使用. 目录 时间相关概念 Python time模块 时间格式化 计时器功 ...
- Python 处理日期与时间的全面总结!
作者丨钱魏Way 链接 https://www.biaodianfu.com/python-datetime.html Python的时间处理模块在日常的使用中用的较多多,但是使用的时候基本上都是要查 ...
- 【chrono】【chrono问题】【chrono的使用学习记录】【时间计时】
[chrono][chrono问题][chrono的使用学习记录][时间计时] 0 前言 1 chrono的使用说明 1.1 头文件的使用 1.2 代码的使用 1.2.1 计时方法一 1.2.1 0 ...
- C++11中的时间库std::chrono(引发关于时间的思考)
文章目录 前言 chrono 的概况 chrono 的核心内容 duration clock system_clock steady_clock time point 关于时间的思考 时间函数思考 总 ...
- 弄清std::chrono::system_clock::time_point,自定义时间工具类
time_t 是32位的整数,用来存放格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数,不能表示毫秒,约能表示135年 time ...
- C++11 - std::chrono - 使用std::chrono::duration_cast进行时间转换
1 小时转换为分钟/秒/毫秒/微秒 #include <iostream> #include <string> #include <chrono>int main( ...
最新文章
- 《C语言及程序设计》实践项目——结构体应用
- Python自动化运维之函数进阶
- AS3 中强制类型转换方法
- 硬件:LCD和LED相关知识介绍
- 关于内存的划分和传引用传参数的区别
- oracle堆,oracle被一堆insert和update堵死解决方案
- Java操作——获取文件扩展名,去掉文件扩展名
- AutoMapper搬运工之自定义类型转换
- 程序员职业自由6个阶段,你处于哪个?
- 软件工程复习笔记 UML
- 尾递归优化原理与Python实现(以Fibonacci数列和小明爬楼梯问题为例)
- mysql搜索_查询mysql的搜索引擎
- dojo/dom-class源码学习
- 基于java的房地产客户管理系统
- macd是什么意思?散户股民如何使用MACD应对证券牛市市场
- 交换机组播风暴_「广播风暴」CISCO交换机如何防止广播风暴 - seo实验室
- vue中使用DataV做大屏展示
- 千锋深圳Java培训分享:MySQL详细知识点
- 国家也补贴?有华为认证证书的你,就能拿它(附详细操作)
- 爬虫 | Python爬取20000+猫眼影评实战
热门文章
- LED跑马灯-位操作
- 太平洋服务器cpu型号,Intel正式发布:新一代6W的超低功耗平台CPU
- SQLiteDatabaseLockedException: database is locked
- APP登录界面UI设计欣赏
- App登录功能(用户名+密码)
- 火箭08-09赛程列表
- CPU中控制器的功能
- 解决PageHelper.startPage(page, size)后total和PageSize总是相等的问题
- C语言求解一元二次方程代码
- “风味人间”与计算机程序设计艺术《禅与计算机程序设计艺术》 / 陈光剑