logo

C++ algoritmas max()

C++ algoritmas max () funkcija gali būti naudojama šiais 3 būdais:

  • Jis lygina dvi vertes, pateiktas argumentuose ir grąžina didesnį tarp jų . Jei abu yra lygūs, tada grąžinamas pirmasis.
  • Jis taip pat lygina dvi vertes naudojant a dvejetainė funkcija kurį apibrėžia vartotojas, o tada perduoda kaip argumentą std::max().
  • Jis taip pat naudojamas ieškant didžiausias elementas pateiktame sąraše , ir grąžina pirmąjį, jei sąraše yra daugiau nei vienas didžiausias.

Elementai lyginami naudojant operatoriųcomp antrajai versijai.

Sintaksė

 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 

Parametras

a : pirmoji palyginama vertė.

mesti eilutę kaip tarpt

b : antra palyginama vertė.

komp : vartotojo apibrėžta dvejetainio predikato funkcija, kuri priima du argumentus ir grąžina teisingą, jei abu argumentai yra tvarkingi, priešingu atveju ji pateikia klaidingą. Tai atitinka griežtą silpną elementų užsakymą.

The : inicijavimo_sąrašas su palyginamomis reikšmėmis.

Grąžinimo vertė

Jis grąžina a ir b maksimumą. Jei reikšmės yra lygiavertės, ji grąžina a.

Grąžina didžiausią vertę il. Jei kelios reikšmės yra lygiavertės maksimaliai, grąžinama kairėje esanti labiausiai tokia reikšmė.

Sudėtingumas

Sudėtingumas yra tiesinis vienu mažiau nei palyginamų elementų skaičius.

Išimtys

Ši funkcija daro išimtį, jei bet koks palyginimas sukuria išimtį.

eilutę palyginti su

Pastaba: neteisingi parametrai sukelia neapibrėžtą elgesį.

1 pavyzdys

Pažiūrėkime paprastą pavyzdį, kaip parodyti 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; } 

Išvestis:

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

2 pavyzdys

Pažiūrėkime dar vieną paprastą pavyzdį, kaip parodyti max() naudojimą naudojant numatytąją versiją:

cinamonas vs mate
 #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; } 

Išvestis:

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

3 pavyzdys

Pažiūrėkime dar vieną paprastą pavyzdį, kaip parodyti max() naudojimą naudojant palyginimo funkciją:

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

4 pavyzdys

Pažiūrėkime paprastą pavyzdį, kaip rasti maksimalų elementą sąraše:

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