计算增量不正确

时间:2013-08-31 00:21:58

标签: c++ c delta

我试图以毫秒为单位计算delta:

int olddelta = 0;
    int delta = 0;
    const clock_t begin_time = clock();
    while (true) {
        olddelta=delta;
        delta=clock()-olddelta;
        cout<<delta<<endl;
}
然而,这并不起作用,因为delta肯定不会超过4000,而且它似乎逐渐变高。我做错了什么?

1 个答案:

答案 0 :(得分:3)

由于您使用clock(),因此需要将其除以CLOCKS_PER_SEC以获得以秒为单位表示的结果。要获得分数,请在分割前将clock()投射到double

double olddelta = 0;
double delta = 0;
const double begin_time = clock();
while (true) {
    olddelta = delta;
    delta=clock()-olddelta;
    cout << (delta/CLOCKS_PER_SEC) << endl;
}

如果要测量单次迭代的时间,请按如下所示更改循环:

double olddelta = 0;
double delta = 0;
const double begin_time = clock();
while (true) {
    double now = clock();
    delta = now - begin_time;
    cout << (delta/CLOCKS_PER_SEC) << endl;
    begin_time = now;
}