C++ 中的计时器
Posted 砂糖橘子君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 中的计时器相关的知识,希望对你有一定的参考价值。
在Java中,有时候会要测试程序的性能,所以会采用System.currentTimeMillis()等类库函数去测试时间开销。
在C++中同样可以完成此功能。
头文件:
#include<ctime>
示例程序:
1 #include<iostream> 2 #include<ctime> 3 using namespace std; 4 const int N =10000000; 5 int main(){ 6 clock_t now = clock(); 7 for(int i = 0 ; i< N ; ++i){ 8 ; 9 } 10 cout<<clock() - now<<endl; 11 return 0; 12 }
这段程序输出了循环N次计算机需要的时间。
clock_t 类型是ctime的内置类型,因为在有的机器上clock()函数返回的有可能是long,也有可能是unsigned long,所以采用了一个新类型clock_t来实现这个类型的自动变换。
clock()函数返回的是一个系统时间,一般可以把它想象成毫秒。
而在ctime头文件中还有一个预定义宏,他就是CLOCKS_PER_SEC,这个宏就表示了“毫秒”和秒之间的倍数关系:
1、CLOCKS_PER_SEC / clock() == 秒
2、秒 * CLOCKS_PER_SEC == 毫秒
根据这个,我们可以实现另一个程序,就是通过while循环,让程序延时一段时间。
示例代码:
1 #include<cstdio> 2 #include<iostream> 3 #include<ctime> 4 using namespace std; 5 6 7 int main(){ 8 int delay; 9 cout<<"输入要延时的时间(秒):"<<flush; 10 cin>>delay; 11 delay *= CLOCKS_PER_SEC; 12 clock_t now = clock(); 13 while(clock() - now < delay) 14 ; 15 cout<<"延时完毕"<<endl; 16 return 0; 17 }
这样一个简单的程序就完成了一个很有意思的任务。。。
以上是关于C++ 中的计时器的主要内容,如果未能解决你的问题,请参考以下文章