计算机二级C++系统相关:有用的计时的类

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  很多时候,我们需要计算某段代码的操作所耗费的时间,我们往往会这样写:
  第一种情况,精确到毫秒。
  clock_t start = null, end = null;
  double duration = 0;
  start = clock();
  // operation statements here
  end = clock();
  duration = (double) (end - start)/CLOCK_PER_SEC;
  第二中情况,精确到秒。
  time_t start = null, end = null;
  int duration = 0;
  start = time(NULL);
  // operation statements here
  end = time(NULL);
  duration = end - start;
  为了是这些计时的代码能够在C++工程中重用,我们可以对其进行封装。
  利用对象的作用域来计算时间。当然这些类只能用在某些特定的场合。
  class TimeCost
  {
  public:
  TimeCost(){ m_cur = time(NULL);
  ~TimeCost()
  {
  time_t cur = time(NULL);
  prinftf("Time cost is %d s/n",cur - m_cur;
  }
  private:
  time_t m_cur;
  }
  class TimeCost2
  {
  public:
  TimeCost2(){ m_cur = clock();}
  ~TimeCost2()
  {
  clock_t cur = clock();
  double cost = (double)(cur - m_cur)/CLOCK_PER_SEC;
  printf("Time cost: %f s /n", cost);
  }
  private:
  clock_t m_cur;
  }
  当然,这两个类的最大缺陷就是时间的计算严格的依赖于对象的生存期。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答