Namespaces
Variants

std:: abs, std:: labs, std:: llabs, std:: imaxabs

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Défini dans l'en-tête <cstdlib>
Défini dans l'en-tête <cmath>
int abs ( int num ) ;
(1) (constexpr depuis C++23)
long abs ( long num ) ;
(2) (constexpr depuis C++23)
long long abs ( long long num ) ;
(3) (depuis C++11)
(constexpr depuis C++23)
Défini dans l'en-tête <cstdlib>
long labs ( long num ) ;
(4) (constexpr depuis C++23)
long long llabs ( long long num ) ;
(5) (depuis C++11)
(constexpr depuis C++23)
Défini dans l'en-tête <cinttypes>
(6) (depuis C++11)
(constexpr depuis C++23)
(7) (depuis C++11)
(constexpr depuis C++23)

Calcule la valeur absolue du nombre entier num . Le comportement est indéfini si le résultat ne peut pas être représenté par le type de retour.

Si std::abs est appelé avec un argument entier non signé qui ne peut pas être converti en int par promotion entière , le programme est mal formé.

La surcharge (6) de std::abs pour std::intmax_t est fournie dans <cinttypes> si et seulement si std::intmax_t est un type entier étendu .

(depuis C++11)

Table des matières

Paramètres

num - valeur entière

Valeur de retour

La valeur absolue de num (c'est-à-dire |num| ), si elle est représentable.

Notes

Dans les systèmes en complément à 2 , la valeur absolue de la valeur la plus négative est hors plage, par exemple pour le type en complément à 2 sur 32 bits int , INT_MIN vaut - 2147483648 , mais le résultat attendu 2147483648 est supérieur à INT_MAX , qui vaut 2147483647 .

Exemple

#include <climits>
#include <cstdlib>
#include <iostream>
int main()
{
    std::cout << std::showpos
              << "abs(+3) = " << std::abs(3) << '\n'
              << "abs(-3) = " << std::abs(-3) << '\n';
//  std::cout << std::abs(INT_MIN); // undefined behavior on 2's complement systems
}

Sortie :

abs(+3) = +3
abs(-3) = +3

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement tel que publié Comportement correct
LWG 2192 C++98 les surcharges de std::abs étaient
déclarées de manière incohérente dans deux en-têtes
déclaré ces surcharges
dans les deux en-têtes

Voir aussi

valeur absolue d'une valeur à virgule flottante ( |x| )
(fonction)
retourne la magnitude d'un nombre complexe
(modèle de fonction)
applique la fonction abs à chaque élément du valarray
(modèle de fonction)
Documentation C pour abs , labs , llabs