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()'
廣告

© . All rights reserved.