c++ - <chrono> 和 <ctime> 有什么区别?

标签 c++ c++11 c++-chrono ctime

为了测量函数的执行时间,我可以同时使用两者。但是使用 <chrono> 有什么区别呢?和 <ctime> ?我应该更喜欢一个而不是另一个吗?

最佳答案

ctime 是一个 C 风格的头文件,它很旧,类型不安全并且不如 chrono 准确。 chrono 是 C++ 中的首选选项;它是一个当代的 C++ 头文件,它是类型安全的,在我们的硬件允许的情况下是准确的,它具有扩展的功能,更重要的是,它遵循 C++(而不是 C)逻辑,因此某些事情会更自然/更有表现力等等我们可能期望它知道许多当代语言特性(线程、异常等)——我们不能对 ctime 做出相同的假设。

也就是说,ctime(甚至是 time.h)仍然有几个用例,例如当我们需要与某些 C API 对话时,或者当我们依赖旧代码库时,或者当我们使用某些遵循不同类型逻辑的库时。 C++ 被设计成务实的,而不是在任何方面都是“纯粹的”;这就是为什么 ctime 和各种过时的 header 、语法和语言功能仍然存在的原因,即使不鼓励程序员使用它们。

关于c++ - <chrono> 和 <ctime> 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36095323/

相关文章:

c++ - 使用 OpenGL 渲染 VAAPI 表面?

c++ - GDB:如何从子对象打印/调用父函数?

c++ - 如何在 C++11 中将 std::max 与自定义比较器一起使用?

c++ - 具有空定义的模板特化

c++ - 在 ODEINT + THRUST 观察器中,接收到表达式必须是可修改左值的错误

android - 在 Qt android 中打开另一个窗体

c++ - 新的 c++11 for 循环导致 : "error: ‘begin’ was not declared in this scope"

c++ - 递归取消引用指针

c++ - 上限 time_point 到运行时定义的持续时间