logo

Chrono i C++

er en C++ header, der giver en samling af typer og funktioner til at arbejde med tiden. Det er en del af C++ Standard Template Library (STL), og det er inkluderet i C++11 og senere versioner.

giver tre hovedtyper af ure: system_clock steady_clock og high_resolution_clock. Disse ure bruges til at måle tid på forskellige måder.

system_clock repræsenterer hele systemets vægur i realtid. Det er påvirket af systemets tidsjusteringer.
steady_clock repræsenterer et monotont stigende ur, der ikke påvirkes af ændringer i systemtiden.
high_resolution_clock er uret med den korteste afkrydsningsperiode på systemet.



css centrering af et billede

giver også en samling af varighedstyper inklusive varighedder kan bruges til at repræsentere en varighed af tid. Rep er repræsentationstypen (såsom int eller lang), og Periode er forholdet mellem varigheden (såsom nanosekunder eller sekunder).
Derudovergiver en samling af tidspunkter, inklusive time_pointsom kan bruges til at repræsentere et tidspunkt. Ur er urtypen (såsom system_clock) og Duration er varighedstypen (såsom sekunder)

Chrono-biblioteket bruges til at håndtere dato og klokkeslæt. Dette bibliotek er designet til at håndtere det faktum, at timere og ure kan være forskellige på forskellige systemer og dermed forbedres over tid med hensyn til præcision. Det unikke ved chrono er, at det giver en præcisionsneutralt koncept ved at adskille varighed og tidspunkt (tidspunkt) fra specifikke ure. chrono er navnet på en header og også på et undernavneområde: Alle elementer i denne header (bortset fra common_type-specialiseringerne) er ikke defineret direkte under std-navneområdet (som det meste af standardbiblioteket), men under std::chrono navneområde . Elementerne i denne overskrift omhandler tid. Dette gøres hovedsageligt ved hjælp af tre begreber:

Varighed

juster css-billede

Et varighedsobjekt udtrykker et tidsrum ved hjælp af en optælling som et minut to timer eller ti millisekunder. For eksempel kunne '42 sekunder' repræsenteres af en varighed bestående af 42 flueben af ​​en 1-sekunds tidsenhed. 

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 << "duration (in periods): ";  std::cout << mil.count() << " milliseconds.n";    std::cout << "duration (in seconds): ";  std::cout << (mil.count() * milliseconds::period::num /   milliseconds::period::den);  std::cout << " seconds.n";  return 0; } 

Produktion:

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

Ur

Et ur består af et startpunkt (eller epoke) og en tick rate. For eksempel kan et ur have en epoke på 22. februar 1996 og tikke hvert sekund. C++ definerer tre urtyper:

    system_ur-Det er den aktuelle tid i henhold til systemet (almindeligt ur, som vi ser på computerens værktøjslinje). Det er skrevet som- std::chrono::system_clockkonstant_ur-Det er et monotont ur, der aldrig vil blive justeret. Det går med en ensartet hastighed. Det er skrevet som- std::chrono::steady_clockhøj_opløsningsur- Det giver den mindst mulige afkrydsningsperiode. Det er skrevet som-std::chrono::high_resolution_clock

Tidspunkt

Et time_point-objekt udtrykker et tidspunkt i forhold til et urs epoke. Internt gemmer objektet et objekt af en varighedstype og bruger urtypen som reference for dets epoke.  

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 < 2) return n;  return fibonacci(n-1) + fibonacci(n-2); } int main() {  // Using time point and system_clock  std::chrono::time_point<std::chrono::system_clock> start end;  start = std::chrono::system_clock::now();  std::cout << "f(42) = " << fibonacci(42) << 'n';  end = std::chrono::system_clock::now();  std::chrono::duration<double> elapsed_seconds = end - start;  std::time_t end_time = std::chrono::system_clock::to_time_t(end);  std::cout << "finished computation at " << std::ctime(&end_time)  << "elapsed time: " << elapsed_seconds.count() << "sn"; } 

Produktion:

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

Det er vigtigt at bemærke, at præcisionen og nøjagtigheden af ​​urene og varigheder leveret afkan variere afhængigt af systemet og platformen, og det er altid en god idé at tjekke dokumentationen til din platform for mere information.

webbrowserindstillinger

Opret quiz