logo

Chrono en C++

est un en-tête C++ qui fournit une collection de types et de fonctions pour fonctionner avec le temps. Il fait partie de la bibliothèque de modèles standard C++ (STL) et est inclus dans C++11 et les versions ultérieures.

fournit trois principaux types d'horloges : system_clock steady_clock et high_resolution_clock. Ces horloges sont utilisées pour mesurer le temps de différentes manières.

system_clock représente l'horloge murale en temps réel à l'échelle du système. Il est affecté par les ajustements horaires du système.
steady_clock représente une horloge à augmentation monotone qui n'est pas affectée par les modifications apportées à l'heure du système.
high_resolution_clock est l'horloge avec la période de tick la plus courte disponible sur le système.



essayez le bloc catch en java

fournit également une collection de types de durée, y compris la duréequi peut être utilisé pour représenter une durée. Rep est le type de représentation (comme int ou long) et Period est le rapport de la durée (comme les nanosecondes ou les secondes).
En plusfournit une collection de types de points temporels, notamment time_pointqui peut être utilisé pour représenter un moment donné. Clock est le type d'horloge (tel que system_clock) et Duration est le type de durée (tel que secondes)

La bibliothèque Chrono est utilisée pour gérer la date et l'heure. Cette bibliothèque a été conçue pour gérer le fait que les minuteries et les horloges peuvent être différentes selon les systèmes et ainsi s'améliorer au fil du temps en termes de précision. La particularité du chrono est qu'il fournit un concept neutre en termes de précision en séparant la durée et le moment (timepoint) des horloges spécifiques. chrono est le nom d'un en-tête et aussi d'un sous-espace de noms : Tous les éléments de cet en-tête (sauf les spécialisations common_type) ne sont pas définis directement sous l'espace de noms std (comme la plupart des bibliothèques standards) mais sous le std :: espace de noms chrono . Les éléments de cet en-tête traitent du temps. Cela se fait principalement au moyen de trois concepts :

Durée

Un objet de durée exprime une période de temps au moyen d'un décompte comme une minute, deux heures ou dix millisecondes. Par exemple, « 42 secondes » pourrait être représenté par une durée composée de 42 ticks d'une unité de temps d'une seconde. 

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

Sortir:

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

Horloge

Une horloge se compose d’un point de départ (ou époque) et d’un tick rate. Par exemple, une horloge peut avoir une époque du 22 février 1996 et un tic-tac toutes les secondes. C++ définit trois types d'horloge :

à la méthode de chaîne Java
    horloge_système-C'est l'heure actuelle selon le système (horloge régulière que l'on voit sur la barre d'outils de l'ordinateur). Il s'écrit comme-std::chrono::system_clockstable_clock-C'est une horloge monotone qui ne sera jamais ajustée. Elle va à une vitesse uniforme. Il s'écrit comme-std::chrono::steady_clockhorloge_haute_résolution- Il fournit la période de tick la plus courte possible. Il est écrit comme-std::chrono::high_resolution_clock

Point temporel

Un objet time_point exprime un point dans le temps par rapport à l’époque d’une horloge. En interne, l'objet stocke un objet d'un type durée et utilise le type Clock comme référence pour son époque.  

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

Sortir:

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

Il est important de noter que la précision et l'exactitude des horloges et des durées fournies parpeut varier en fonction du système et de la plate-forme et c'est toujours une bonne idée de consulter la documentation de votre plate-forme pour plus d'informations.

moncricketlive

Créer un quiz