我正在做一个项目来证明 std::cin
比 scanf
接受输入慢,而 scanf
又比通过使用 getchar/getchar_unlocked()
等自写函数。
我想记录并打印每种情况下的执行时间,但我不知道如何应用时间和计时等头文件。
我将从 stdin 读取大量输入值,并希望在每种情况下显示执行时间。
请用一个简短的例子告诉我如何处理时间。
最佳答案
怎么样
auto start = std::chrono::high_resolution_clock::now();
some_long_running_operation();
auto end = std::chrono::high_resolution_clock::now();
std::cout << "Operation took " <<
std::chrono::duration_cast<std::chrono::microseconds>(end - start).count() <<
" microseconds\n";
(或多或少逐字记录 from this reference 及其子页面。更具体地说,来自 std::chrono::time_point
引用的第二个示例,只是更改了使用的时钟。)
这段代码的作用是从高分辨率时钟中获取当前时间作为开始时间,进行要计时的操作,然后获取结束时间。然后以微秒为单位显示差异。
关于c++ - C++中执行时间显示 : cin/scanf/getchar_unlocked(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22089091/