Для измерения времени выполнения функции, я могу использовать оба. Но в чем разница между использованием <chrono>
и <ctime>
? Должен ли я предпочесть один вместо другого?В чем разница между <chrono> и <ctime>?
ответ
ctime
- это заголовок в стиле C, он старый, не безопасный тип и не такой точный, как chrono
. chrono
- предпочтительный вариант в C++; это современный C++-заголовок, он безопасен по типу, так же точно, как позволяет наше оборудование, имеет расширенную функциональность и, что более важно, он следует за логикой C++ (а не с C), чтобы некоторые вещи были более естественными/выразительными с ним и так что мы можем ожидать, что он будет знать о многих современных языковых функциях (потоках, исключениях и т. д.) - мы не можем делать те же предположения для ctime
.
Тем не менее, существует еще несколько прецедентов для ctime
(или даже time.h
), например. когда нам нужно поговорить с некоторыми API-интерфейсами API или когда мы полагаемся на старые кодовые базы или когда мы используем библиотеку, которая следует за другой логикой. C++ призван быть прагматичным и не быть «чистым» во всех отношениях; поэтому ctime
и всевозможные устаревшие заголовки, синтаксисы и языковые функции все еще существуют, даже если программистам не рекомендуется использовать их.
ctime
старая школа. Его единственное использование теперь - это решение для получения дат от временных точек (поскольку C++ не имеет адекватной стандартной библиотеки datetime). Для общих нужд времени используйте chrono
. Если вам нужно включить system_clock::time_point
в дату/время, используйте ctime
.
Просто интересно, почему 'ctime' - это дерьмовое решение? –
Лучше, чем 'ctime' превратить turn' system_clock :: time_point' в структуру даты/времени поля: http://howardhinnant.github.io/date_v2.html :-) –
@YeeLiu: 'ctime' is not «безопасный тип». Например, 'difftime' возвращает' double' вместо 'duration'. И 'tm.tm_sec' имеет тип' int' вместо типа 'seconds'. Это отсутствие безопасности типа означает, что компилятор не может проверить логические ошибки, которые (например) выполняют нелогичную алгебру в единицах времени. –
- 1. В чем разница между << и + =?
- 2. В чем разница между <и << в C?
- 3. Разница между <% и <% =
- 4. <? Php, <?, <? =, В чем разница?
- 5. В чем разница между '<>' и '! ='
- 6. В чем разница между «<>» и «! =»?
- 7. В ASP.Net, в чем разница между <% = и <% #
- 8. В чем разница между «<%» и «<% =» в встроенном VBScript?
- 9. В чем разница между <% # и <% = в ASP.NET MVC?
- 10. В чем разница между <% и <% i в JSP?
- 11. В чем разница между <%: и <% = в ASP.NET MVC?
- 12. В ASP.NET MVC, в чем разница между <% = и <% :?
- 13. разница между <%: и <% =
- 14. В чем разница между <%=%> и <%#%>
- 15. В чем разница между <% %> и <%=%>?
- 16. В чем разница между <%# %> и <%= %>?
- 17. В чем разница между <?php ?> и <? ?>
- 18. В чем разница между потоком «<<» и Write
- 19. В чем разница между открывающими тегами <% # и <% =?
- 20. Разница между <- и << -
- 21. чем разница между «\ п» и << станд ::
- 22. Разница между/* <! [CDATA [*/и // <! [CDATA [
- 23. Рельсы: разница между <% = и <% ==?
- 24. В doxygen, в чем разница между /// <& ///?
- 25. Разница между + и << в рубине
- 26. SBT, разница между << = и: =
- 27. В чем разница между =, <-, <= In haskell?
- 28. В чем разница между <%: и <% = и <% # в aspx?
- 29. разница между << s.str() и << s.rdbuf()
- 30. Разница между <? Php и <?
Секунды против наносекунды? Современная юзабилити против древней полуугодности? –
Огромное изменение идеологии после 40-летнего использования. – user4581301