La fonction standard sign (signum, sgn) en C++ : existe-t-elle et comment l'implémenter ?
Bonjour, collègues ! J'écris un petit programme en C++ pour l'analyse numérique, et j'ai besoin d'une fonction qui retourne le signe d'un nombre : -1 pour les négatifs, 0 pour zéro et 1 pour les positifs. En mathématiques, cela s'appelle signum ou sgn.
J'ai fouillé la documentation de et , mais je n'ai rien trouvé de similaire. En Python, il y a numpy.sign(), en MATLAB il y a sign(), et en C++ — silence. Est-ce vraiment possible que la bibliothèque standard C++ n'ait pas une chose aussi élémentaire ?
Voici un exemple de ce que je veux faire :
```cpp
#include
#include // peut-être ici ?
int main() {
double x = -5.7;
// J'aimerais écrire quelque chose comme :
// int s = sign(x);
// Mais le compilateur se plaint que sign n'est pas déclaré.
// Je dois écrire des bricolages :
int s;
if (x > 0) s = 1;
else if (x < 0) s = -1;
else s = 0;
std::cout << "sign(" << x << ") = " << s << std::endl;
return 0;
}
```
Cela fonctionne, mais ça a l'air horrible. Pour les entiers, je peux utiliser une astuce
No answers yet.
Connectez-vous pour laisser une réponse