方法1
头文件是time.h
C++中的计时函数是clock(),与其相关的数据类型是clock_t。
clock_t:保存时间的数据类型,为长整型数。
函数定义原型为: clock_t clock(void);
该函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数,在MSDN上称之为挂钟时间(wal-clock)。
#include <ctime>
using namespace std;
clock_t start = clock();
// do something...
clock_t end = clock();
cout << "花费了" << (double)(end - start) / CLOCKS_PER_SEC << "秒" << endl;
方法2
采用c++11标准,编译器需要支持c++11
#include <chrono>
using namespace std;
using namespace chrono;
auto start = system_clock::now();
// do something...
auto end = system_clock::now();
auto duration = duration_cast<microseconds>(end - start);
cout << "花费了"
<< double(duration.count()) * microseconds::period::num / microseconds::period::den
<< "秒" << endl;
此方法可以精确到微秒,输出样例:花费了0.123456秒
关键词 auto 是一个“自动类型”,可以理解成“万能类型”.
system_clock 是 C++11 提供的一个 clock。除此之外,还有两个clock:steady_clock 和 high_resolution_clock
now( ) 表示计时的那“一瞬间”
duration_cast< > 表示类型转换
microseconds 表示微秒。除此之外,还有五种时间单位:hours, minutes, seconds, milliseconds, nanoseconds
num 和 den分别表示分子(numerator)和分母(denominator)。在代码中,num等于1, den等于1,000,000
count( ) 用来返回时间
参考
1.CSDN: C++ 学习系列(一)测试程序运行时间—clock()
2.CSDN: C++11 新的计时方法——std::chrono 大法好
网友评论