C++-Standardbibliothek<cmath>
Die C++-Standardbibliothek bietet eine Fülle von Funktionalität, darunter<cmath>ist eine Header-Datei mit mathematischen Funktionen, die viele grundlegende mathematische Operationen und Konstanten bereitstellt.
<cmath>ist eine Header-Datei in der C++-Standardbibliothek, die eine Reihe mathematischer Funktionen definiert, mit denen grundlegende mathematische Operationen wie Potenzierung, trigonometrische Funktionen, Logarithmen, Absolutwerte usw. ausgeführt werden können.
Um<cmath>Um die darin enthaltenen Funktionen zu verwenden, müssen Sie diese Header-Datei in Ihr C++-Programm einbinden:
#include <cmath>
Häufig verwendete Funktionen
<cmath>bietet viele mathematische Funktionen; hier sind einige häufig verwendete.
1. Grundlegende mathematische Funktionen
| Funktion | Funktionen | Beispiel |
|---|---|---|
abs(x) | Berechne den Absolutwertxeiner ganzen Zahl | abs(-5) // 5 |
fabs(x) | Eine Gleitkommazahl berechnenxeiner ganzen Zahl | fabs(-5.5) // 5.5 |
fmod(x, y) | Berechnenxgeteilt durchyder Rest | fmod(5.3, 2) // 1.3 |
remainder(x, y) | Berechnenxgeteilt durchyder Rest | remainder(5.5, 2) // 1.5 |
fmax(x, y) | returnxundyder größere Wert | fmax(3.5, 4.2) // 4.2 |
fmin(x, y) | returnxundyder kleinere Wert | fmin(3.5, 4.2) // 3.5 |
hypot(x, y) | Berechnensqrt(x*x + y*y) | hypot(3, 4) // 5 |
2. Exponential- und Logarithmusfunktionen
| Funktion | Funktionen | Beispiel |
|---|---|---|
exp(x) | Berechnene^x,eBasis des natürlichen Logarithmus | exp(1) // 2.71828... |
log(x) | BerechnenxNatürlicher Logarithmus von ⟦0⟧ | log(2.71828) // 1 |
log10(x) | BerechnenxLogarithmus zur Basis 10 von ⟦0⟧ | log10(100) // 2 |
pow(x, y) | BerechnenxvonyPotenz | pow(2, 3) // 8 |
sqrt(x) | BerechnenxQuadratwurzel von ⟦0⟧ | sqrt(16) // 4 |
cbrt(x) | BerechnenxKubikwurzel von ⟦0⟧ | cbrt(27) // 3 |
expm1(x) | Berechnene^x - 1 | expm1(1) // 1.71828... |
log1p(x) | Berechnenlog(1 + x), geeignet für Fälle, in denen x nahe bei 0 liegt | log1p(0.00001) // 0.00001 |
3. Trigonometrische Funktionen
| Funktion | Funktionen | Beispiel |
|---|---|---|
sin(x) |
BerechnenxSinus von,xIm Bogenmaß |
sin(3.14159 / 2) // 1 |
cos(x) |
BerechnenxKosinus von,xIm Bogenmaß |
cos(3.14159) // -1 |
tan(x) |
BerechnenxTangens von,xIm Bogenmaß |
tan(0) // 0 |
asin(x) |
BerechnenxArkussinus von, gibt das Bogenmaß zurück |
asin(1) // 3.14159/2 |
acos(x) |
BerechnenxArkuskosinus von, gibt das Bogenmaß zurück |
acos(-1) // 3.14159 |
atan(x) |
BerechnenxArkustangens von, gibt das Bogenmaß zurück |
atan(1) // 3.14159/4 |
atan2(y, x) |
Berechneny/xArkustangens von, gibt das Bogenmaß zurück |
atan2(1, 1) // 3.14159/4 |
4. Hyperbolische Funktionen
| Funktion | Funktionen | Beispiel |
|---|---|---|
sinh(x) |
BerechnenxSinus hyperbolicus von |
sinh(0) // 0 |
cosh(x) |
BerechnenxKosinus hyperbolicus von |
cosh(0) // 1 |
tanh(x) |
Berechnenxhyperbolischer Tangens von |
tanh(1) // 0.7616 |
asinh(x) |
Berechnenxinverser hyperbolischer Sinus von |
asinh(1) // 0.8814 |
acosh(x) |
Berechnenxinverser hyperbolischer Kosinus von,x ≥ 1 |
acosh(1) // 0 |
atanh(x) |
Berechnenxinverser hyperbolischer Tangens von,xauf (-1, 1) |
atanh(0.5) // 0.5493 |
5. Rundung und Gleitkommaoperationen
| Funktion | Funktionen | Beispiel |
|---|---|---|
ceil(x) |
Liefert nicht weniger alsxdie kleinste ganze Zahl |
ceil(2.3) // 3 |
floor(x) |
Liefert nicht größer alsxdie größte ganze Zahl |
floor(2.3) // 2 |
trunc(x) |
Liefert den Ganzzahlwert ohne Bruchteil | trunc(2.8) // 2 |
round(x) |
Liefert die nächste ganze Zahl nach dem Runden | round(2.5) // 3 |
lround(x) |
Gibt gerundet auflongType |
lround(2.5) // 3 |
llround(x) |
Gibt gerundet auflong longType |
llround(2.5) // 3 |
nearbyint(x) |
liefert gerundet auf die nächste ganze Zahl (löst jedoch keine Gleitkomma-Ausnahmen aus) | nearbyint(2.5) // 2 |
rint(x) |
liefert eine Rundung auf eine ganze Zahl gemäß dem aktuellen Rundungsmodus | rint(2.5) // 3 |
modf(x, &intpart) |
wirdxTrennt den ganzzahligen und den gebrochenen Teil von |
modf(2.3, &intpart) |
6. Gleitkomma-Prüfungen
| Funktion | Funktionen | Beispiel |
|---|---|---|
isfinite(x) |
Prüftxob es ein endlicher Wert ist (nicht unendlich oder NaN) |
isfinite(3.0) // true |
isinf(x) |
Prüftxob es unendlich ist |
isinf(1.0 / 0.0) // true |
isnan(x) |
Prüftxob es NaN ist |
isnan(0.0 / 0.0) // true |
isnormal(x) |
PrüftxOb es eine normale, von null verschiedene Gleitkommazahl ist |
isnormal(1.0) // true |
signbit(x) |
Prüftxob das Vorzeichen negativ ist |
signbit(-5.3) // true |
Beispiel
Nachfolgend ein Beispiel unter Verwendung von<cmath>Ein einfaches Beispiel für , das zeigt, wie man die Quadratwurzel, den Sinus und den Absolutwert einer Zahl berechnet.
Beispiel 1
#include <cmath> // die Headerdatei <cmath> einbinden
int main() {
double num = 9.0;
double root = sqrt(num); // Quadratwurzel berechnen
double sinValue = sin(M_PI / 2); // Sinuswert berechnen, M_PI ist eine Näherung für π
double absValue = abs(-5.0); // Absolutwert berechnen
std::cout << "Die Quadratwurzel von " << num << " ist " << root << std::endl;
std::cout << "Der Sinus von " << M_PI / 2 << " ist " << sinValue << std::endl;
std::cout << "Der Absolutwert von -5.0 ist " << absValue << std::endl;
return 0;
}
Ausgabe:
The square root of 9 is 3 The sine of 1.570796 is 1 The absolute value of -5 is 5
Beispiel 2
#include <cmath>
int main() {
// Grundlegende mathematische Operationen
std::cout << "abs(-5) = " << abs(-5) << std::endl;
std::cout << "fmod(5.3, 2) = " << fmod(5.3, 2) << std::endl;
// Exponential- und Logarithmusfunktionen
std::cout << "exp(1) = " << exp(1) << std::endl;
std::cout << "log(2.71828) = " << log(2.71828) << std::endl;
std::cout << "pow(2, 3) = " << pow(2, 3) << std::endl;
// Trigonometrische Funktionen
std::cout << "sin(3.14159 / 2) = " << sin(3.14159 / 2) << std::endl;
std::cout << "cos(3.14159) = " << cos(3.14159) << std::endl;
// Rundungsfunktionen
std::cout << "ceil(2.3) = " << ceil(2.3) << std::endl;
std::cout << "floor(2.3) = " << floor(2.3) << std::endl;
// Gleitkomma-Prüfungen
double x = 1.0 / 0.0;
if (isinf(x)) {
std::cout << "x ist unendlich" << std::endl;
}
return 0;
}
Hinweise
<cmath>Funktionen in akzeptieren normalerweisefloatoderdoubleTypargumente und Rückgabeergebnisse des entsprechenden Typs. Fürlong doubleTyp können Sie verwenden<cmath>Funktionen in , aber Sie müssen nach dem Funktionsnamen hinzufügenlSuffix, zum Beispielsqrtl。- Bestimmte Funktionen, wie z. B.
powundlog, können Sie Ganzzahlen als Argumente übergeben, aber das Ergebnis ist weiterhin eine Gleitkommazahl. <cmath>Funktionen in können Ausnahmen auslösen, zum Beispiel wennsqrtWenn das Argument der Funktion negativ ist, löst sie eine Ausnahme ausstd::domain_erroreine Ausnahme.
<cmath>ist eine sehr nützliche Header-Datei in der C++-Standardbibliothek. Sie bietet viele grundlegende mathematische Funktionen, die Entwicklern helfen können, beim Schreiben von Programmen mathematische Operationen durchzuführen.