gpt4 book ai didi

c++ - 确定计时持续时间的一部分

转载 作者:太空狗 更新时间:2023-10-29 20:34:03 26 4
gpt4 key购买 nike

我想计算一个持续时间的哪一部分包含在另一个持续时间中。有 standard implementation for integers (6) ,但它为我提供了以下示例的 0(由于整数除法):

auto s = 1s;
auto ms = 200ms;
std::cout << ms / s; // 0, but I want 0.2 here

是否有更优雅和通用的方法来计算这样的值而不是以下 ugly solution

#include <chrono>
#include <iostream>

int main()
{
using namespace std::chrono_literals;

auto s = 1s;
auto ms = 200ms;

const auto part = 1. * ms.count() / std::chrono::duration_cast<decltype(ms)>(s).count();

std::cout << part << '\n';
}

一个聪明的方法是使用1。/(s/ms);,但它不适用于任何持续时间类型。

最佳答案

使用基于double 的持续时间。

#include <chrono>
#include <iostream>

int main()
{
using namespace std::chrono_literals;
using my_seconds = std::chrono::duration<double>;

my_seconds s = 1s;
my_seconds ms = 200ms;

std::cout << ms / s << '\n';
}

关于c++ - 确定计时持续时间的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51262545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com