logo

Algoritmul C++ max()

Algoritmul C++ max() funcția poate fi utilizată în următoarele 3 moduri:

  • Compară cele două valori transmise în argumentele sale și se întoarce cu cât mai mare între ele . Dacă ambele sunt egale, atunci returnează primul.
  • De asemenea, compară cele două valori folosind a funcţie binară care este definit de utilizator și apoi transmis ca argument în std::max().
  • Este, de asemenea, folosit pentru a găsi cel mai mare element dintr-o listă dată , și returnează primul dacă există mai mulți dintre cei mai mari în listă.

Elementele sunt comparate folosind operatorcomp pentru a doua versiune.

Sintaxă

 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 

Parametru

A : Prima valoare de comparat.

b : A doua valoare de comparat.

comp : O funcție de predicat binar definită de utilizator care acceptă două argumente și returnează adevărat dacă cele două argumente sunt în ordine, altfel returnează false. Urmează ordonarea strictă slabă pentru a ordona elementele.

The : un initializer_list cu valorile de comparat.

Valoare returnată

Returnează maximul a și b. Dacă valorile sunt echivalente, returnează a.

Returnează cea mai mare valoare din il. Dacă mai multe valori sunt echivalente cu maxim, returnează cea mai stângă astfel de valoare.

Complexitate

Complexitatea este liniară cu unul mai puțin decât numărul de elemente comparate.

Excepții

Această funcție aruncă o excepție dacă orice comparație aruncă o excepție.

Notă: Parametrii nevalidi determină un comportament nedefinit.

Exemplul 1

Să vedem exemplul simplu pentru a demonstra utilizarea lui 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; } 

Ieșire:

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

Exemplul 2

Să vedem un alt exemplu simplu pentru a demonstra utilizarea lui max() folosind versiunea implicită:

 #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; } 

Ieșire:

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

Exemplul 3

Să vedem un alt exemplu simplu pentru a demonstra utilizarea max() folosind funcția de comparare:

 #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);>

Exemplul 4

Să vedem un exemplu simplu pentru a găsi elementul maxim din listă:

 #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);>