| 首页 |
  • 2009-10-04

    反刷屏 - [live in life]

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://yesilver.blogbuss.com/logs/9089.html

    感觉我的反刷屏写的太简单了TT用了模板库里的list然后时间限制都没用丫所以才那么几行。。。不甘心

    留着研究研究。。。

    C/C++中的计时函数(转)

    C/C++中的计时函数是clock(),而与其相关的数据类型是clock_t。在MSDN中,查得对clock函数定义如下:

    clock_tclock(void);

    这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clocktick)数,在MSDN中称之为挂钟时间(wal-clock)。其中clock_t是用来保存时间的数据类型,在time.h文件中,我们可以找到对它的定义:

    #ifndef_CLOCK_T_DEFINEDtypedeflongclock_t;#define_CLOCK_T_DEFINED#endif

    很明显,clock_t是一个长整形数。在time.h文件中,还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个时钟计时单元,其定义如下:

    #defineCLOCKS_PER_SEC((clock_t)1000)

    可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子,你可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间:

    voidelapsed_time(){printf("Elapsedtime:%usecs.\n",clock()/CLOCKS_PER_SEC);}

    当然,你也可以用clock函数来计算你的机器运行一个循环或者处理其它事件到底花了多少时间:

    #include“stdio.h”#include“stdlib.h”#include“time.h”

    intmain(void){longi=10000000L;clock_tstart,finish;doubleduration;/*测量一个事件持续的时间*/printf("Timetodo%ldemptyloopsis",i);start=clock();while(i--);finish=clock();duration=(double)(finish-start)/CLOCKS_PER_SEC;printf("%fseconds\n",duration);system("pause");}收藏到:http://delicious.com/save?url=http%3A%2F%2Fyesilver.blogbuss.comhttp%3A%2F%2Fyesilver.blogbuss.com%2Flogs%2F47608993.html&title=%E5%8F%8D%E5%88%B7%E5%B1%8F"target="_blank">Del.icio.us


    随机文章:

    回不去。 2010-05-18
    放暑假吧>__< 2010-05-06
    祈福 2010-04-11
    3/22 2010-03-22

    收藏到:Del.icio.us