Chrono valodā C++

ir C++ galvene, kas nodrošina veidu un funkciju kolekciju, lai strādātu ar laiku. Tā ir daļa no C++ standarta veidņu bibliotēkas (STL), un tā ir iekļauta C++11 un jaunākās versijās.

nodrošina trīs galvenos pulksteņu veidus: system_clock steady_clock un high_resolution_clock. Šie pulksteņi tiek izmantoti laika mērīšanai dažādos veidos.

system_clock apzīmē visas sistēmas reāllaika sienas pulksteni. To ietekmē sistēmas laika pielāgojumi.
steady_clock ir monotoni pieaugošs pulkstenis, ko neietekmē sistēmas laika izmaiņas.
high_resolution_clock ir pulkstenis ar īsāko sistēmā pieejamo tikšanās periodu.

nodrošina arī ilguma veidu kolekciju, tostarp ilgumu ko var izmantot, lai attēlotu laika ilgumu. Rep ir attēlojuma veids (piemēram, int vai long), un Period ir ilguma attiecība (piemēram, nanosekundes vai sekundes).
Turklāt nodrošina laika punktu veidu kolekciju, tostarp laika_punkts ko var izmantot, lai attēlotu laika punktu. Pulkstenis ir pulksteņa veids (piemēram, system_clock), un ilgums ir ilguma veids (piemēram, sekundes).

Chrono bibliotēka tiek izmantota, lai apstrādātu datumu un laiku. Šī bibliotēka tika izstrādāta, lai novērstu faktu, ka taimeri un pulksteņi dažādās sistēmās var atšķirties, un tādējādi laika gaitā uzlabotu precizitāti. Chrono unikālā lieta ir tā, ka tas nodrošina a precizitātes neitrāla koncepcija, atdalot ilgumu un laika punktu (laika punktu) no konkrētiem pulksteņiem. chrono ir galvenes un arī apakšnosaukumvietas nosaukums: visi elementi šajā galvenē (izņemot special_type specializācijas) nav definēti tieši zem standarta nosaukumvietas (tāpat kā lielākā daļa standarta bibliotēkas), bet gan std::chrono nosaukumvieta . Šīs galvenes elementi attiecas uz laiku. Tas tiek darīts galvenokārt, izmantojot trīs koncepcijas:

Ilgums

Ilguma objekts izsaka laika posmu, skaitot, piemēram, minūti divas stundas vai desmit milisekundes. Piemēram, “42 sekundes” var attēlot ar ilgumu, kas sastāv no 42 atzīmēm 1 sekundes laika vienībā. 

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

Izvade:

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

Pulkstenis

Pulkstenis sastāv no sākuma punkta (vai laikmeta) un tikšanās ātruma. Piemēram, pulkstenim var būt 1996. gada 22. februāra laikmets, un tas var atzīmēt katru sekundi. C++ definē trīs pulksteņu veidus:

    sistēmas_pulkstenis -Tas ir pašreizējais laiks saskaņā ar sistēmu (parastais pulkstenis, ko mēs redzam datora rīkjoslā). Tas ir uzrakstīts kā-std::chrono::system_clock steady_clock -Tas ir monotons pulkstenis, kas nekad netiks noregulēts. Tas darbojas vienmērīgā ātrumā. Tas ir uzrakstīts kā-std::chrono::steady_clock augstas_izšķirtspējas_pulkstenis - Tas nodrošina mazāko iespējamo tikšanās periodu. Tas ir uzrakstīts kā-std::chrono::high_resolution_clock

Laika punkts

Objekts time_point izsaka laika punktu attiecībā pret pulksteņa laikmetu. Objekts iekšēji saglabā ilguma tipa objektu un izmanto veidu Pulkstenis kā atsauci savam laikmetam.  

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

Izvade:

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

Ir svarīgi atzīmēt, ka pulksteņu un ilgumu precizitāte un precizitāte, ko nodrošina var atšķirties atkarībā no sistēmas un platformas, un vienmēr ir ieteicams pārbaudīt savas platformas dokumentāciju, lai iegūtu plašāku informāciju.

Izveidojiet viktorīnu