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ų
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'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);>