首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C++中使用clock()

如何在C++中使用clock()
EN

Stack Overflow用户
提问于 2010-07-11 03:06:15
回答 5查看 415K关注 0票数 133

如何在C++中调用clock()

例如,我想测试线性搜索在数组中查找给定元素需要多长时间。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-11 03:13:24

代码语言:javascript
复制
#include <iostream>
#include <cstdio>
#include <ctime>

int main() {
    std::clock_t start;
    double duration;

    start = std::clock();

    /* Your algorithm here */

    duration = ( std::clock() - start ) / (double) CLOCKS_PER_SEC;

    std::cout<<"printf: "<< duration <<'\n';
}
票数 213
EN

Stack Overflow用户

发布于 2015-08-27 13:04:53

另一种解决方案是使用std::chrono,它是可移植的,并且具有更高的精度(从C++11开始就可以使用)。

下面是一个示例:

代码语言:javascript
复制
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;

int main()
{
    auto t1 = Clock::now();
    auto t2 = Clock::now();
    std::cout << "Delta t2-t1: " 
              << std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()
              << " nanoseconds" << std::endl;
}

在ideone.com上运行它给了我:

代码语言:javascript
复制
Delta t2-t1: 282 nanoseconds
票数 74
EN

Stack Overflow用户

发布于 2010-07-11 03:10:37

clock()返回自程序启动以来的时钟滴答数。有一个相关的常量CLOCKS_PER_SEC,它告诉您一秒钟内发生了多少个时钟节拍。因此,您可以像这样测试任何操作:

代码语言:javascript
复制
clock_t startTime = clock();
doSomeOperation();
clock_t endTime = clock();
clock_t clockTicksTaken = endTime - startTime;
double timeInSeconds = clockTicksTaken / (double) CLOCKS_PER_SEC;
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3220477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档