Chrono v C++
system_clock predstavlja sistemsko stensko uro v realnem času. Na to vplivajo časovne prilagoditve sistema.
steady_clock predstavlja monotono naraščajočo uro, na katero spremembe sistemskega časa ne vplivajo.
high_resolution_clock je ura z najkrajšo razpoložljivo tiktakalno dobo v sistemu.
Dodatno
Knjižnica Chrono se uporablja za obravnavo datuma in ure. Ta knjižnica je bila zasnovana tako, da obravnava dejstvo, da so lahko časovniki in ure različni v različnih sistemih, in se tako sčasoma izboljša v smislu natančnosti. Edinstvena stvar pri Chronu je, da zagotavlja a natančno nevtralen koncept z ločevanjem trajanja in časovne točke (časovne točke) od določenih ur. chrono je ime glave in tudi podimenskega prostora: vsi elementi v tej glavi (razen specializacij common_type) niso definirani neposredno pod imenskim prostorom std (kot večina standardne knjižnice), ampak pod std::chrono imenski prostor . Elementi v tem naslovu obravnavajo čas. To se izvaja predvsem s pomočjo treh konceptov:
Trajanje
Predmet trajanja izraža časovni razpon s štetjem, kot je minuta, dve uri ali deset milisekund. Na primer, "42 sekund" je lahko predstavljeno s trajanjem, ki je sestavljeno iz 42 odmikov časovne enote 1 sekunde.
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 ; }
Izhod:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Ura
Ura je sestavljena iz začetne točke (ali obdobja) in hitrosti. Na primer, ura ima lahko epoho 22. februarja 1996 in tiktaka vsako sekundo. C++ definira tri vrste taktov:
Časovna točka
Objekt time_point izraža točko v času glede na epoho ure. Interno objekt shrani objekt tipa trajanja in uporablja tip Ura kot referenco za svojo epoho.
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 ;; }
Izhod:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
Pomembno je omeniti, da sta natančnost in točnost ur in trajanja, ki jih zagotavlja
Ustvari kviz