system_clock reprezintă ceasul de perete în timp real pentru întregul sistem. Este afectat de ajustările de timp ale sistemului.
steady_clock reprezintă un ceas care crește monoton, care nu este afectat de modificările orei sistemului.
high_resolution_clock este ceasul cu cea mai scurtă perioadă de bifare disponibilă pe sistem.
forma completă a i d e
În plus
Biblioteca Chrono este folosită pentru a trata data și ora. Această bibliotecă a fost concepută pentru a face față faptului că temporizatoarele și ceasurile pot fi diferite pe sisteme diferite și astfel să se îmbunătățească în timp în ceea ce privește precizia. Lucrul unic despre chrono este că oferă o concept neutru de precizie prin separarea duratei și a punctului de timp (punct de timp) de ceasuri specifice. chrono este numele unui antet și, de asemenea, al unui sub-namespace: Toate elementele din acest antet (cu excepția specializărilor common_type) nu sunt definite direct sub spațiul de nume std (ca majoritatea bibliotecii standard), ci sub spatiu de nume std::chrono . Elementele din acest antet se ocupă de timp. Acest lucru se realizează în principal prin intermediul a trei concepte:
Durată
Un obiect de durată exprimă un interval de timp prin intermediul unui număr, cum ar fi un minut două ore sau zece milisecunde. De exemplu, „42 de secunde” ar putea fi reprezentat de o durată constând din 42 de tick-uri ale unei unități de timp de 1 secundă.
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; }
Ieșire:
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.
Ceas
Un ceas constă dintr-un punct de plecare (sau o epocă) și o rată de trecere. De exemplu, un ceas poate avea o epocă de 22 februarie 1996 și poate bifa în fiecare secundă. C++ definește trei tipuri de ceas:
algoritm de programare round robin
Punct de timp
Un obiect time_point exprimă un punct în timp relativ la epoca unui ceas. Intern obiectul stochează un obiect de tip durată și folosește tipul Ceas ca referință pentru epoca sa.
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"; }
Ieșire:
f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s
Este important de reținut că precizia și acuratețea ceasurilor și duratele oferite de
algoritm de sortare prin inserare
Creați un test