C++'da krono

zamanla çalışacak tür ve işlevler koleksiyonu sağlayan bir C++ başlığıdır. C++ Standart Şablon Kitaplığının (STL) bir parçasıdır ve C++11 ve sonraki sürümlerde bulunur.

üç ana saat türü sağlar: sistem_saati sabit_saat ve yüksek_çözünürlük_saati. Bu saatler zamanı çeşitli şekillerde ölçmek için kullanılır.

system_clock, sistem genelindeki gerçek zamanlı duvar saatini temsil eder. Sistemin zaman ayarlarından etkilenir.
steady_clock sistem zamanındaki değişikliklerden etkilenmeyen, monoton olarak artan bir saati temsil eder.
yüksek_çözünürlük_saati, sistemde mevcut olan en kısa tıklama periyoduna sahip saattir.

ayrıca süre de dahil olmak üzere süre türlerinin bir koleksiyonunu sağlar bir süreyi temsil etmek için kullanılabilir. Rep temsil türüdür (int veya long gibi) ve Dönem ise sürenin oranıdır (nanosaniye veya saniye gibi).
Ek olarak time_point dahil olmak üzere zaman noktası türlerinin bir koleksiyonunu sağlar zamandaki bir noktayı temsil etmek için kullanılabilir. Saat, saat türüdür (system_clock gibi) ve Süre, süre türüdür (saniye gibi)

Chrono kütüphanesi tarih ve saatle ilgilenmek için kullanılır. Bu kütüphane, zamanlayıcıların ve saatlerin farklı sistemlerde farklı olabileceği gerçeğini ele almak ve böylece zaman içinde hassasiyet açısından gelişmek için tasarlandı. Chrono'nun benzersiz özelliği, Süreyi ve zaman noktasını (zaman noktası) belirli saatlerden ayırarak hassas-nötr konsept. chrono, bir başlığın ve aynı zamanda bir alt ad alanının adıdır: Bu başlıktaki tüm öğeler (ortak_tip uzmanlıkları hariç) doğrudan std ad alanı altında değil (standart kitaplığın çoğu gibi), ancak std::chrono ad alanı . Bu başlıktaki öğeler zamanla ilgilidir. Bu esas olarak üç kavram aracılığıyla yapılır:

Süre

Bir süre nesnesi, bir dakika, iki saat veya on milisaniye gibi bir sayım aracılığıyla bir zaman aralığını ifade eder. Örneğin '42 saniye', 1 saniyelik zaman biriminin 42 tıklamasından oluşan bir süre ile temsil edilebilir. 

CPP
   // C++ program to illustrate the utility    // function duration::count   #include       #include      int     main     ()   {      using     namespace     std  ::  chrono  ;      // std::chrono::milliseconds is an       // instantiation of std::chrono::duration:- 1 second      milliseconds     mil  (  1000  );             mil     =     mil  *  60  ;          std  ::  cout     &  lt  ;  &  lt  ;     &  quot  ;  duration     (  in     periods  )  :     &  quot  ;;      std  ::  cout     &  lt  ;  &  lt  ;     mil  .  count  ()     &  lt  ;  &  lt  ;     &  quot  ;     milliseconds  .    n  &  quot  ;;          std  ::  cout     &  lt  ;  &  lt  ;     &  quot  ;  duration     (  in     seconds  )  :     &  quot  ;;      std  ::  cout     &  lt  ;  &  lt  ;     (  mil  .  count  ()     *     milliseconds  ::  period  ::  num     /         milliseconds  ::  period  ::  den  );      std  ::  cout     &  lt  ;  &  lt  ;     &  quot  ;     seconds  .    n  &  quot  ;;      return     0  ;   }   

Çıkış:

duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds. 

Saat

Bir saat, bir başlangıç ​​noktası (veya çağ) ve bir tıklama oranından oluşur. Örneğin bir saatin 22 Şubat 1996 dönemi olabilir ve her saniye tik tak edebilir. C++ üç saat türünü tanımlar:

    sistem_saati -Sisteme göre geçerli saattir (bilgisayarın araç çubuğunda gördüğümüz normal saat). Astd::chrono::system_clock şeklinde yazılır sabit_saat -Asla ayarlanamayacak monoton bir saattir. Aynı hızla çalışır. Astd::chrono::steady_clock şeklinde yazılır yüksek_çözünürlük_saat - Mümkün olan en küçük tıklama süresini sağlar. -std::chrono::high_Definition_clock olarak yazılmıştır.

Zaman noktası

Time_point nesnesi, saatin çağına göre zamandaki bir noktayı ifade eder. Dahili olarak nesne, süre tipindeki bir nesneyi saklar ve kendi dönemi için referans olarak Clock tipini kullanır.  

CPP
   // C++ program to illustrate time point   // and system clock functions   #include      #include     #include     // Function to calculate   // Fibonacci series   long     fibonacci  (  unsigned     n  )   {      if     (  n     &  lt  ;     2  )     return     n  ;      return     fibonacci  (  n  -1  )     +     fibonacci  (  n  -2  );   }   int     main  ()   {      // Using time point and system_clock      std  ::  chrono  ::  time_point  &  lt  ;  std  ::  chrono  ::  system_clock  &  gt  ;     start       end  ;      start     =     std  ::  chrono  ::  system_clock  ::  now  ();      std  ::  cout     &  lt  ;  &  lt  ;     &  quot  ;  f  (  42  )     =     &  quot  ;     &  lt  ;  &  lt  ;     fibonacci  (  42  )     &  lt  ;  &  lt  ;     'n'  ;      end     =     std  ::  chrono  ::  system_clock  ::  now  ();      std  ::  chrono  ::  duration  &  lt  ;  double  &  gt  ;     elapsed_seconds     =     end     -     start  ;      std  ::  time_t     end_time     =     std  ::  chrono  ::  system_clock  ::  to_time_t  (  end  );      std  ::  cout     &  lt  ;  &  lt  ;     &  quot  ;  finished     computation     at     &  quot  ;     &  lt  ;  &  lt  ;     std  ::  ctime  (  &  amp  ;  end_time  )      &  lt  ;  &  lt  ;     &  quot  ;  elapsed     time  :     &  quot  ;     &  lt  ;  &  lt  ;     elapsed_seconds  .  count  ()     &  lt  ;  &  lt  ;     &  quot  ;  s    n  &  quot  ;;   }   

Çıkış:

f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s 

tarafından sağlanan saatlerin ve sürelerin kesinliği ve doğruluğunun dikkate alınması önemlidir. sisteme ve platforma bağlı olarak değişiklik gösterebilir ve daha fazla bilgi için platformunuzun belgelerini kontrol etmek her zaman iyi bir fikirdir.

Test Oluştur