Chrono v C++
system_clock představuje nástěnné hodiny reálného času v celém systému. Je to ovlivněno úpravami času systému.
steady_clock představuje monotónně rostoucí hodiny, které nejsou ovlivněny změnami systémového času.
high_resolution_clock jsou hodiny s nejkratší periodou tikání dostupnou v systému.
Navíc
Knihovna Chrono se používá pro práci s datem a časem. Tato knihovna byla navržena tak, aby se vypořádala se skutečností, že časovače a hodiny se mohou na různých systémech lišit, a tak se časem zlepšila z hlediska přesnosti. Jedinečná věc na chrono je, že poskytuje a precizně neutrální koncept oddělením trvání a časového bodu (časového bodu) od konkrétních hodin. chrono je název hlavičky a také podjmenného prostoru: Všechny prvky v této hlavičce (kromě specializací common_type) nejsou definovány přímo pod jmenným prostorem std (jako většina standardní knihovny), ale pod jmenný prostor std::chrono . Prvky v této hlavičce se zabývají časem. To se děje především pomocí tří konceptů:
Trvání
Objekt trvání vyjadřuje časové rozpětí pomocí počtu minut, dvou hodin nebo deseti milisekund. Například „42 sekund“ by mohlo být reprezentováno dobou trvání skládající se ze 42 dílků 1-sekundové časové jednotky.
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 ; }
výstup:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Hodiny
Hodiny se skládají z počátečního bodu (nebo epochy) a rychlosti tikání. Například hodiny mohou mít epochu 22. února 1996 a tikají každou sekundu. C++ definuje tři typy hodin:
Časový bod
Objekt time_point vyjadřuje bod v čase vzhledem k epoše hodin. Interně objekt ukládá objekt typu trvání a používá typ Clock jako referenci pro jeho epochu.
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 ;; }
výstup:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
Je důležité poznamenat, že přesnost a přesnost hodin a trvání poskytuje
Vytvořit kvíz
Mohlo By Se Vám Líbit
Nejlepší Články
Kategorie
Zajímavé Články