logo

C++ Algoritme maks()

C++-algoritme maks() funksjonen kan brukes på følgende 3 måter:

  • Den sammenligner de to verdiene som ble gitt i argumentene og returnerer jo større mellom dem . Hvis begge er like, returnerer den den første.
  • Den sammenligner også de to verdiene ved å bruke a binær funksjon som er definert av brukeren, og deretter sendt som et argument i std::max().
  • Den brukes også til å finne største elementet i en gitt liste , og den returnerer den første hvis det er flere enn én som er størst på listen.

Elementer sammenlignes ved hjelp av operatorkomp for den andre versjonen.

Syntaks

 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 

Parameter

en : Første verdi å sammenligne.

b : Andre verdi å sammenligne.

komp : En brukerdefinert binær predikatfunksjon som aksepterer to argumenter og returnerer sann hvis de to argumentene er i orden, ellers returnerer den usann. Den følger den strenge svake ordren for å bestille elementene.

De : En initializer_list med verdiene som skal sammenlignes.

Returverdi

Den returnerer maksimum av a og b. Hvis verdiene er like, returnerer den en.

blokkerte kontakter

Returnerer den største verdien i il. Hvis flere verdier er ekvivalente med maksimum, returnerer den venstre verdien.

Kompleksitet

Kompleksiteten er lineær i en mindre enn antall elementer sammenlignet.

Unntak

Denne funksjonen gir et unntak hvis en sammenligning gir et unntak.

Merk: De ugyldige parameterne forårsaker udefinert virkemåte.

Eksempel 1

La oss se det enkle eksemplet for å demonstrere bruken av 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; } 

Produksjon:

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

Eksempel 2

La oss se et annet enkelt eksempel for å demonstrere bruken av max() ved bruk av standardversjon:

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

Produksjon:

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

Eksempel 3

La oss se et annet enkelt eksempel for å demonstrere bruken av max() ved å bruke sammenligningsfunksjonen:

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

Eksempel 4

La oss se et enkelt eksempel for å finne det maksimale elementet i listen:

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