C++记录程序运行时间(跨平台)

要使用标准C++实现计时功能,可以使用C++ 11中的<chrono>头文件或者使用C风格的<ctime>头文件。

<chrono>头文件是C++ 11中的日期、时间库,不依赖于任何特定操作系统,可用于跨平台程序的计时功能。示例如下:

#include <iostream>
#include <chrono>

int main() {
    auto start_time = std::chrono::steady_clock::now();

    // Do something
    std::cout << "Hello, World!" << std::endl;

    auto end_time = std::chrono::steady_clock::now();
    std::chrono::duration<float> elapsed_seconds = end_time - start_time;
    std::cout << elapsed_seconds.count() << std::endl;
    return 0;
}

duration的第一个模板参数是存储的类型,第二个参数(默认为1)表示该其单位与秒之间的比例关系。std::chrono::duration<float>表示以float类型存储的秒数。当转换不损失精度时,不同的duration可以直接转换;但如果转换损失精度(如整数存储类型涉及除法时),需要使用duration_cast()进行转换。