РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
552 of 815 menu

Класс duration

Класс duration из заголовочного файла <chrono> представляет собой интервал времени. Он позволяет хранить и обрабатывать временные промежутки с различной точностью: от наносекунд до часов. Первым параметром шаблона задается тип для хранения количества тиков, а вторым - тип периода, который определяет длительность одного тика в секундах.

Класс duration активно используется для измерения времени выполнения кода, организации задержек и выполнения арифметических операций над временными интервалами.

Синтаксис

std::chrono::duration<Rep, Period>

Здесь Rep - тип данных для хранения количества тиков (например, int или double), а Period - тип периода, определяющий длительность одного тика (например, std::ratio<1, 1000> для миллисекунд).

Пример

Давайте создадим объект duration, представляющий 5 секунд, и выведем количество тиков:

#include <iostream> #include <chrono> using namespace std; using namespace std::chrono; int main() { duration<int, ratio<1>> d(5); cout << d.count() << endl; return 0; }

Результат выполнения кода:

5

Пример

Давайте создадим 2 секунды и 500 миллисекунд, а затем сложим их и выведем результат в миллисекундах:

#include <iostream> #include <chrono> using namespace std; using namespace std::chrono; int main() { seconds sec(2); milliseconds ms(500); auto res = sec + ms; cout << duration_cast<milliseconds>(res).count() << endl; return 0; }

Результат выполнения кода:

2500

Пример

Давайте измерим время выполнения простого цикла с помощью класса duration:

#include <iostream> #include <chrono> using namespace std; using namespace std::chrono; int main() { auto start = steady_clock::now(); for (int i = 0; i < 1000000; i++) { int x = i * 2; } auto end = steady_clock::now(); auto res = duration_cast<microseconds>(end - start); cout << res.count() << endl; return 0; }

Результат выполнения кода (значение может отличаться в зависимости от производительности):

1523

Смотрите также

  • метод count,
    который возвращает количество тиков
  • функция duration_cast,
    которая преобразует один duration в другой
  • класс seconds,
    который представляет секунды
  • класс milliseconds,
    который представляет миллисекунды
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить