C++ Valarray::sqrt() 函数



C++ Valarray::sqrt() 函数用于确定 valarray 中每个元素值的平方根。此函数会为每个元素调用一次 cmath 的 sqrt() 函数。它接受一个非负数作为输入,并输出输入值的平方根。

在 C++ 中,sqrt() 函数仅针对正整数定义。这意味着 sqrt() 函数不能用于负整数。如果在 C++ 中将负数作为参数提供给 sqrt,则会提供“-nan”。

如果在没有任何参数的情况下使用 sqrt() 函数,则会抛出一个 C++ 错误,指示“没有匹配 sqrt() 的函数调用”。

语法

以下是 C++ Valarray::sqrt() 函数的语法:

sqrt(const valarray<Type>& x);

参数

x - 它包含一种类型的元素,为此定义了单目函数 sqrt。

示例

示例 1

让我们考虑以下示例,我们将使用 sqrt() 函数并检索输出。

#include <iostream>
#include <valarray>
using namespace std;

int main() {
   valarray<double>
   tutorial = { 100,125,121,169,143};
   valarray<double> valarray1;
   valarray1 = sqrt(tutorial);
   cout << "The sqrt()"
      << " Valarray is : "
      << endl;
   for (double& x : valarray1) {
      cout << x << " ";
   }
   cout << endl;
   return 0;
}

输出

当我们编译并运行上述程序时,将产生以下结果:

The sqrt() Valarray is : 
10 11.1803 11 13 11.9583   

示例 2

考虑以下示例,我们将向 sqrt() 函数传递负数并检索原始 valarray 和 sqrt() valarray 的输出。

#include <iostream>
#include <valarray>
using namespace std;

int main() {
   valarray<double> myvalarray = {4,25,-0.5,36,81,-1};
   cout << "The Orignal Valarray is : ";
   
   for (double& ele : myvalarray)
      cout << ele << " ";
   valarray<double> sqrtValArray;
   sqrtValArray = sqrt(myvalarray);
   cout << "\nThe sqrt Valarray is : ";
   
   for (double& ele : sqrtValArray)
      cout << ele << " ";
   return 0;
}

输出

让我们编译并运行上述程序,将产生以下结果:

The Orignal Valarray is : 4 25 -0.5 36 81 -1 
The sqrt() Valarray is : 2 5 -nan 6 9 -nan 

示例 3

在以下示例中,我们将使用整数类型与 sqrt() 函数并检索输出。

#include <iostream>
#include <valarray>
using namespace std;

int main() {
   int a = 16;
   double Result = sqrt(a);
   cout << "Result = " << Result;
   return 0;
}

输出

运行上述程序后,将产生以下结果:

Result = 4

示例 4

以下是编译器将抛出使用 sqrt() 函数没有任何参数的错误的示例。

#include <iostream>
#include <valarray>
using namespace std;

int main() {
   int a = 25;
   double Result = sqrt();
   cout << "Result = " << Result;
   return 0;
}

输出

当我们编译并运行上述程序时,将产生以下结果:

main.cpp:7:25: error: no matching function for call to 'sqrt()'
广告