#include<chrono>

2023-05-16

#include <chrono> 是C++标准库中用于处理时间和持续时间的头文件。chrono库提供了一系列用于表示时间点、时间段和时钟的类和函数。以下是chrono库中一些常用接口和用法:

  1. 持续时间(Durations)

std::chrono::duration 是用于表示时间间隔的类模板。你可以用不同的时间单位来表示持续时间,例如秒(std::chrono::seconds)、毫秒(std::chrono::milliseconds)、微秒(std::chrono::microseconds)和纳秒(std::chrono::nanoseconds)等。

常用用法:

  • 创建持续时间:std::chrono::seconds sec(5);auto sec = std::chrono::seconds(5);
  • 获取持续时间的数值:int64_t count = sec.count();
  1. 时间点(Time Points)

std::chrono::time_point 是用于表示时间点的类模板。通常,时间点是相对于某个时钟(Clock)的。chrono库提供了以下三种时钟:

  • std::chrono::system_clock:系统时钟,它表示真实世界中的时间。
  • std::chrono::steady_clock:稳定时钟,它保证从程序开始运行到结束,时间只会向前,不会发生调整。
  • std::chrono::high_resolution_clock:高分辨率时钟,它提供了最高精度的计时。

常用用法:

  • 获取当前时间点:auto now = std::chrono::system_clock::now();
  • 时间点转换为时间戳:std::time_t timestamp = std::chrono::system_clock::to_time_t(now);
  1. 计算持续时间

你可以对持续时间执行加法、减法和乘法等操作。例如:

auto duration1 = std::chrono::seconds(5);
auto duration2 = std::chrono::milliseconds(500);
auto sum = duration1 + duration2;
  1. 测量代码执行时间

chrono库常用于测量代码段的执行时间。以下是一个示例:

#include <iostream>
#include <chrono>
#include <thread>

int main() {
    // 记录开始时间点
    auto start = std::chrono::high_resolution_clock::now();

    // 要测量的代码段
    std::this_thread::sleep_for(std::chrono::seconds(1));

    // 记录结束时间点
    auto end = std::chrono::high_resolution_clock::now();

    // 计算持续时间
    auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();

    // 输出结果
    std::cout << "Elapsed time: " << duration << " milliseconds" << std::endl;

    return 0;
}

在这个示例中,我们使用std::chrono::high_resolution_clock来测量代码执行时间,并将结果转换为毫秒。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

#include<chrono> 的相关文章

随机推荐

  • RT-Thread学习笔记(13):软件定时器

    目录 硬件定时器和软件定时器软件定时器的运作机制定时器超时函数 硬件定时器和软件定时器 硬件定时器是芯片本身提供的定时功能 一般是由外部晶振提供给芯片输入时钟 xff0c 芯片向软件模块提供一组配置寄存器 xff0c 接受控制输入 xff0
  • NVIDIA JETSON XAVIER NX (二)设置M.2 Key M SSD为系统盘

    提醒 xff1a NVMe SSD硬盘仅作为系统盘 xff08 rootfs和用户区 xff09 xff0c 系统的启动引导依然是通过SD卡或EMMC xff0c 比如升级设备树dtb 还是在SD卡或EMMC中 步骤一 准备SSD 并格式化
  • Ubuntu替换清华源

    1 首先使用如下命令备份原来的源文件 sudo cp etc apt sources list etc apt sources list bak2 2 进入清华大学开源软件镜像站 xff0c 找到Ubuntu xff0c 点击help 3
  • Kubernetes安装部署

    Kubernetes安装部署 准备三台虚拟机 master node1 node2 系统CentOS7 9 内存4G 处理器2 硬盘50G 配置hosts解析 192 168 163 150 master 192 168 163 152 n
  • ubuntu上位机与单片机TCP通信的调试(供回忆)

    xff08 1 xff09 上位机TCP客户端通信连接失败 1 xff09 ping IP地址 2 xff09 telnet IP 端口号 https blog csdn net l370398095 article details 705
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|ORBVocabulary|1-17】

    ORBVocabulary的类是ORB SLAM2中用于描述词典的数据结构 在ORB SLAM2中 xff0c 描述词典用于将特征描述符与地图点进行关联和匹配 xff0c 从而实现快速和鲁棒的数据关联 在这个代码中 xff0c ORBVoc
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|ORBextractor|1-19】

    ORBextractor的类 xff0c 是ORB SLAM2系统中用于提取ORB特征的关键部分 在视觉SLAM xff08 Simultaneous Localization and Mapping xff09 系统中 xff0c 特征提
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|ORBmatcher|1-20】

    特征匹配是关键任务之一 xff0c 因为它们用于找到不同帧之间的特征匹配 xff0c 从而实现跟踪 地图构建和优化等任务 ORBmatcher类的主要功能如下 xff1a 在不同场景下进行特征点匹配 xff0c 例如初始化 跟踪 重定位 回
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|Optimizer|1-21】

    优化是关键任务之一 xff0c 因为它们用于提高位姿估计 地图点位置和地图一致性的精度 Optimizer类的主要功能如下 xff1a 在局部和全局范围内进行Bundle Adjustment xff08 BA xff09 优化 对当前帧进
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|PnPsolver|1-22】

    它实现了一种名为EPnP xff08 Efficient Perspective n Point xff09 的算法 xff0c 该算法能够从2D 3D点对之间的关系中估计相机的位姿 PnPsolver类的主要功能如下 xff1a 通过使用
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|Sim3Solver|1-23】

    Sim3Solver类负责估计两个关键帧之间的相似性变换 Sim 3 该类接受两个关键帧和它们之间的一组匹配的地图点作为输入 然后使用RANSAC方法迭代地优化Sim 3 变换 估计的变换包括旋转 平移和尺度信息 以下是这个头文件中使用的C
  • 驼峰命名法

    简介 xff1a 驼峰式命名法又叫骆驼式命名法 xff0c 是编程时的一种命名规则 xff0c 指混合使用大小写字母来构成变量和函数的名字 意义 xff1a 多人做项目时 xff0c 若命名格式统一 xff0c 可以方便不同成员之间的代码交
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|System|1-24】

    包含所需库和其他类的头文件 定义命名空间ORB SLAM2 定义System类 它是整个ORB SLAM2算法的核心组件 它将各个子模块 如追踪 局部建图 回环检测等 组合在一起 并提供了处理单目 双目和RGB D图像的方法 System类
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|Tracking|1-25】

    在C 43 43 语法方面 xff0c 这段代码包括以下部分 xff1a 头文件包含 xff08 include xff09 xff1a 使用 include指令引入必要的头文件 xff0c 这些头文件提供了各种所需的类和函数定义 命名空间
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|Tracking|1-25】

    在Tracking类中 有一些成员变量和成员函数 下面是它们的简要概述 成员变量 System mpSystem 指向System类对象的指针 用于访问和操作ORB SLAM2系统 FrameDrawer mpFrameDrawer 指向F
  • 【逐函数详细讲解ORB_SLAM2算法和C++代码|Viewer|1-26】

    Viewer类的主要目的是实现ORB SLAM2算法的可视化部分 帮助用户更好地理解算法的运行过程和结果 为此 Viewer类与其他类 如System FrameDrawer MapDrawer和Tracking 协同工作 根据摄像机的帧率
  • #include<iostream>

    include lt iostream gt 是C 43 43 程序中非常常见的一条预处理指令 xff0c 它包含了iostream库 iostream库提供了C 43 43 程序中用于处理标准输入 输出流的基本功能 这个库中定义了一些重要
  • #include<algorithm>

    include lt algorithm gt 是C 43 43 中一个常用的预处理指令 xff0c 它包含了algorithm库 这个库提供了大量用于操作序列 xff08 例如数组 向量 列表等容器 xff09 的通用算法 xff0c 这
  • #include<fstream>

    include lt fstream gt 是C 43 43 程序中常用的预处理指令 xff0c 它包含了fstream库 这个库提供了用于处理文件输入 输出的类 fstream库主要包括以下几个类 xff1a std ifstream x
  • #include<chrono>

    include lt chrono gt 是C 43 43 标准库中用于处理时间和持续时间的头文件 chrono库提供了一系列用于表示时间点 时间段和时钟的类和函数 以下是chrono库中一些常用接口和用法 xff1a 持续时间 xff08