【问题标题】:STL's power in C++STL 在 C++ 中的强大功能
【发布时间】:2012-02-23 07:12:50
【问题描述】:

我在 numeric 标头中找到了 STL 的 power,它在 O(log(a)) 中计算 power(TYPE T, Integer a),但是当我编写它并使用 g++ 编译它时,它给了我编译错误并说error: ‘power’ was not declared in this scope。为什么会发生?我知道编写以 O(log(N)) 计算的幂函数很容易买到我想知道 C++ 的标准库中是否有现成的函数。 C++11标准中没有增加任何特性吗?

【问题讨论】:

  • 也许你想使用 std::pow,它是 C++ 的一部分。

标签: c++ algorithm stl c++11 numeric


【解决方案1】:

不,C++11 中没有 std::power 或类似算法。

【讨论】:

    【解决方案2】:

    从您链接的页面:

    这个函数是一个 SGI 扩展;它不是 C++ 标准的一部分。

    虽然 SGI 文档通常很有帮助,但请注意它包含与标准的若干偏差。

    【讨论】:

      【解决方案3】:

      <cmath> 标头中,标准数字类型有几个重载。您需要模板版本有什么特殊原因吗?

      【讨论】:

      • 您也可以在问题中添加 cmets。
      • 当然,我认为他可以使用的幂函数也可能是有用的答案。
      • @PlasmaHH:例如,如果您有一个类矩阵并在其上定义了 multiple(*) 运算符,如果您有一个矩阵 A,则可以仅使用 log( N) 乘法。
      【解决方案4】:

      该函数在 SGI 的原始 STL 中,但不在标准库中。

      在 GNU 库中,它可以作为扩展使用,__gnu_cxx::power in <ext/numeric>

      【讨论】:

      • @Farzam:包含标题,并调用函数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多