C++ Algoritme max()

C++ algoritme max() Funktionen kan bruges på følgende 3 måder:

  • Den sammenligner de to værdier, der er givet i sine argumenter og returnerer jo større mellem dem . Hvis begge er ens, returnerer den den første.
  • Den sammenligner også de to værdier ved hjælp af en binær funktion som er defineret af brugeren og derefter sendt som et argument i std::max().
  • Det bruges også til at finde største element i en given liste , og den returnerer den første, hvis der er mere end én, der er størst på listen.

Elementer sammenlignes ved hjælp af operator comp til den anden version.

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 værdi at sammenligne.

b : Anden værdi at sammenligne.

komp : En brugerdefineret binær prædikatfunktion, der accepterer to argumenter og returnerer sand, hvis de to argumenter er i orden, ellers returnerer den falsk. Det følger den strenge svage ordre om at bestille elementerne.

Det : En initializer_list med de værdier, der skal sammenlignes.

Returværdi

Det returnerer maksimum af a og b. Hvis værdierne er ækvivalente, returnerer den en.

Returnerer den største værdi i il. Hvis flere værdier er ækvivalente til maksimum, returnerer den venstre værdi.

Kompleksitet

Kompleksiteten er lineær i en mindre end antallet af elementer sammenlignet.

Undtagelser

Denne funktion kaster en undtagelse, hvis en sammenligning kaster en undtagelse.

Bemærk: De ugyldige parametre forårsager en udefineret adfærd.

Eksempel 1

Lad os se det enkle eksempel for at demonstrere brugen af ​​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; }  

Produktion:

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

Eksempel 2

Lad os se et andet simpelt eksempel for at demonstrere brugen af ​​max() ved hjælp af standardversionen:

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

Produktion:

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

Eksempel 3

Lad os se et andet simpelt eksempel for at demonstrere brugen af ​​max() ved hjælp af sammenligningsfunktionen:

 #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

Lad os se et simpelt eksempel for at finde det maksimale element på 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);>