繁体   English   中英

C ++数学函数问题(在Linux下)

[英]C++ math functions problem (under Linux)

我在最大和平方数方面遇到问题

如果我包含math.h,则找不到sqrt。

因此,我查看了cmath头文件,并且其中包含math.h,但是当我尝试打开math.h时,该文件未找到。 所以我想我的math.h在Linux中不见了。

对不起,我找到了答案。

我只需要这样写:

std :: max std :: sqrt

但是,为什么在Windows操作系统中不带“ std ::”就可以工作?

注意:在C ++中,您应该#include <cmath>而不是#include <math.h>

注意:还指定名称空间是一个好习惯

您以前不需要使用std ::的原因可能是因为在头文件中的某处写入了以下语句:

using namespace std;

在此语句之后,不再需要'std ::'前缀。

希望这可以澄清事情...

您的系统可能在文件系统的一个位置有C头,而在另一位置有C ++头。 您是否熟悉搜索系统标题的目录的实际列表? (实际上,尽管我熟悉的所有实现都不需要实现具有系统头文件。C++标准对语句#include <cmath>必须执行的操作有要求,但对必须执行的操作没有要求。完成。)

在回答中,您将讨论Linux和Windows上C ++之间的差异。 这些不是特定于操作系统的,而是特定于实现的。 您可能在Windows上使用Visual C ++,而在Linux上使用其他东西(如果仅是因为VC ++仅在Windows上运行)。 它们在默认配置下可能会有所不同。

实际上, #include <math.h>应该类似于#include <cmath> ,只是math.h应该将其所有函数名称等移入std ::名称空间。 如果您的Linux C ++系统中没有发生这种情况,那就有问题。 不幸的是,您没有提供足够的信息来了解正在发生的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM