C++/Library 2021. 3. 16. 00:13

chrono

  • <chrono> 라이브러리

    • C++11

    • 실행 시간 측정(Run Time Measurement)에 사용되며, 시간을 비교적 정밀하게 측정할 수 있다.

    #include <iostream>
    #include <vector>
    #include <algorithm>
    #include <random>
    #include <chrono>
    
    using namespace std;
    
    class Timer
    {
      using clock_t = std::chrono::high_resolution_clock;
      using second_t = std::chrono::duration<double, std::ratio<1>>;
    
      std::chrono::time_point<clock_t> start_time = clock_t::now();
    
    public:
      void elapsed()
      {
        std::chrono::time_point<clock_t> end_time = clock_t::now();
    
        std::cout << std::chrono::duration_cast<second_t>(end_time - start_time).count() << std::endl;
      }
    };
    
    int        main()
    {
      random_device    rnd_device;
      mt19937            mersenne_engin{ rnd_device() };
    
      vector<int>        vec(100000);
      for (size_t i = 0; i < vec.size(); ++i)
        vec[i] = i;
    
      std::shuffle(begin(vec), end(vec), mersenne_engin);
    
      /*for (auto& e : vec) cout << e << ' ';
      cout << endl;*/
    
      Timer timer;
    
      std::sort(begin(vec), end(vec));
    
      timer.elapsed();
    
      /*for (auto& e : vec) cout << e << ' ';
      cout << endl;*/
    }

'C++ > Library' 카테고리의 다른 글

C++ IntArray  (0) 2021.03.19
C++ initializer_list  (0) 2021.03.19
C++ assert  (0) 2021.03.12
C++ vector  (0) 2021.03.12
C++ tuple  (0) 2021.03.12