Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
3 / 3 / 0
Регистрация: 12.07.2022
Сообщений: 216

Не очень понятен std::chrono::duration

12.02.2025, 19:39. Показов 4062. Ответов 22

Студворк — интернет-сервис помощи студентам
Вчитывался в доки, но до конца не понял.

https://cplusplus.com/reference/chrono/duration/
https://en.cppreference.com/w/cpp/chrono/duration
И в Галовице - тоже как-то мутновато.

Написано что хранится в виде 2 объектов: кол-ва тиков и единичного отрезка времени, то есть хранит кол-во этих отрезков. И что по умолчанию этот отрезок - секунда.

Допустим нужно точно замерить время между 2 событиями. Пишу:

C++
1
2
3
4
auto st = std::chrono::steady_clock::now();
// тут измеряемый код
auto fn = std::chrono::steady_clock::now();
auto d = fn - st;
d это и будет duration, это понятно. И чтобы узнать, сколько это в миллисекундах (например), надо его сконвертить в них:

C++
1
long long ms = std::chrono::duration_cast<std::chrono::milliseconds>(d).count()
Это работает, вопрос не в этом.

По идее, сам отрезок между 2-мя моментами должен храниться в каких-то абсолютных единицах, с максимальной точностью которую даёт система. И только при конвертации мы задаём нужную точность (мс, с, мин и т. д.). Вопросы такие:

1) Секунда никак не может быть единичным отрезком по умолчанию, иначе бы не получалось точно замерять разность между моментами (а её можно замерять даже в мкс и нс). Почему написано именно секунда?
2) Какой точно тип будет иметь d из примера? Какой у неё будет единичный отрезок времени? Написано что std::chrono::duration это шаблон с 2 параметрами (и один из них обязательный). Но если просто объявить
C++
1
std::chrono::duration d = fn - st;
- тоже работает, непонятно почему.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.02.2025, 19:39
Ответы с готовыми решениями:

Chrono::duration
Объясните как создать? std::chrono::duration определенной длительности, для сравнения std::chrono::duration&lt;std::chrono::second&gt;...

Как привести тип time_point<std::filesystem::__file_clock, [.]>к типу const time_point<std::chrono::_V2::system_clock
Если использовать std::experimental::filesystem::v1 то можна сделать вот так : std::chrono::system_clock::time_point Point =...

Std::chrono, частично не работает в VS 2013
Ребята, у кого работает код? #include &lt;chrono&gt; #include &lt;iostream&gt; int main() { typedef...

22
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6296 / 3018 / 1053
Регистрация: 01.06.2021
Сообщений: 11,447
13.02.2025, 13:27
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Наталья8 Посмотреть сообщение
high_resolution_clock
вообще, для точных замеров это правильное решение. Но я сперва посоветовал бы проверить еще is_steady, и если false, то использовать эту функцию не нужно, лучше выбирать steady_clock
0
Нарушитель
623 / 381 / 67
Регистрация: 09.03.2016
Сообщений: 4,217
13.02.2025, 13:36

Не по теме:

Вспомнилась такая, приближённая к чему то аналогия....
Работал я в перестройку телемастером.
Надыбал я такой прибор.
Там после запятой, было много цифер.
Нуу , точность очень высокая.
Но вот беда... При нагреве/ изменении температуры того прибора, эти все циферы начинали бежать.
Т.Е показания сильно зависели от температуры окр. среды.
Сильно бесит, когда столько много цифер и все они пизд*****.


На процессоре, одно ядро, единовременно выполняет одну команду.
Например двухядерный процессор.
И куча потоков в виндовс. (фоновые программы)
Каким образом выполняються потоки? А таким... Обходит поочерёдно.
Вот и меряй время выполнения кода.
0
3 / 3 / 0
Регистрация: 12.07.2022
Сообщений: 216
13.02.2025, 16:10  [ТС]
Наталья8, ну это понятно Но после нескольких замеров видно, насколько оно "гуляет" из-за других процессов. И общая картина ясна. И когда меряешь какой-то нагруженный участок - другие процессы обычно влияют слабо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.02.2025, 16:10

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

Поиск в std::vector < std::pair<UInt32, std::string> >
Подскажите пожалуйста, как осуществить поиск элемента в std::vector &lt; std::pair&lt;UInt32, std::string&gt; &gt; по ключу, а...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

STL std::set, std::pair, std::make_pair
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru