C++ 确定计时持续时间的部分
我想计算一个持续时间的哪个部分包含在另一个持续时间中。有,但对于以下示例,它给出了C++ 确定计时持续时间的部分,c++,chrono,C++,Chrono,我想计算一个持续时间的哪个部分包含在另一个持续时间中。有,但对于以下示例,它给出了0(由于整数除法): auto s = 1s; auto ms = 200ms; std::cout << ms / s; // 0, but I want 0.2 here auto s=1s; 自动ms=200ms; std::不能使用基于持续时间的double #include <chrono> #include <iostream> int main() {
0
(由于整数除法):
auto s = 1s;
auto ms = 200ms;
std::cout << ms / s; // 0, but I want 0.2 here
auto s=1s;
自动ms=200ms;
std::不能使用基于持续时间的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';
}
#包括
#包括
int main()
{
使用名称空间std::chrono_文本;
使用my_seconds=std::chrono::duration;
我的秒s=1s;
my_秒ms=200ms;
std::cout将旧类型与cast一起使用也有效std::chrono::duration_cast(ms)/s
。谢谢!@alexolute:ms
将隐式转换为my_seconds
,无需使用duration_cast
:my_seconds{ms}/s
。最好只为您希望强制截断的时间保留持续时间\u cast
。
#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';
}