logo

Chrono in C++

ist ein C++-Header, der eine Sammlung von Typen und Funktionen für die Arbeit mit der Zeit bereitstellt. Es ist Teil der C++ Standard Template Library (STL) und in C++ 11 und späteren Versionen enthalten.

stellt drei Haupttypen von Uhren bereit: system_clock steady_clock und high_resolution_clock. Diese Uhren dienen der Zeitmessung auf verschiedene Weise.

system_clock stellt die systemweite Echtzeit-Wanduhr dar. Es wird durch die Zeitanpassungen des Systems beeinflusst.
steady_clock stellt eine monoton steigende Uhr dar, die von Änderungen der Systemzeit nicht beeinflusst wird.
high_resolution_clock ist die Uhr mit der kürzesten auf dem System verfügbaren Tickperiode.



Huffman-Codierungscode

Bietet außerdem eine Sammlung von Dauertypen, einschließlich Dauerdas zur Darstellung einer Zeitdauer verwendet werden kann. Rep ist der Darstellungstyp (z. B. int oder long) und Period ist das Verhältnis der Dauer (z. B. Nanosekunden oder Sekunden).
Zusätzlichstellt eine Sammlung von Zeitpunkttypen einschließlich time_point bereitdas zur Darstellung eines Zeitpunktes verwendet werden kann. Clock ist der Uhrentyp (z. B. system_clock) und Duration ist der Dauertyp (z. B. Sekunden).

Die Chrono-Bibliothek dient zur Verwaltung von Datum und Uhrzeit. Diese Bibliothek wurde entwickelt, um der Tatsache Rechnung zu tragen, dass Timer und Uhren auf verschiedenen Systemen unterschiedlich sein können, und um so die Präzision im Laufe der Zeit zu verbessern. Das Einzigartige an Chrono ist, dass es eine bietet Präzisionsneutrales Konzept durch Trennung von Dauer und Zeitpunkt (Timepoint) von bestimmten Uhren. chrono ist der Name eines Headers und auch eines Sub-Namespace: Alle Elemente in diesem Header (mit Ausnahme der common_type-Spezialisierungen) sind nicht direkt unter dem std-Namespace definiert (wie die meisten Standardbibliotheken), sondern unter dem std::chrono-Namespace . Die Elemente in diesem Header beschäftigen sich mit der Zeit. Dies geschieht im Wesentlichen durch drei Konzepte:

Dauer

Ein Dauerobjekt drückt eine Zeitspanne durch eine Zählung aus, beispielsweise eine Minute, zwei Stunden oder zehn Millisekunden. Beispielsweise könnte „42 Sekunden“ durch eine Dauer dargestellt werden, die aus 42 Ticks einer Zeiteinheit von 1 Sekunde besteht. 

Java-Nummer zum String
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; } 

Ausgabe:

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

Uhr

Eine Uhr besteht aus einem Startpunkt (oder einer Epoche) und einer Tickrate. Beispielsweise kann eine Uhr den 22. Februar 1996 als Epoche haben und jede Sekunde ticken. C++ definiert drei Uhrentypen:

    system_clock-Es ist die aktuelle Uhrzeit gemäß dem System (normale Uhr, die wir in der Symbolleiste des Computers sehen). Es wird als std::chrono::system_clock geschriebensteady_clock-Es ist eine monotone Uhr, die niemals angepasst wird. Sie läuft mit einem gleichmäßigen Takt. Es wird als std::chrono::steady_clock geschriebenhigh_resolution_clock- Es bietet die kleinstmögliche Tick-Periode. Es wird als-std::chrono::high_resolution_clock geschrieben

Zeitpunkt

Ein time_point-Objekt drückt einen Zeitpunkt relativ zur Epoche einer Uhr aus. Intern speichert das Objekt ein Objekt eines Dauertyps und verwendet den Clock-Typ als Referenz für seine Epoche.  

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

Ausgabe:

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

Es ist wichtig zu beachten, dass die Präzision und Genauigkeit der von bereitgestellten Uhren und Zeitdauernkann je nach System und Plattform variieren und es ist immer eine gute Idee, die Dokumentation Ihrer Plattform auf weitere Informationen zu prüfen.

10 ml zu Unzen

Quiz erstellen