21xrx.com
2024-12-22 21:01:19 Sunday
登录
文章检索 我的文章 写文章
C++自定义类中使用计时器
2023-06-26 18:50:17 深夜i     --     --
C++ 自定义类 计时器

在进行某些操作时,我们经常需要计算时间,比如程序中的某个任务需要完成一定的时间,或者是需要在一定的时间内完成特定的操作。而在C++中,自定义类中使用计时器是一种比较常见的方法,既可以帮助我们更好地掌握时间,也可以更好地优化程序的算法。

使用C++自定义类中的计时器,需要使用C++库中的 头文件。这个头文件定义了一些类,可以用于操作时间,并支持高精度计时。在使用这个头文件的时候,需要定义一个时间点的起始点,然后通过计算当前时间点和起始点之间的时间差,就可以得到经过的时间了。

下面是一个使用计时器的示例:


#include <chrono>

#include <iostream>

class Timer

{

public:

  void Start()

  {

    m_StartTime = std::chrono::steady_clock::now();

    m_bRunning = true;

  }

  void Stop()

  {

    m_EndTime = std::chrono::steady_clock::now();

    m_bRunning = false;

  }

  double GetElapsedMilliseconds()

  {

    std::chrono::time_point<std::chrono::steady_clock> endTime;

    if (m_bRunning)

    {

      endTime = std::chrono::steady_clock::now();

    }

    else

    

      endTime = m_EndTime;

    

    return std::chrono::duration_cast<std::chrono::milliseconds>(endTime - m_StartTime).count();

  }

private:

  std::chrono::time_point<std::chrono::steady_clock> m_StartTime;

  std::chrono::time_point<std::chrono::steady_clock> m_EndTime;

  bool m_bRunning = false;

};

int main()

{

  Timer timer;

  timer.Start();

  // 执行某些任务...

  timer.Stop();

  std::cout << "Elapsed Time: " << timer.GetElapsedMilliseconds() << "ms" << std::endl;

  return 0;

}

上面的示例代码中,定义了一个名为Timer的类,这个类包含了计时器的核心函数。它通过一个bool类型的变量m_bRunning来记录计时器是否正在运行,并使用两个时间点变量m_StartTime和m_EndTime来分别记录计时器的开始和结束时间。

在主函数中,首先创建了一个Timer对象timer,并在执行某些代码之前调用了它的Start函数来启动计时器,执行完代码之后再使用Stop函数停止计时器。最后,使用GetElapsedMilliseconds函数获取从开始到结束所经过的时间。

总的来说,使用C++自定义类中的计时器可以帮助我们更好地掌握时间,并优化我们的算法,提高程序的执行效率。但需要注意的是,我们需要合理地使用计时器,并确保计时器的准确性,避免因计时器问题导致程序出错。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复