algorithm-dev

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub today2098/algorithm-dev

:warning: 処理時間計測クラス
(algorithm/Utils/timer.hpp)

参考文献

  1. “手を動かしてさくさく理解する C言語/C++ 処理時間計測 入門”. http://vivi.dyndns.org/tech/cpp/timeMeasurement.html.

Code

#ifndef ALGORITHM_TIMER_HPP
#define ALGORITHM_TIMER_HPP 1

#include <chrono>

namespace algorithm {

class Timer {
    std::chrono::system_clock::time_point m_start;

    auto elapsed() const { return std::chrono::system_clock::now() - m_start; }

public:
    Timer() : m_start(std::chrono::system_clock::now()) {}

    // 計測開始時間を保存.
    void restart() { m_start = std::chrono::system_clock::now(); }
    // 経過時間を返す.[millisec].
    auto elapsed_by_millisec() const { return std::chrono::duration_cast<std::chrono::milliseconds>(elapsed()).count(); }
    // 経過時間を返す.[microsec].
    auto elapsed_by_microsec() const { return std::chrono::duration_cast<std::chrono::microseconds>(elapsed()).count(); }
};

}  // namespace algorithm

#endif
#line 1 "algorithm/Utils/timer.hpp"



#include <chrono>

namespace algorithm {

class Timer {
    std::chrono::system_clock::time_point m_start;

    auto elapsed() const { return std::chrono::system_clock::now() - m_start; }

public:
    Timer() : m_start(std::chrono::system_clock::now()) {}

    // 計測開始時間を保存.
    void restart() { m_start = std::chrono::system_clock::now(); }
    // 経過時間を返す.[millisec].
    auto elapsed_by_millisec() const { return std::chrono::duration_cast<std::chrono::milliseconds>(elapsed()).count(); }
    // 経過時間を返す.[microsec].
    auto elapsed_by_microsec() const { return std::chrono::duration_cast<std::chrono::microseconds>(elapsed()).count(); }
};

}  // namespace algorithm
Back to top page