函式模板
<valarray>

std::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);
計算 valarray 元素的冪
返回一個valarray,其中包含對所有元素執行冪運算的結果,順序與原序列相同。計算結果為 xy 次方 (xy)。

該函式對 xy 中的每個元素呼叫一次(未加限定的)pow;如果其中一個是單個 T 值,則該值將用於所有呼叫。

此函式過載了 cmath 的 pow

引數

x
valarray 或具有冪運算基數的元素。
y
valarray 或具有冪運算指數的元素。
如果兩個引數都是 valarray 物件且它們的大小不匹配,則行為未定義。

返回值

一個 valarray 物件,其中包含 xy 次方的值。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 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


另見