C++ valarray pow 函数模板

  • 定义和用法

    template<class T> valarray<T> pow (const valarray<T>& x, const valarray<T>& y);
    template<class T> valarray<T> pow (const valarray<T>& x, const T& y);
    template<class T> valarray<T> pow (const T& x, const valarray<T>& y);
    std::pow valarray元素的x的y方,返回一个valarray,其中包含对所有元素以相同顺序进行幂运算的结果。 将计算出的结果x提高到幂y(xy)。该函数对x和y中的每个元素调用一次pow(不限定)。 如果任何一个是单个T值,它将用于所有呼叫。此函数会使cmath的pow 重写。
  • 参数

    参数 描述
    x valarray或具有幂运算底数的元素。
    y valarray或具有幂运算指数的元素。
    如果两个参数都是valarray对象,并且它们的大小不匹配,则该行为是不确定的。
  • 返回值

    一个x值为y的幂的valarray对象。
  • 示例

    
    // pow valarray example
    #include <iostream>     // std::cout
    #include <cstddef>      // std::size_t
    #include <cmath>        // std::pow
    #include <valarray>     // std::valarray, std::pow
    
    int main ()
    {
      std::valarray<double> val (5);
      std::valarray<double> results;
    
      for (int i=0; i<5; ++i) val[i]=i+1;
      std::cout << "val:";
      for (std::size_t i=0; i<val.size(); ++i) std::cout << ' ' << val[i];
      std::cout << '\n';
    
      results = std::pow (val,val);
      std::cout << "val^val:";
      for (std::size_t i=0; i<results.size(); ++i) std::cout << ' ' << results[i];
      std::cout << '\n';
    
      results = std::pow (val,2.0);
      std::cout << "val^2:";
      for (std::size_t i=0; i<results.size(); ++i) std::cout << ' ' << results[i];
      std::cout << '\n';
    
      results = std::pow (2.0,val);
      std::cout << "2^val:";
      for (std::size_t i=0; i<results.size(); ++i) std::cout << ' ' << results[i];
      std::cout << '\n';
    
      return 0;
    }
    
    尝试一下
    输出
    
    val: 1 2 3 4 5
    val^val: 1 4 27 256 3125
    val^2: 1 4 9 16 25
    2^val: 2 4 8 16 32
    
  • 相关页面

    pow (cmath) 提升幂(函数)
    sqrt 计算valarray元素的平方根(函数模板)
    log 计算valarray元素的自然对数(函数模板)
    exp 计算valarray元素的指数(函数模板)