簡體   English   中英

使用cin時如何使用clock()測量時間?

[英]How can i measure time with clock() when i use cin?

我需要使用clock()函數來測量程序的執行時間。 整個算法由一個字符的輸入組成。

我在這里找到了如何使用clock()測量時間: 如何在C ++中使用clock()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM