8得票4回答
在C++中,重载命名空间std中的数学函数是一个好的实践吗?

我正在编写一个C++类,表示一种算术类型(mpfr的C++封装),我想支持<cmath>中的一些函数(以std::sqrt为例)。 因此,我有以下类: namespace ns { class MyClass { /* ... */ public...

52得票2回答
为什么 pow(int, int) 函数如此缓慢?

我一直在做一些Project Euler的练习,以提高我的C++知识。 我写了下面的函数:int a = 0,b = 0,c = 0; for (a = 1; a <= SUMTOTAL; a++) { for (b = a+1; b <= SUMTOTAL-a; b+...

8得票2回答
C++11中,fabsf是否属于std命名空间?

页面https://en.cppreference.com/w/cpp/numeric/math/fabs提到自C++11以来,std::fabsf可用。然而,当我使用G++ 6.3.0编译使用std::fabsf的最简单程序时,它会提示fabsf不是std的成员。 #include &lt...

29得票3回答
为什么<cmath>中的某些函数不在std命名空间中?

我正在开发一个需要使用多种算术类型的项目。因此,我创建了一个头文件,在其中定义了用户自定义算术类型的最小要求: user_defined_arithmetic.h:typedef double ArithmeticF; // The user chooses what type he ...

13得票3回答
在C语言中,tan(30)会返回一个负数!为什么?

我注意到我的cmath库中的tan(float)函数返回了一个负值。 当运行以下代码时: #include &lt;cmath&gt; .... // some calculation here gives me a value between 0.0 to 1.0....

28得票5回答
C++中的数字四舍五入

我正在尝试让我的程序分别向上和向下四舍五入一个数字。 例如,如果数字是3.6,那么我的程序应该将其四舍五入到最近的数字4,如果数字是3.4,则应将其舍入为3。 我尝试使用ceil库来获取3个项目的平均值。 results = ceil((marks1 + marks2 + marks3)...

10得票3回答
模糊的abs调用

我有一个自定义数据类型,在实践中可以是float或double。在除了OSX以外的每个操作系统上,我都能够成功构建这个C++11模板: #include &lt;cmath&gt; #include &lt;cstdlib&gt; #include &lt;cstdint&gt; temp...

54得票7回答
如何正确地获得(-1)^n?

许多算法需要计算(-1)^n(其中n为整数),通常作为序列中的因子。也就是说,这个因子对于奇数n为-1,对于偶数n为1。在C++环境中,常常可以看到以下代码:#include&lt;iostream&gt; #include&lt;cmath&gt; int main(){ int n ...

11得票2回答
MSVC 中的 std::isfinite

C++11和C11标准定义了std::isfinite函数。Visual Studio 2012似乎没有将其作为cmath或math.h的一部分提供,但有amp_math.h似乎提供此函数。 isfinite是否可与std::isfinite互换使用?文档没有讨论调用NAN时的行为,并且我没...

10得票2回答
在 cmath 中实现 pow() 函数及高效替代方法

我读过cmath通过执行exp(b*log(a))来计算pow(a,b)。当b是整数时,不应使用它,因为它会大大减慢计算速度。在以下情况下有哪些替代方案: 计算大量连续的使用相同常量a的pow() 事先已知b将肯定是整数? 我正在寻找在这些特定场景下高效快速的替代方案。