Con*_*uit 2 c++ optimization overloading type-conversion
我正在创建一个补充的数学函数库,用于我的程序,并希望实现一个gcd函数.我可能经常使用此功能,因此优化非常重要.
我想知道,就优化而言,对于不同的整数类型实现几个gcd重载是否有任何意义.如图:
int gcd(const int lhs, const int rhs);
long gcd(const long lhs, const long rhs);
long long gcd(const long long lhs, const long long rhs);
Run Code Online (Sandbox Code Playgroud)
在整数类型之间进行转换时是否存在固有成本,或者我可以实现该long long版本并将其称为"足够好"?
嗯,首先,你可以模板化它:
template <typename T>
T gcd(const T lhs, const T rhs);
Run Code Online (Sandbox Code Playgroud)
gcd<int>(a, b)如果您的主要关注点只是代码重复,请致电或您需要的任何类型.
也就是说,虽然我怀疑整体类型转换会出现在分析中,但这是你应该以最方便的方式编写的那种东西,并且担心在实际需要优化它时优化它.
| 归档时间: |
|
| 查看次数: |
81 次 |
| 最近记录: |