运行程序的确切时间是什么时候?

时间:2013-10-31 13:52:20

标签: c++ sorting stl ctime

我想要运行程序的确切时间,我在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不是答案)

1 个答案:

答案 0 :(得分:4)

你在运行什么平台?如果您使用的是Windows,则可以尝试使用the high-resolution time library

如果您有权访问C ++ 11,则会有一个名为chrono的标头similar functionality,并且是可移植的(ish)!