我要打印的随机数组的测量时间总是显示为0秒

时间:2018-06-11 15:10:04

标签: c++ time clock time.h

我在这里的第一篇文章。只是想知道为什么我的秒表总是显示0秒或0毫秒,无论我的数组中的随机数量多少。我非常感谢你的帮助。 这是我的代码:

#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;

double clock_start()
{
    clock_t start = clock();
    return start;
}

void random_number()
{
    int array[10000];
    srand(6);
    cout << "10k Random numbers: ";
    for (int i = 0; i < 10000; i++)
    {
        array[i] = rand() % 99 + 1;
        cout << array[i] << "\n";
    }
}

int main()
{
    setlocale(LC_ALL, "");
    //-------------------------//

    random_number();
    clock_t elapsed = (clock() - clock_start()) / (CLOCKS_PER_SEC / 1000);
    cout << "Stopwatch: " << elapsed << "ms" << " or " << elapsed * 1000 << "s" << endl;

    //-------------------------//
    system("pause > nul");
    return 0;
}

2 个答案:

答案 0 :(得分:1)

(clock() - clock_start())将在眨眼之间进行评估。

所有clock_start()都返回clock()。 (事实上​​,一个好的优化编译器会将clock_start()替换为clock()!)

差异几乎肯定是零。你想要像

这样的东西吗?
clock_t start = clock();
random_number();
clock_t elapsed = (clock() - start) / (CLOCKS_PER_SEC / 1000);

代替?

答案 1 :(得分:0)

感谢帮帮!我很惊讶这个社区在回复时的速度有多快。 所以我删除了clock_start()函数。我添加了:

clock_t start = clock();

到我的主要功能。