c++ - sqrt(x) 和 pow(x,0.5) 的区别

标签 c++ c sqrt

<分区>

我想知道为什么在 C/c++ 中有 sqrt() 函数,因为我们可以使用

pow(x,0.5);

sqrt(x)pow(x,0.5) 有何不同。有 sqrt 函数的特定原因吗?

最佳答案

我为您运行了一个测试,以检查 sqrt(x)pow(x,0.5) 的性能

1.

for(int i=0;i<100000000;i++) 
    pow(double(i),0.5);

2.

for(int i=0;i<100000000;i++)
    sqrt(double(i));  

在我的电脑上,第一个花费了大约 20 秒,而第二个花费了大约 2 秒。所以性能要好得多。正如其他人已经提到的,可读性是其他原因。

关于c++ - sqrt(x) 和 pow(x,0.5) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17417490/

相关文章:

c++ - API抽象层——避免API接口(interface)混用

c++ - boost::stacktrace 打印地址

c - 在数组中查找匹配的连续整数

c++ - Visual Studio 不允许我使用 sqrt 或 floor,对重载函数的调用不明确

c++ - 为什么 & 对字符串的行为不同?

c++ - 如何重载 << 运算符以使其从流中读取?

c++ - 在 C++ 中再次运行时,rand() 不会更改值

sql - 嵌入sql的程序出现编译错误

c++ - C++ 中有限域元素的平方根

c - 为什么这个 C 表达式会产生错误的答案?