计时器

计时器

文章目录

  • 计时器
    • 一.引子
    • 二.time.h
      • 1.获取时间的方式
        • ①得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数
        • ②得到从程序启动到此次函数调用时累计的毫秒数
      • 2.time函数
        • ①几个常用的
          • Ⅰ.clock()
          • Ⅱ.time()
        • ②其他
    • 三.小贴士

一.引子

之前我的讲rand()和srand()那篇文章里,提到了srand(time(NULL))的time是C语言time.h头文件中的一个函数 ,而我最近在学到测试容器效率的时候用到了计时器,那接下来就让我们来进行详细一些的探究叭

二.time.h

1.获取时间的方式

①得到从标准计时点(一般是1970年1月1日午夜)到当前时间的秒数

​ time_t time(time_t* timer)

②得到从程序启动到此次函数调用时累计的毫秒数

​ clock_t clock(void)

2.time函数

①几个常用的

Ⅰ.clock()

​ clock()是C/C++中的计时函数,而与其相关的数据类型是clock_t

​ 例子:

#include
#include
#include
using namespace std;
const long n=1000;

int main()
{
     
    clock_t t1,t2;

    long i;

    int a[n];

    srand(time(0));
    t1=clock();
    for(i=0;i<n;++i)
    {
     

        a[i]=rand();

    }

    for(i=0;i<n;++i)
    {
     
        cout<<a[i]<<endl;
    }

    t2=clock();
    cout<<"time"<<t2-t1<<endl;

    return 0;
}

#include 
#include 
 
int main()
{
     
   clock_t start_t, end_t;
   double total_t;
   int i;
 
   start_t = clock();
   printf("程序启动,start_t = %ld\n", start_t);
    
   printf("开始一个大循环,start_t = %ld\n", start_t);
   for(i=0; i< 10000000; i++)
   {
     
   }
   end_t = clock();
   printf("大循环结束,end_t = %ld\n", end_t);
   
   total_t = (double)(end_t - start_t) / CLOCKS_PER_SEC;
   printf("CPU 占用的总时间:%f\n", total_t  );
   printf("程序退出...\n");
 
   return(0);
}

//此段代码转自菜鸟教程
Ⅱ.time()

​ 这是time()的函数声明time_t time(time_t *seconds),以 time_t 对象返回当前日历时间

​ seconds是指向类型为 time_t 的对象的指针,用来存储 seconds 的值

​ 例子:

#include 
#include 
 
int main ()
{
     
  time_t seconds;
 
  seconds = time(NULL);
  printf("自 1970-01-01 起的小时数 = %ld\n", seconds/3600);
  
  return(0);
}
//此段代码转自菜鸟教程

另外,大家可以看看我讲rand和srand那篇文章里提到的time噢

​ (点击超链接即可跳转)

②其他

​ 如asctime,tzset等,大家可以查看百度百科https://baike.baidu.com/item/time.h

​ 和菜鸟教程https://www.runoob.com/cprogramming/c-standard-library-time-h.html 中的讲解

三.小贴士

​ 在C++使用的时候别忘了头文件是ctime噢

你可能感兴趣的:(C++入门,c++,c语言)