我想要运行程序的确切时间,我在clock()
使用它。但是有一个问题是我无法给出像{2000}这样的小n
的确切时间。
我想让它返回n = 1000的正确答案。
#include <iostream>
#include <ctime>
#include <algorithm>
using namespace std;
#define show_time(x, y) cout << endl << #x << " : " << y << endl;
int main()
{
int n;
cin >> n;
int *a = new int[n];
for(int i=0; i<n; i++)
a[i] = i;
random_shuffle(a, a+n);
int last = clock();
//STL_sort:
sort(a, a+n);
int lastP = clock();
show_time(STL_sort, (double)(lastP-last)/CLOCKS_PER_SEC);
return 0;
}
输出为0.(肯定0不是答案)
答案 0 :(得分:4)
你在运行什么平台?如果您使用的是Windows,则可以尝试使用the high-resolution time library。
如果您有权访问C ++ 11,则会有一个名为chrono
的标头similar functionality,并且是可移植的(ish)!