logo

Chrono на C++

це заголовок C++, який надає набір типів і функцій для роботи з часом. Це частина стандартної бібліотеки шаблонів C++ (STL) і входить до C++11 і пізніших версій.

забезпечує три основні типи годинника: системний годинник steady_clock і high_resolution_clock. Ці годинники використовуються для вимірювання часу різними способами.

system_clock представляє загальносистемний настінний годинник реального часу. На це впливає налаштування часу системи.
steady_clock представляє монотонно зростаючий годинник, на який не впливають зміни системного часу.
high_resolution_clock — це годинник із найкоротшим доступним у системі періодом такту.



приклад списку в java

також надає колекцію типів тривалості, включаючи тривалістьякий можна використовувати для представлення тривалості часу. Rep — це тип представлення (наприклад, int або long), а Period — це відношення тривалості (наприклад, наносекунди або секунди).
Додатковонадає набір типів часових точок, включаючи time_pointякий можна використовувати для представлення моменту часу. Clock — це тип годинника (наприклад, system_clock), а Duration — тип тривалості (наприклад, секунди).

Бібліотека Chrono використовується для роботи з датою та часом. Цю бібліотеку було розроблено, щоб врахувати той факт, що таймери та годинники можуть відрізнятися в різних системах, і, таким чином, з часом покращувати точність. Унікальність хроно полягає в тому, що він забезпечує a концепція нейтральної точності, відокремлюючи тривалість і момент часу (точку часу) від конкретних годинників. chrono — це назва заголовка, а також підпростору імен: усі елементи в цьому заголовку (крім спеціалізацій common_type) не визначені безпосередньо в просторі імен std (як більшість стандартної бібліотеки), а під простір імен std::chrono . Елементи в цьому заголовку стосуються часу. Це робиться в основному за допомогою трьох концепцій:

Тривалість

список держав

Об’єкт тривалості виражає проміжок часу за допомогою відліку, наприклад, хвилина, дві години або десять мілісекунд. Наприклад, «42 секунди» можуть бути представлені тривалістю, яка складається з 42 тактів одиниці часу в 1 секунду. 

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

Вихід:

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

Годинник

Годинник складається з початкової точки (або епохи) і тактової частоти. Наприклад, годинник може мати епоху 22 лютого 1996 року і цокати щосекунди. C++ визначає три типи годинника:

    системний_годинник- Це поточний час відповідно до системи (звичайний годинник, який ми бачимо на панелі інструментів комп'ютера). Він записується як- std::chrono::system_clocksteady_clock-Це монотонний годинник, який ніколи не буде налаштований. Він працює з однаковою швидкістю. Він записується як- std::chrono::steady_clockгодинник_високої_роздільності- Забезпечує найменший можливий період тику. Він записується як-std::chrono::high_resolution_clock

Точка часу

Об’єкт time_point виражає момент часу відносно епохи годинника. Внутрішньо об’єкт зберігає об’єкт типу тривалості та використовує тип Clock як посилання на свою епоху.  

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

Вихід:

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

Важливо відзначити, що точність і точність годинників і тривалості, наданіможе відрізнятися залежно від системи та платформи, тому завжди корисно перевірити документацію вашої платформи для отримання додаткової інформації.

перевертання рядка в java

Створіть вікторину