- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
最佳答案
我对此做了一些调查。它看起来像 __gcd
函数是定义的私有(private)辅助函数 in the libstdc++ implementation of the <algorithm>
header (line 1503) .它仅由 std::rotate
在内部使用函数(第 1610 行)。它(可能)从未打算在库实现之外直接使用。因为它特定于 libstdc++,所以不能保证通过 g++ 以外的编译器使用此函数。从这个意义上说,你可以想到 std::__gcd
用作(记录不详的)内部助手,仅适用于某些 C++ 编译器。
(有趣的事实:我第一次注意到 __gcd
的存在是因为这里有一个现已删除的问题,询问它为什么不一致地处理负输入。事实证明它并不是真正设计用于处理负数,因为 libstdc++ 实现仅在输入为非负的情况下使用它。这是使用未记录的内部辅助函数的风险之一!)
另一方面,std::gcd
是在 C++17 中引入的标准 C++ 库函数。这意味着任何 C++17 兼容的编译器都将支持 std::gcd
, 所以如果你有一个兼容 C++17 的编译器,最好使用这个选项。
对于C++14或更低版本,你可以简单地实现你自己版本的GCD功能。欧几里得算法非常易于编写代码并且运行速度极快。
关于c++ - std::__gcd 和 std::gcd 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68772236/
最近了解到一个c++的特殊函数:__gcd(A,B)。这将返回 A 和 B 的最大公约数。 #include #include using namespace std; main() { cout<<
Many websites和 questions on Stack Overflow引用名为 std::__gcd 的函数。这个函数和 std::gcd 有什么区别? 最佳答案 我对此做了一些调查。它
Many websites和 questions on Stack Overflow引用名为 std::__gcd 的函数。这个函数和 std::gcd 有什么区别? 最佳答案 我对此做了一些调查。它
我是一名优秀的程序员,十分优秀!