📜  c++ abs 模板 - C++ (1)

📅  最后修改于: 2023-12-03 14:59:44.552000             🧑  作者: Mango

C++ abs函数模板

在C++中,为了计算绝对值,可以使用STL提供的abs函数模板。这个函数模板可以用于不同的数据类型,例如整数,浮点数,以及复数。

整数类型

在整型中,abs函数模板的参数可以是int, long, long long等整数类型。例如:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    int x = -10;
    long y = -20;
    long long z = -30;

    cout << abs(x) << endl;  // 输出10
    cout << abs(y) << endl;  // 输出20
    cout << abs(z) << endl;  // 输出30

    return 0;
}
浮点数类型

在浮点型中,abs函数模板的参数可以是float, double, long double等类型。但需要注意的是,对于浮点数,应该使用fabs而不是abs函数模板。例如:

#include <iostream>
#include <cstdlib>
#include <cmath>

using namespace std;

int main()
{
    float x = -1.23;
    double y = -3.45;
    long double z = -6.78;

    cout << fabs(x) << endl;   // 输出1.23
    cout << fabs(y) << endl;   // 输出3.45
    cout << fabs(z) << endl;   // 输出6.78

    return 0;
}
复数类型

在复数中,abs函数模板的参数可以是complex类型。例如:

#include <iostream>
#include <cstdlib>
#include <complex>

using namespace std;

int main()
{
    complex<float> x(3, 4);
    complex<double> y(5, 12);
    complex<long double> z(3, -4);

    cout << abs(x) << endl;    // 输出5
    cout << abs(y) << endl;    // 输出13
    cout << abs(z) << endl;    // 输出5

    return 0;
}

需要注意的是,对于复数类型,abs函数模板计算的是模长,而不是绝对值。

总结

abs函数模板可以用于不同类型的数据,但对于浮点数,应该使用fabs函数模板。在使用abs函数模板时,应该确定参数类型,并选择合适的类型。