【问题标题】:How can i measure time with clock() when i use cin?使用 cin 时如何使用 clock() 测量时间?
【发布时间】:2019-03-24 10:27:03
【问题描述】:

我需要使用 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时,没有处理器计数?我该如何处理这个问题?

【问题讨论】:

标签: c++


【解决方案1】:

为此使用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";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-10
    • 1970-01-01
    • 2011-02-27
    • 2021-06-23
    • 1970-01-01
    相关资源
    最近更新 更多