Algoritem C++ max() funkcijo je mogoče uporabiti na naslednje 3 načine:
- Primerja dve vrednosti, posredovani v svojih argumentih in vrne večje med njimi . Če sta oba enaka, potem vrne prvega.
- Prav tako primerja obe vrednosti z uporabo a binarna funkcija ki ga določi uporabnik in nato posreduje kot argument v std::max().
- Uporablja se tudi za iskanje največji element na danem seznamu , in vrne prvega, če je na seznamu več kot eden največjih.
Elementi se primerjajo z uporabo operatorja
Sintaksa
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
a : Prva vrednost za primerjavo.
računalniška omrežja
b : Druga vrednost za primerjavo.
komp : Uporabniško definirana binarna predikatna funkcija, ki sprejme dva argumenta in vrne true, če sta argumenta v redu, sicer vrne false. Sledi strogemu šibkemu vrstnemu redu za urejanje elementov.
The : Seznam_inicializatorjev z vrednostmi za primerjavo.
Povratna vrednost
Vrne največ a in b. Če sta vrednosti enakovredni, vrne a.
kako pretvoriti niz v int java
Vrne največjo vrednost v il. Če je več vrednosti enakovrednih največji, vrne skrajno levo takšno vrednost.
Kompleksnost
Kompleksnost je linearna za eno manj kot število primerjanih elementov.
Izjeme
Ta funkcija vrže izjemo, če katera koli primerjava vrže izjemo.
Opomba: Neveljavni parametri povzročajo nedefinirano vedenje.
Primer 1
Oglejmo si preprost primer za prikaz uporabe max():
... v javi
#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; }
Izhod:
larger of 1 and 9999: 9999 larger of 'a', and 'b': b longest of 'foo', 'bar', and 'hello': hello
Primer 2
Oglejmo si še en preprost primer za prikaz uporabe max() s privzeto različico:
#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; }
Izhod:
max(1,2)==2 max(2,1)==2 max('a','z')==z max(3.14,2.73)==3.14
Primer 3
Oglejmo si še en preprost primer za prikaz uporabe max() z uporabo primerjalne funkcije:
#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);>
Primer 4
Oglejmo si preprost primer za iskanje največjega elementa na seznamu:
10 1 milijon
#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);>