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

news/2024/11/8 1:34:03/

链接

std::chrono是C++11引入的日期时间处理库,其中包含3种时钟:

system_clock,steady_clock,high_resolution_clock。

定义于头文件 <chrono>

std::chrono 库

system_clock

steady_clock

链接

链接2

每一次调用time_point都是记录一次从1970年1月1日到现在的秒数

单位:秒;

精度:纳秒

    std::chrono::steady_clock::time_point tp1=std::chrono::steady_clock::now();std::cout<<"1970.1.1-----now:"<<tp1.time_since_epoch().count()<<std::endl;int i=100;while(i) i--;std::chrono::steady_clock::time_point tp2=std::chrono::steady_clock::now();std::chrono::duration<double> dur=tp2-tp1;std::cout<<"time duratino="<<dur.count()<<std::endl;

 

high_resolution_clock

std::chrono::time_point<>

类模板,记录的是三种时钟的一种返回的时间点。

第一种使用方法:

#include <iostream>#include <chrono>int main(){std::chrono::steady_clock::time_point t1 = std::chrono::system_clock::now();std::cout << "Hello World\n";std::chrono::steady_clock::time_point t2 = std::chrono:: system_clock::now();std::cout << (t2-t1).count()<<” tick count”<<endl;}

第二种使用方法:

#include <iostream>#include <chrono>int main(){std::chrono::time_point<std::chrono::steady_clock> t1 = std::chrono::system_clock::now();std::cout << "Hello World\n";std::chrono::time_point<std::chrono::steady_clock> t2 = std::chrono:: system_clock::now();std::cout << (t2-t1).count()<<” tick count”<<endl;}

std::chrono::duration<>

记录时钟的时间间隔,

#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";}
}

time_since_epoch().count()

显示时间点的时间

std::chrono::steady_clock::now(); // 纳秒
uint64_t ui64MicroSecondsTp = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::system_clock::now().time_since_epoch()).count(); // 微秒
uint64_t ui64MilliSecondsTp = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count(); // 毫秒

微秒,毫秒,纳秒

microseconds, milliseconds, nanoseconds


http://www.ppmy.cn/news/662245.html

相关文章

无人机遥感在农林信息提取中的实现方法与GIS融合制图教程

详情点击链接&#xff1a;无人机遥感在农林信息提取中的实现方法与GIS融合制图 遥感技术作为一种空间大数据手段&#xff0c;能够从多时、多维、多地等角度&#xff0c;获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势&#xff0c;是智慧农业必须采用的重…

小米游戏本linux黑屏,用了3年的小米笔记本屏幕出现黑屏,小汪花了28元自己动手修好...

用了3年的小米笔记本屏幕出现黑屏,小汪花了28元自己动手修好 2020-01-05 11:42:11 25点赞 23收藏 16评论 创作立场声明:本文系科技小汪原创图文,旨在和大家分享小米笔记本Air更换屏幕排线的过程,因为自己的小米笔记本排线坏了,网上找不到更换的教程,所以小汪干脆自己写一…

uniapp TypeError: Cannot set property 改成箭头函数

uni.chooseImage({count: 6, sizeType: [original, compressed], sourceType: [album], success: function (res) {this.a res} });上面代码在回调里面使用了this ,导致TypeError: Cannot set property。 作用域是window。window没有a这个变量。改成箭头函数 &#xff0c;因…

【日常记录】小米笔记本蓝屏拆机维修(错误信息:WHEA_UNCORRECTABLE_ERROR)

1、 问题描述 我的小米pro 15.6笔记本购于2019年8月&#xff0c;于2022年2月初开始出现问题&#xff0c;能够正常开机&#xff0c;开机后在几分钟内就开始蓝屏&#xff0c;错误信息是WHEA_UNCORRECTABLE_ERROR&#xff0c;错误日志无法转存&#xff0c;始终显示0%。 2、 原因…

认识GCC

GNU GNU是Linux系统下的一些工具包&#xff0c;GNU是GNU is Not Unix的缩写&#xff0c;因为当年Unix收费后&#xff0c;理查德马修斯托曼打算做一套GNU操作系统&#xff0c;当时GNU的工具包已经写好&#xff0c;就差内核即可组装成一个完整的操作系统&#xff0c;正好Linux写…

nvme ssd挂载

内置 f2进入biossystem configuration下将sata operation右侧设置为AHCIboost sequence中右侧boot list option改为UEFI后续进行磁盘挂载 #查看新添加的盘符 fdisk -l #格式化硬盘文件系统 mkfs -t ext4 /dev/nvme #挂载硬盘 mkdir /nvme mount /dev/nvme /nvme #查看UUID su…

Pythont打开 txt 格式的文件

一、Pythont如何打开 txt 格式的文件&#xff1f; 1.首先我使用pycharm创建一个项目&#xff0c;然后在这个项目里面再创建一个python的包&#xff0c;然后在里面创建一个demo1.txt的文件吗&#xff0c;里面写一些我看过的小说&#xff0c;然后使用python对这个txt文件进行内容…

[Python]生成 txt 文件

前段时间有位客户问: 你们的程序能不能给我们生成个 txt 文件,把新增的员工都放进来,字段也不需要太多,就要 员工姓名/卡号/员工编号/员工职位/公司 这些字段就行了,然后我们的程序会去读取这个 txt 文件,拿里面的内容,读完之后会这个文件删掉 我: 可以接受延迟吗?可能没办法实…