📅  最后修改于: 2023-12-03 15:29:54.141000             🧑  作者: Mango
在C++中,使用valarray类型对一组数进行操作非常方便。其中,valarray提供了pow()函数,可以对valarray数组中的每个元素进行指数运算。下面是pow()函数的定义:
template <class T> valarray<T> pow(const valarray<T>& base,
const valarray<T>& exp);
其中,base表示底数的valarray数组,exp表示指数的valarray数组。这个函数返回的是一个新的valarray数组,其中每个元素都是底数的exp次方。
除了以上两个参数,我们还可以指定一个可选参数:
template <class T> valarray<T> pow(const valarray<T>& base,
const T& exp);
这个函数与上面的函数很类似,不同之处在于可以指定一个标量的指数,而不是一个valarray数组。这个函数返回的是一个新的valarray数组,其中每个元素都是底数的exp次方。
下面我们来看一个例子,演示如何使用pow()函数:
#include <iostream>
#include <valarray>
using namespace std;
int main()
{
valarray<double> a = { 1, 2, 3, 4, 5 };
valarray<double> b = { 0.5, 1, 1.5, 2, 2.5 };
// 计算a的每个元素的b对数
valarray<double> c = pow(a, b);
// 输出c
for (int i = 0; i < c.size(); i++) {
cout << c[i] << " ";
}
cout << endl;
return 0;
}
在这个例子中,我们创建了两个valarray数组a和b,分别表示底数和指数。然后,我们使用pow()函数计算了a的每个元素的指数运算结果,将结果存储在valarray数组c中。
最后,我们遍历数组c,输出每个元素。运行以上代码,输出如下:
1 2 5.19615 16 55.9017
可以看到,c中的每个元素都是a的相应元素的b次方。