c++ - 当我使用 cin 时,如何使用 clock() 测量时间?

标签 c++

我需要使用 clock() 函数测量程序的执行时间。整个算法由一个字符的输入组成。

我在这里找到了如何使用 clock() 测量时间:How to use clock() in C++ .

#include <cstdio>
#include <ctime>

int main() {
    std::clock_t start;
    double duration;

    start = std::clock();

    std::cout << "Press a key followed by ENTER: ";
    char c;
    cin >> c;

    duration = ( std::clock() - start ) / (double) CLOCKS_PER_SEC;

    std::cout<<"printf: "<< duration <<'\n';
}

程序总是输出0,这是因为执行cin时,没有处理器计数?我该如何处理这个问题?

最佳答案

使用 std::chrono设施:

#include <chrono>

// ...

auto start = std::chrono::steady_clock::now();

std::cout << "Press a key followed by ENTER: ";
char c;
std::cin >> c;

std::chrono::nanoseconds elapsed_ns = std::chrono::steady_clock::now() - start;
std::cout << "This took " << elapsed_ns.count() << " nanoseconds.\n";

关于c++ - 当我使用 cin 时,如何使用 clock() 测量时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55322820/

相关文章:

c++ - C++ 应用程序中的 Outlook MAPI : Find contacts by name

c++ - "class not registered"是哪个类?

c++ - 无法创建新的 wchar_t *

c++ - std::string 未正确终止

c++ - Dijkstra 的复杂性是否正确?

c++ - 为什么,如果 c++ 标准说语法不正确,g++ 允许吗?

c++ - 在 Windows/Visual Studio 上用 C++ 在运行时编译函数的简单有效的方法是什么?

C++运行时错误?如何解决这个问题并检查?

c++ - 复制构造函数和转发构造函数之间的冲突

c++ - 为什么要使用虚函数?