std::chrono::nanoseconds
和 std::chrono::seconds
是 C++ 标准库中的时间类型,用于表示纳秒和秒的时间单位。
std::chrono::nanoseconds
是一个表示纳秒的时间单位,可以用于精确表示较小的时间间隔。它是 std::chrono
命名空间中的一个类型别名,实际上是 std::chrono::duration
模板的一个特化版本。下面是一个示例,展示如何使用 std::chrono::nanoseconds
:
#include <chrono>
#include <iostream>
int main() {
std::chrono::nanoseconds ns(1234567890);
// 获取总的纳秒数
long long total_ns = ns.count();
std::cout << "Total nanoseconds: " << total_ns << std::endl;
// 转换为秒
std::chrono::seconds sec = std::chrono::duration_cast<std::chrono::seconds>(ns);
std::cout << "Seconds: " << sec.count() << std::endl;
return 0;
}
在上面的示例中,首先创建了一个 std::chrono::nanoseconds
对象 ns
,表示了一个时间间隔为 1234567890 纳秒。然后,使用 count()
函数获取总的纳秒数,并打印输出。接下来,使用 duration_cast
函数将纳秒转换为秒,得到一个 std::chrono::seconds
对象 sec
,并使用 count()
函数获取秒数,并打印输出。
std::chrono::seconds
是一个表示秒的时间单位,用于表示较大的时间间隔。同样,它也是 std::chrono
命名空间中的一个类型别名,实际上也是 std::chrono::duration
模板的一个特化版本。下面是一个示例,展示如何使用 std::chrono::seconds
:
#include <chrono>
#include <iostream>
int main() {
std::chrono::seconds sec(60);
// 获取总的秒数
long long total_sec = sec.count();
std::cout << "Total seconds: " << total_sec << std::endl;
// 转换为纳秒
std::chrono::nanoseconds ns = std::chrono::duration_cast<std::chrono::nanoseconds>(sec);
std::cout << "Nanoseconds: " << ns.count() << std::endl;
return 0;
}
在上面的示例中,首先创建了一个 std::chrono::seconds
对象 sec
,表示了一个时间间隔为 60 秒。然后,使用 count()
函数获取总的秒数,并打印输出。接下来,使用 duration_cast
函数将秒转换为纳秒,得到一个 std::chrono::nanoseconds
对象 ns
,并使用 count()
函数获取纳秒数,并打印输出。
这些示例展示了如何使用 std::chrono::nanoseconds
和 std::chrono::seconds
来表示和操作时间间隔。你还可以使用其他 std::chrono
命名空间中的时间类型,如 std::chrono::microseconds
、std::chrono::milliseconds
、std::chrono::minutes
等,根据具体的需求选择适当的时间单位。