首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::ratio_add

Defined in header <ratio>

?

?

template< class R1, class R2 > using ratio_add = /* see below */;

?

?

别名模板std::ratio_add表示添加两个由std::ratio专门性R1R2...

结果是std::ratio专业化std::ratio<U, V>,以至于Num == R1::num * R2::den + R2::num * R1::denDenom == R1::den * R2::den%28计算,没有算术溢出%29,Ustd::ratio<Num, Denom>::numVstd::ratio<Num, Denom>::den...

注记

如果UV不能在std::intmax_t,这个节目的形式不太好。如果NumDenom不能在std::intmax_t,除非实现产生正确的值,否则程序的格式是错误的。UV...

上述定义要求std::ratio_add<R1, R2>已降至最低;例如,std::ratio_add<std::ratio<1, 3>,std::ratio<1, 6>>是与std::ratio<1, 2>...

二次

代码语言:javascript
复制
#include <iostream>
#include <ratio>
 
int main()
{
    typedef std::ratio<2, 3> two_third;
    typedef std::ratio<1, 6> one_sixth;
 
    typedef std::ratio_add<two_third, one_sixth> sum;
    std::cout << "2/3 + 1/6 = " << sum::num << '/' << sum::den << '\n';
}

二次

产出:

二次

代码语言:javascript
复制
2/3 + 1/6 = 5/6

二次

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com