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
广告