C++ Valarray::log10() 函式



C++ Valarray::log10() 函式返回一個 valarray,其中包含當前 valarray 中所有元素的以 10 為底的對數值。它會為 valarray 中的每個元素呼叫一次 cmath 的 log10() 函式。

以 10 為底的對數也稱為十進位制對數或常用對數。例如,x 的常用對數是指將 10 提高到哪個次冪才能得到 x 的值。

log10() 函式返回一個數的以 10 為底的對數。

  • 如果我們傳入的值大於 1(>1),它將返回正值。

  • 如果我們傳入的值等於 1(=1),它將返回 '0'。

  • 如果我們傳入的值在 0 和 1 之間(0>x>1),它將返回負值。

  • 如果我們傳入的值等於 0(=0),它將返回 '-infinity'。

  • 如果我們傳入的值小於 0(<0),它將返回 nan 值。

語法

以下是 C++ Valarray::log10() 函式的語法:

log10 (const valarray<T>& x);

引數

x - 它包含元素的型別,對於該型別定義了一元函式 abs。

示例

示例 1

考慮以下示例,我們將使用 log10() 函式並檢索以 10 為底的對數可能值的輸出。

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

int main() {
	valarray<double> varr = { 12,14,16,18,-2 };
	valarray<double> varr1;
	varr1 = log10(varr);
	cout << "The New log10"
		<< " Valarray is : "
		<< endl;
	for (double& x : varr1) {
		cout << x << " ";
	}
	cout << endl;
	return 0;
}

輸出

當我們編譯並執行上述程式時,它將產生以下結果:

The New log10 Valarray is : 
1.07918 1.14613 1.20412 1.25527 nan 

示例 2

在以下示例中,我們將使用 log10() 函式並檢索以 10 為底的對數可能值的輸出。

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

int main() {
   valarray<double> myvalarr = { 2, 1, 0.32, 0, -3 };
   cout << "The Orignal Valarray is : ";
   
   for (double& ele : myvalarr)
      cout << ele << " ";
   valarray<double> logValarray;
   logValarray = log10(myvalarr);
   cout << "\nThe log10 Valarray is : ";
   
   for (double& ele : logValarray)
      cout << ele << " ";
   return 0;
}

輸出

讓我們編譯並執行上述程式,它將產生以下結果:

The Orignal Valarray is : 2 1 0.32 0 -3 
The log10 Valarray is : 0.30103 0 -0.49485 -inf nan

示例 3

讓我們看一下以下示例,我們將使用整數型別與 log10() 函式一起使用並獲取輸出。

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

int main () {
   int a = 34;
   double result;
   result = log10(a);
   cout << "log10(a) = " << result << endl;
   return 0;
}

輸出

執行上述程式後,它將產生以下結果:

log10(a) = 1.53148

示例 4

考慮以下示例,我們將宣告一個用作以 10 為底的冪的陣列,然後我們將 log10() 函式應用於這些 pow10 值。

#include <cmath>
#include <iomanip>
#include <iostream>
#include <valarray>

void show(char const* title, const std::valarray<float>& va) {
   std::cout << title << " : " << std::right;
   for (float a : va) {
      std::cout << std::setw(5) << a;
   }
   std::cout << '\n';
}
int main() {
   const std::valarray<float> n {2,3,-4,-1,0.6,1.2};
   const std::valarray<float> pow10 { std::pow(10, n) };
   const std::valarray<float> log10_pow10 { std::log10(pow10) };
   show("10ⁿ    ", pow10);
   show("log(10ⁿ)", log10_pow10);
}

輸出

當上述程式執行時,它將產生以下結果:

10ⁿ      :   100 10000.0001  0.13.9810715.8489
log(10ⁿ) :     2    3   -4   -1  0.6  1.2
廣告

© . All rights reserved.