为了测量功能的执行时间,我可以同时使用两者。但是使用<chrono>
和<ctime>
之间有什么区别?我应该更喜欢一个而不是另一个吗?
答案 0 :(得分:7)
ctime
是一个C风格的标题,它是旧的,不是类型安全的,不如chrono
准确。 chrono
是C ++中的首选选项;它是一个现代的C ++标题,它的类型安全,就像我们的硬件允许的那样准确,它具有扩展的功能,更重要的是,它遵循C ++(而不是C)逻辑,因此某些事物会更加自然/富有表现力,所以我们可能期望它知道许多当代语言特征(线程,异常等) - 我们不能对ctime
做出相同的假设。
尽管如此,ctime
(甚至time.h
)仍有几个用例,例如当我们需要与某些C API交谈时,或者当我们依赖旧的代码库时,或者当我们使用一些遵循不同逻辑的库时。 C ++旨在务实,不要在任何方面“纯粹”;这就是为什么ctime
和各种过时的标题,语法和语言特征仍然存在的原因,即使程序员不鼓励使用它们。
答案 1 :(得分:5)
response
是老派。它现在唯一的用途是作为从时间点获取日期的垃圾解决方案(因为c ++没有足够的标准日期时间库)。对于一般时间需求,请使用ctime
。如果您需要将chrono
转换为日期/时间,请使用system_clock::time_point
。