Chrono v C++
system_clock predstavuje nástenné hodiny v reálnom čase pre celý systém. Je to ovplyvnené úpravami času systému.
steady_clock predstavuje monotónne rastúce hodiny, ktoré nie sú ovplyvnené zmenami systémového času.
high_resolution_clock sú hodiny s najkratšou dobou tikania, ktorá je v systéme k dispozícii.
Okrem toho
Knižnica Chrono sa používa na spracovanie dátumu a času. Táto knižnica bola navrhnutá tak, aby sa zaoberala skutočnosťou, že časovače a hodiny sa môžu v rôznych systémoch líšiť, a preto sa časom zlepšila z hľadiska presnosti. Jedinečná vec na chrono je, že poskytuje a presne neutrálny koncept oddelením trvania a časového bodu (časového bodu) od konkrétnych hodín. chrono je názov hlavičky a tiež sub-namespace: Všetky prvky v tejto hlavičke (okrem špecializácií common_type) nie sú definované priamo pod std namespace (ako väčšina štandardnej knižnice), ale pod std::chrono menný priestor . Prvky v tejto hlavičke sa zaoberajú časom. Deje sa to hlavne pomocou troch konceptov:
Trvanie
Objekt trvania vyjadruje časové rozpätie pomocou počtu minút, dvoch hodín alebo desať milisekúnd. Napríklad „42 sekúnd“ by mohlo byť reprezentované trvaním pozostávajúcim zo 42 tiknutí 1-sekundovej časovej 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 sa skladajú z počiatočného bodu (alebo epochy) a rýchlosti tikania. Napríklad hodiny môžu mať epochu 22. februára 1996 a tikať každú sekundu. C++ definuje tri typy hodín:
Časový bod
Objekt time_point vyjadruje časový bod vzhľadom na epochu hodín. Interne objekt ukladá objekt typu trvania a používa typ hodín ako referenciu pre svoju 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é poznamenať, že presnosť a presnosť hodín a trvania poskytuje
Vytvoriť kvíz
Mohlo By Sa Vám Páčiť
Najlepšie Články
Kategórie
Zaujímavé Články