用 <chrono> 测量程序执行时间
头文件 <chrono>
,命名空间 std::chrono
。
chrono 中提供了三种获取当前时钟的命名空间的成员函数:
chrono::system_clock::now()
,系统时间,可能回退,可用于现实世界中的时间测量。
chrono::steady_clock::now()
,稳定单调时间,不受系统时间的影响,可用于性能测试。
chrono::high_resolution_clock::now()
,高精度的稳定单调时间,可用于性能测试。
我们一般使用 chrono::steady_clock
测量程序执行时间。
它们返回一个时间点,我们可以用结束时间点减去开始时间点得到一个时间段。
其中时间段的类型是 chrono::duration<T>
,类型 T
自选。
将时间段转成秒数:
可以使用 chrono::duration
的成员函数 .count()
。
实现
#include<iostream>
#include<chrono>
#include<algorithm>
using namespace std;
const int N=1e6+5;
unsigned n,a[N];
int main(){
freopen("test.in","r",stdin);
freopen("test.out","w",stdout);
auto begin_time=chrono::steady_clock::now();
scanf("%u",&n);
for(unsigned i=1;i<=n;i++) scanf("%u",&a[i]);
sort(a+1,a+1+n);
unsigned ans=0;
for(unsigned i=1;i<=n;i++) ans^=a[i]*i;
printf("%u\n",ans);
auto end_time=chrono::steady_clock::now();
chrono::duration<double> diff=end_time-begin_time;
printf("\n%.8lf\n",diff.count());
}
测试输入
10
18 23 1 90 0 76 4 32 11 9
测试输出
248
0.00016080
说明程序用时 \(1.608\) 毫秒。
标签:include,chrono,clock,测量,程序执行,时间,now From: https://www.cnblogs.com/dccy/p/18570268