在Java中,有时候会要测试程序的性能,所以会采用System.currentTimeMillis()等类库函数去测试时间开销。

在C++中同样可以完成此功能。

头文件:

#include<ctime>

示例程序:

 #include<iostream>
#include<ctime>
using namespace std;
const int N =;
int main(){
clock_t now = clock();
for(int i = ; i< N ; ++i){
;
}
cout<<clock() - now<<endl;
return ;
}

这段程序输出了循环N次计算机需要的时间。

clock_t 类型是ctime的内置类型,因为在有的机器上clock()函数返回的有可能是long,也有可能是unsigned long,所以采用了一个新类型clock_t来实现这个类型的自动变换。

clock()函数返回的是一个系统时间,一般可以把它想象成毫秒。

而在ctime头文件中还有一个预定义宏,他就是CLOCKS_PER_SEC,这个宏就表示了“毫秒”和秒之间的倍数关系:

1、CLOCKS_PER_SEC / clock() == 秒

2、秒 * CLOCKS_PER_SEC == 毫秒

根据这个,我们可以实现另一个程序,就是通过while循环,让程序延时一段时间。

示例代码:

 #include<cstdio>
#include<iostream>
#include<ctime>
using namespace std; int main(){
int delay;
cout<<"输入要延时的时间(秒):"<<flush;
cin>>delay;
delay *= CLOCKS_PER_SEC;
clock_t now = clock();
while(clock() - now < delay)
;
cout<<"延时完毕"<<endl;
return ;
}

这样一个简单的程序就完成了一个很有意思的任务。。。

C++ 中的计时器的更多相关文章

  1. aspx利用cookie值来停止silverlight中的计时器

    一.silverlight与silverlight中可以利用委托(delegate)来刷新frame.Refresh() 1.在子类中定义委托捕捉关闭事件按钮 public delegate void ...

  2. [转载]C#中各种计时器

    1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 S ...

  3. C#中各种计时器

    1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch) Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 S ...

  4. C#中各种计时器 Stopwatch、TimeSpan

    1.使用 Stopwatch 类 (System.Diagnostics.Stopwatch)Stopwatch 实例可以测量一个时间间隔的运行时间,也可以测量多个时间间隔的总运行时间.在典型的 St ...

  5. JS中的计时器事件

    JS可以实现很多java代码不易完成的功能.这里学习一些js中的计时器事件. JavaScript 一个设定的时间间隔之后来执行代码,称之为计时事件. 主要通过两个方法来实现: 1.setInterv ...

  6. python中的计时器:timeit

    python中的计时器:timeit timeit 通常在一段程序的前后都用上time.time(),然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:timeit #导 ...

  7. python中的计时器:timeit模块

    python中的计时器:timeit模块 (1) timeit - 通常在一段程序的前后都用上time.time()然后进行相减就可以得到一段程序的运行时间,不过python提供了更强大的计时库:ti ...

  8. js中的计时器事件`setTimeout()` 和 `setInterval()`

    js中的计时器事件 在js中,通常会有一些事件,我们需要让它 间隔一段时间之后再发生,或者 每隔一段时间 发生一次,那就需要用到我们js中的计时事件 计时事件主要有两种: setTimeout() - ...

  9. Combine 框架,从0到1 —— 4.在 Combine 中使用计时器

    本文首发于 Ficow Shen's Blog,原文地址: Combine 框架,从0到1 -- 4.在 Combine 中使用计时器. 内容概览 前言 使用计时器执行周期性的工作 将计时器转换为计时 ...

  10. js中的计时器

    在JS中做二级菜单时,被一个鼠标移出时隐藏的小问题困扰了很久. <script> function Menu(id){ var _this=this; this.obj=document. ...

随机推荐

  1. 【ios开发】iOS App测试方案

    之前IOS测试一半都是采用的Testflight,但是2014.2.19日以后,testflight已经不提供新注册的用户下载SDK了. 但是不用担心我们还可以采用其他几种方案. 1)Ubertest ...

  2. [转]loadView的用法,loadView创建基本界面,DidLoad读入数据

    loadview: //   有没有nib 只要是复写了loadview loadview都会被执行     有nib文件的话加载的是nib文件的view  没有的话会按照loadview里的代码加载 ...

  3. 算法打基础——顺序统计(找第k小数)

    这次主要是讲如何在线性时间下找n个元素的未排序序列中第k小的数.当然如果\(k=1 or k=n\),即找最大最小 数,线性时间内遍历即可完成,当拓展到一般,如中位数时,相关算法就值得研究了.这里还要 ...

  4. [每日一题] OCP1z0-047 :2013-07-29 视图――别名

    本题的考点是如何创建视图,对于视图的详细知识点,可以参考我的博客: http://blog.csdn.net/guoyjoe/article/details/8614677 好,接下来我们来做测试,先 ...

  5. ie7,8下__flash__addCallback报错原因及解决方案

    首先附张图,以直观说明错误的现象:(ie7.8)

  6. ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS

    ASP.NET MVC:利用ASP.NET MVC4的IBundleTransform集成LESS 背景 LESS确实不错,只是每次写完LESS都要手工编译一下有点麻烦(VS插件一直没有安装好),昨天 ...

  7. javascript数组、对象和Null的typeof同为object,区分解决办法

    在JS里typeof 大家用的很多,可以使对于数组.对象和Null无法区分的问题,看了看犀牛书还是有解决办法的. document.writeln(typeof "abc"); / ...

  8. hdu 1253 胜利大逃亡(BFS)

    题目链接:点击链接 三维的BFS,刚开始一直超内存,超无语......  改了n多次终于AC了 #include <iostream> #include <stdio.h> # ...

  9. 从零开始学C++之RTTI、dynamic_cast、typeid、类与类之间的关系uml

    一.RTTI Run-time type information (RTTI) is a mechanism that allows the type of an object to be deter ...

  10. 手动创建servlet

    1 tomcat/webapps/目录下创建web应用mail.   目录结构如下   tomcat/webapps   |    mail   |    WEB-INF     |        | ...