logo

Algorithme C++ max()

Algorithme C++ maximum() La fonction peut être utilisée des 3 manières suivantes :

  • Il compare les deux valeurs passées dans ses arguments et renvoie le plus grand entre eux . Si les deux sont égaux, alors il renvoie le premier.
  • Il compare également les deux valeurs à l'aide d'un fonction binaire qui est défini par l'utilisateur, puis passé comme argument dans std::max().
  • Il est également utilisé pour trouver le le plus grand élément d'une liste donnée , et il renvoie le premier s'il y en a plusieurs qui sont les plus grands dans la liste.

Les éléments sont comparés à l'aide de l'opérateurcomp pour la deuxième version.

Syntaxe

 default (1) template const T& max (const T& a, const T& b); //until C++ 11 custom (2) template const T& max (const T& a, const T& b, Compare comp); //until C++ 11 default (1) template const T& max (const T& a, const T& b); //until C++ 14 custom (2) template const T& max (const T& a, const T& b, Compare comp); //until C++ 14 initializer list (3) template T max (initializer_list il); template T max (initializer_list il, Compare comp); //until C++ 14 default (1) template constexpr const T& max (const T& a, const T& b); //since C++ 14 //since C++ 14 custom (2) template constexp const T& max(const T& a, const T& b, Compare comp); // since C++ 14 initializer list (3) template constexpr T max (initializer_list il); template constexpr T max (initializer_list il, Compare comp); //since C++ 14 

Paramètre

un : Première valeur à comparer.

b : Deuxième valeur à comparer.

composition : Une fonction de prédicat binaire définie par l'utilisateur qui accepte deux arguments et renvoie vrai si les deux arguments sont dans l'ordre, sinon elle renvoie faux. Il suit l’ordre strict et faible pour ordonner les éléments.

Le : Une initializer_list avec les valeurs à comparer.

Valeur de retour

Il renvoie le maximum de a et b. Si les valeurs sont équivalentes, il renvoie a.

Renvoie la plus grande valeur en il. Si plusieurs valeurs sont équivalentes au maximum, renvoie la valeur la plus à gauche.

Complexité

La complexité est linéaire en un de moins que le nombre d'éléments comparés.

Des exceptions

Cette fonction lève une exception si une comparaison lève une exception.

Remarque : Les paramètres non valides provoquent un comportement indéfini.

Exemple 1

Voyons l'exemple simple pour démontrer l'utilisation de max() :

 #include #include #include using namespace std; int main() { cout << 'larger of 1 and 9999: ' << std::max(1, 9999) << '
' << 'larger of 'a', and 'b': ' << max('a', 'b') << '
' << 'longest of 'foo', 'bar', and 'hello': ' << max( { 'foo', 'bar', 'hello' }, [](const string& s1, const string& s2) { return s1.size() < s2.size(); }) << '
'; return 0; } 

Sortir:

 larger of 1 and 9999: 9999 larger of 'a', and 'b': b longest of 'foo', 'bar', and 'hello': hello 

Exemple 2

Voyons un autre exemple simple pour démontrer l'utilisation de max() en utilisant la version par défaut :

 #include // std::cout #include // std::max using namespace std; int main () { cout << 'max(1,2)==' << max(1,2) << '
'; cout << 'max(2,1)==' << max(2,1) << '
'; cout << 'max('a','z')==' << max('a','z') << '
'; cout << 'max(3.14,2.73)==' << max(3.14,2.73) << '
'; return 0; } 

Sortir:

 max(1,2)==2 max(2,1)==2 max('a','z')==z max(3.14,2.73)==3.14 

Exemple 3

Voyons un autre exemple simple pour démontrer l'utilisation de max() à l'aide de la fonction de comparaison :

 #include #include using namespace std; // Defining the binary function bool comp(int a, int b) { return (a <b); } int main() { a="7;" b="28;" cout << max(a,b,comp) '
'; returns the first one if both numbers are same max(7,7,comp); return 0; < pre> <p> <strong>Output:</strong> </p> <pre> 28 7 </pre> <h2>Example 4</h2> <p>Let&apos;s see a simple example to find the maximum element in the list:</p> <pre> #include #include using namespace std; // Defining the binary function bool comp(int a, int b) { return (a <b); } int main() { finding the largest of all numbers cout << 'maximum element is: '<< max({1, 2, 3, 4, 5, 10, -1, 7},comp) '
'; return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Maximum element is: 10 </pre> <br></b);></pre></b);>

Exemple 4

Voyons un exemple simple pour trouver l'élément maximum dans la liste :

 #include #include using namespace std; // Defining the binary function bool comp(int a, int b) { return (a <b); } int main() { finding the largest of all numbers cout << \'maximum element is: \'<< max({1, 2, 3, 4, 5, 10, -1, 7},comp) \'
\'; return 0; < pre> <p> <strong>Output:</strong> </p> <pre> Maximum element is: 10 </pre> <br></b);>