В чем разница между <chrono> и <ctime>?

Для измерения времени выполнения функции я могу использовать оба. Но какая разница между использованием <chrono> а также <ctime>? Должен ли я предпочесть одно вместо другого?

2 ответа

Решение

ctime заголовок в стиле C, он старый, не безопасный и не такой точный, как chrono, chrono является предпочтительным вариантом в C++; это современный заголовок C++, он безопасен от типов, настолько точен, насколько позволяет наше оборудование, имеет расширенную функциональность и, что более важно, он следует логике C++ (а не C), так что некоторые вещи будут более естественными / выразительными с его помощью, и так что мы можем ожидать, что он осознает многие особенности современного языка (потоки, исключения и т. д.) - мы не можем делать такие же предположения для ctime,

Тем не менее, есть еще несколько вариантов использования для ctime (или даже time.h), например, когда нам нужно поговорить с некоторым C API, или когда мы полагаемся на старые кодовые базы, или когда мы используем какую-то библиотеку, которая следует другой логике. C++ разработан, чтобы быть прагматичным и не быть "чистым" в любом отношении; вот почему ctime и все виды устаревших заголовков, синтаксисов и языковых функций все еще там, даже если программисты отговаривают их использовать.

ctime это старая школа Теперь он используется только как дерьмовое решение для получения дат из временных точек (поскольку C++ не имеет адекватной стандартной библиотеки datetime). Для общих нужд времени используйте chrono, Если вам нужно включить system_clock::time_point в дату / время, используйте ctime,

Другие вопросы по тегам