Цхроно у Ц++

је Ц++ заглавље које пружа колекцију типова и функција за рад са временом. То је део Ц++ стандардне библиотеке шаблона (СТЛ) и укључен је у Ц++11 и новије верзије.

пружа три главна типа сатова: системски_сат стабилан_сат и часовник високе_резолуције. Ови сатови се користе за мерење времена на различите начине.

систем_цлоцк представља зидни сат у реалном времену за читав систем. На то утичу подешавања времена система.
стеади_цлоцк представља монотоно растући сат на који не утичу промене системског времена.
хигх_ресолутион_цлоцк је сат са најкраћим периодом откуцаја који је доступан на систему.

такође пружа колекцију типова трајања укључујући трајање који се може користити за представљање трајања времена. Реп је тип репрезентације (као што је инт или лонг), а Период је однос трајања (као што су наносекунде или секунде).
Додатно пружа колекцију типова временске тачке укључујући тиме_поинт који се може користити за представљање тачке у времену. Сат је тип сата (као што је системски_сат), а трајање је тип трајања (као што су секунде)

Хроно библиотека се користи за рад са датумом и временом. Ова библиотека је дизајнирана да се бави чињеницом да тајмери ​​и сатови могу бити различити на различитим системима и да се временом побољша у смислу прецизности. Јединствена ствар код Цхроно-а је то што пружа а прецизно неутралан концепт одвајањем трајања и тачке времена (временске тачке) од специфичних часовника. цхроно је име заглавља, а такође и под-простора имена: Сви елементи у овом заглављу (осим специјализација цоммон_типе) нису дефинисани директно у стд именском простору (као већина стандардне библиотеке) већ под стд::цхроно именски простор . Елементи у овом заглављу се баве временом. Ово се углавном ради помоћу три концепта:

Трајање

Објекат трајања изражава временски распон помоћу бројања као што је минут два сата или десет милисекунди. На пример, '42 секунде' може бити представљено трајањем које се састоји од 42 тикета јединице времена од 1 секунде. 

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  ;   }   

Излаз:

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

Сат

Сат се састоји од почетне тачке (или епохе) и стопе откуцаја. На пример, сат може имати епоху од 22. фебруара 1996. и откуцавати сваку секунду. Ц++ дефинише три типа сата:

    систем_цлоцк -То је тренутно време по систему (обичан сат који видимо на траци са алаткама рачунара). Пише се као- стд::цхроно::систем_цлоцк стеади_цлоцк -То је монотони сат који се никада неће подесити. Ради уједначеном брзином. Пише се као- стд::цхроно::стеади_цлоцк хигх_ресолутион_цлоцк - Обезбеђује најмањи могући период тикова. Пише се као-стд::цхроно::хигх_ресолутион_цлоцк

Временска тачка

Објекат тиме_поинт изражава тачку у времену у односу на епоху сата. Интерно објекат складишти објекат типа трајања и користи тип Сат као референцу за своју епоху.  

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  ;;   }   

Излаз:

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

Важно је напоменути да прецизност и тачност сатова и трајања које обезбеђује може варирати у зависности од система и платформе и увек је добра идеја да проверите документацију ваше платформе за више информација.

Креирај квиз