![](/img/trans.png)
[英]How can I measure CPU time and wall clock time on both Linux/Windows?
[英]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.