嗨所以我正在尝试做一个总计20个连续数字的程序并计算它所花费的时间...问题是当我运行程序时,时间总是0 ...任何想法?
这就是我到目前为止......谢谢!
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int finish = 20;
int start = 1;
int result = 0;
double msecs;
clock_t init, end;
init = clock();
for (int i = start; i <= finish; i++)
{
result += i;
}
end = clock();
cout << ((float)(end - init)) *1000 / (CLOCKS_PER_SEC);
system ("PAUSE");
return 0;
}
答案 0 :(得分:2)
无论您使用什么技术进行计时,它们都具有一定的精度。这简单地执行得如此之快,以至于您的计时器在任何时候都没有注册过。
除了#1:使用high_resolution_clock - 也许这会注册非零的东西,可能不会。
除了#2:不要在C ++中命名变量null
,隐含0
或空指针
答案 1 :(得分:0)
你可以尝试这个......但你可能需要C ++ 11版本。
这可以降到0.000001秒。
#include <iostream>
#include <ctime>
#include <ratio>
#include <chrono>
//using namespace std;
int main()
{
using namespace std::chrono;
high_resolution_clock::time_point t1 = high_resolution_clock::now();
int finish = 20;
int start = 1;
for (int i = start; i <= finish; i++)
{
result += i;
}
high_resolution_clock::time_point t2 = high_resolution_clock::now();
duration<double> time_span = duration_cast<duration<double>>(t2 - t1);
cout << time_span.count() << " seconds" << endl;
end = clock();
system ("PAUSE");
return 0;
}