C++-Algorithmus max() Die Funktion kann auf drei Arten verwendet werden:
- Es vergleicht die beiden in seinen Argumenten übergebenen Werte und gibt den größeren Wert zwischen ihnen zurück . Wenn beide gleich sind, wird der erste zurückgegeben.
- Außerdem werden die beiden Werte mit a verglichen binäre Funktion Dies wird vom Benutzer definiert und dann als Argument in std::max() übergeben.
- Es wird auch verwendet, um das zu finden größtes Element in einer bestimmten Liste , und es gibt das erste zurück, wenn mehr als eines in der Liste am größten ist.
Elemente werden mithilfe des Operators verglichen
Syntax
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 : Erster zu vergleichender Wert.
B : Zweiter zu vergleichender Wert.
komp : Eine benutzerdefinierte binäre Prädikatfunktion, die zwei Argumente akzeptiert und „true“ zurückgibt, wenn die beiden Argumente in der richtigen Reihenfolge sind, andernfalls „false“ zurückgibt. Es folgt der strengen schwachen Ordnung, um die Elemente zu ordnen.
Der : Eine Initialisierungsliste mit den zu vergleichenden Werten.
Ausnahme werfen Java
Rückgabewert
Es gibt das Maximum von a und b zurück. Wenn die Werte äquivalent sind, wird a zurückgegeben.
Gibt den größten Wert in il zurück. Wenn mehrere Werte dem Maximum entsprechen, wird der am weitesten links stehende Wert zurückgegeben.
Komplexität
Die Komplexität ist um eins kleiner als die Anzahl der verglichenen Elemente linear.
Ausnahmen
Diese Funktion löst eine Ausnahme aus, wenn ein Vergleich eine Ausnahme auslöst.
Hinweis: Die ungültigen Parameter führen zu einem undefinierten Verhalten.
Beispiel 1
Sehen wir uns das einfache Beispiel an, um die Verwendung von max() zu demonstrieren:
#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; }
Ausgabe:
larger of 1 and 9999: 9999 larger of 'a', and 'b': b longest of 'foo', 'bar', and 'hello': hello
Beispiel 2
Sehen wir uns ein weiteres einfaches Beispiel an, um die Verwendung von max() unter Verwendung der Standardversion zu demonstrieren:
#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; }
Ausgabe:
Java-Variable Variable
max(1,2)==2 max(2,1)==2 max('a','z')==z max(3.14,2.73)==3.14
Beispiel 3
Sehen wir uns ein weiteres einfaches Beispiel an, um die Verwendung von max() mithilfe der Vergleichsfunktion zu demonstrieren:
#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);>
Beispiel 4
Sehen wir uns ein einfaches Beispiel an, um das maximale Element in der Liste zu finden:
#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);>