【发布时间】:2018-06-11 15:10:04
【问题描述】:
我在这里的第一篇文章。只是想知道为什么无论我的数组中有多少随机数,我的秒表总是显示 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;
}
【问题讨论】:
-
您在同一个表达式中调用
clock()和clock_start()。它们将几乎同时执行。clock_start()只返回clock()。clock() - clock()肯定会非常小... -
clock()将返回与clock_start相同的值(或者至少非常接近),因为它们是一个接一个地被调用的。 -
在 c++ 中,未指定操作数计算顺序。您的示例可以测量负时间跨度。