stl算法库中的内置__gcd方法是否在其实现中使用Euclid算法?
答案 0 :(得分:2)
源代码似乎是
/**
* This is a helper function for the rotate algorithm specialized on RAIs.
* It returns the greatest common divisor of two integer values.
*/
template<typename _EuclideanRingElement>
_EuclideanRingElement
__gcd(_EuclideanRingElement __m, _EuclideanRingElement __n)
{
while (__n != 0)
{
_EuclideanRingElement __t = __m % __n;
__m = __n;
__n = __t;
}
return __m;
}
是的,它确实使用欧几里得算法。
编辑:我误解了这个问题,这是g ++ 4.9.1标题中的实现。