先熟悉 C++ 下的一个函数:clock()
函数,可以获得当前时刻的时间。
搭配常量 CLOCKS_PER_SEC
使用,可以测出程序运行时间,便于卡时。
测试两种 memset
操作和 for
循环赋值所用时间的代码如下:
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e8+5;
int a[maxn];
int main()
{
int s1=clock();
memset(a,0x3f3f3f,sizeof a);
cout<<"memset:"<<(double)(clock()-s1)/CLOCKS_PER_SEC<<endl;
int s2=clock();
for(int i=1;i<=maxn-1;++i) a[i]=0x3f3f3f;
cout<<"for:"<<(double)(clock()-s2)/CLOCKS_PER_SEC;
return 0;
}
测试结果:
memset
: 0.135 s 0.135\text{s} 0.135sfor
: 0.206 s 0.206\text{s} 0.206s
根据实际需要灵活选择两种赋值操作。
处理器:11th Gen Intel® Core™ i5-1135G7 @ 2.40GHz 2.42 GHz
系统类型:64 位操作系统, 基于 x64 的处理器