C ++ Std_max -Funktion

C ++ Std_max -Funktion
Die STD in C ++ bedeutet Standard, unter Bezugnahme auf die Standardbibliothek und den Standard -Namespace. Die Standardbibliothek verfügt über einen Unterbibliothek. Die Algorithmus -Bibliothek hat die Funktion max () in überlasteten Formularen. Die MAX -Funktion gibt maximal zwei Werte desselben Typs oder den Maximalwert in einer Liste (derselben Werteart) zurück.

Um die MAX () -Funktion der C ++ - Algorithmus -Bibliothek zu verwenden, muss das Programm mit etwas mit der Algorithmus -Bibliothek beginnen wie folgt:

#enthalten
#enthalten
Verwenden von Namespace STD;

Es gibt vier überlastete Hauptformulare dieser maximalen Funktion, und dieser Artikel erklärt, wie man sie verwendet.

Vorlage ConstExpr Const T & Max (const t & a, const t & b)

Diese Funktion nimmt zwei Argumente desselben Typs an und gibt den größeren von beiden zurück. Wenn beide den gleichen Wert haben, wird das erste Ereignis zurückgegeben. Das folgende Programm zeigt die Verwendung:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char ch = max ('e', 'c');
Cout<Rückkehr 0;

Der Ausgang ist e.

Vorlage
ConstExpr Const T & Max (const t & a, const t & b, Compare comp)

Diese überladene Funktion ähnelt dem oben, aber der Programmierer hat seine eigene Vergleichsfunktion definiert. Die obige überlastete Funktion verwendet die Standardvergleichsfunktion. Die Definition einer Vergleichsfunktion, die dasselbe wie die Standardvergleichsfunktion tut, lautet:

bool compfn (char a, char b)
wenn ein < b)
zurückkehren;
anders
falsch zurückgeben;

Es dauert zwei Werte, die eine Liste haben können, dann ist ihre Rückgaben wahr, wenn der erste als der zweite ist, ist es falsch. In dieser Funktion ist 'a' der erste Wert und B ist der zweite Wert. In der MAX () -Funktionssyntax der Überschrift dieses Abschnitts ist das erste Argument 'A' und das zweite Argument ist B, während das dritte Argument der Name der Vergleichsfunktion ohne Klammern und Argumente ist.

Beachten Sie, dass der Typ der Argumente der Vergleichsfunktion mit dem Typ der Argumente in der MAX () -Funktion entspricht.

Das folgende Programm mit einer mit dem Programmierer definierten Funktion hat den gleichen Effekt wie das obige Programm:

#enthalten
#enthalten
Verwenden von Namespace STD;
bool compfn (char a, char b)
wenn ein < b)
zurückkehren;
anders
falsch zurückgeben;

int main ()

char ch = max ('e', 'c', compfn);
Cout<Rückkehr 0;

Die Ausgabe ist, e. Wenn 'C' vor 'e' als Argumente in der MAX () -Funktion tippt würde, wäre die Ausgabe immer noch 'e' gewesen.

Vorlage contexpr t max (initializer_list T)

In C ++ ist eine Initializer_List das Array Literal. Dieses überladene Formular gibt den größten Wert in einer Initializer_List zurück. Das folgende Programm zeigt dies:

#enthalten
#enthalten
Verwenden von Namespace STD;
int main ()

char ch = max ('c', 'a', 'e', ​​'d', 'b');
Cout<Rückkehr 0;

Die Ausgabe ist, e.

Vorlage
contexpr t max (initializer_list t, vergleiche comp)

Diese überladene Funktion ähnelt dem obigen Code, benötigt jedoch eine Vergleichsfunktion. Die obige Vergleichsfunktion kann wie im folgenden Programm dargestellt werden:

#enthalten
#enthalten
Verwenden von Namespace STD;
bool compfn (char a, char b)
wenn ein < b)
zurückkehren;
anders
falsch zurückgeben;

int main ()

char ch = max ('c', 'a', 'e', ​​'d', 'b', compfn);
Cout<Rückkehr 0;

Die Ausgabe ist, e.

Benutzerdefinierte maximale Funktion

Der Programmierer kann seine eigene MAX () -Funktion schreiben. Die Strategie besteht darin, den Vergleich in der Funktion tatsächlich durchzuführen.

Maximal zwei Werte

Das folgende Programm zeigt, wie der Maximalwert von zwei Werten bestimmt wird:

#enthalten
Verwenden von Namespace STD;
char max (char a, char b)
if (a> b)
Rückkehr a;
anders
Rückkehr B;

int main ()

char ch = max ('e', 'c');
Cout<Rückkehr a;
anders
Rückkehr B;

int main ()

char ch = max ('c', 'e');
Cout<Rückkehr 0;

Maximum in einer Liste

Ein benutzerdefiniertes Programm kann auch geschrieben werden, um den Maximalwert in einer Liste zu finden. Die Strategie lautet wie folgt:

Es wird angenommen, dass das erste Element das maximale Element in der Liste ist. Wenn das erste Element geringer ist als das nächste Element, wird das nächste Element zum neuen Maximum, sonst bleibt das erste Element das Maximum. Wenn das angenommene Maximum geringer ist als das Element danach, wird das Element danach zum neuen Maximum, sonst bleibt das alte Maximum verbleibt. Dieser Vergleich wird bis zum Ende der Liste fortgesetzt. Das folgende Programm zeigt dies:

#enthalten
Verwenden von Namespace STD;
char max (char arr [], int size)
char maxval = arr [0];
für (int i = 1; iif (maxvalmaxval = arr [i];

MAXVAL zurückgeben;

int main ()

char ar [] = 'c', 'a', 'e', ​​'d', 'b';
char ch = max (ar, 5);
Cout<Rückkehr 0;

Die Ausgabe ist, e. Die erste Anweisung in der benutzerdefinierten MAX -Funktion erhält den angenommenen Max in der Form:

char maxval = arr [0];

Das nächste Code-Segment ist ein For-Loop. Im Inneren der For-Loop befindet sich ein If-Construct.

In der C ++ - Hauptfunktion deklariert die erste Anweisung das Array, dessen maximales Element erforderlich ist. Die zweite Anweisung ruft die benutzerdefinierte MAX -Funktion auf. Die Anweisung danach druckt den Maximalwert in der Liste aus.

Abschluss

Ohne eine benutzerdefinierte maximale Funktion zu schreiben. Um den Maximalwert von zwei Werten oder aus mehr als zwei Werten in einer Liste zu erhalten, verwenden Sie eine geeignete Funktion unten:

Vorlage ConstExpr Const T & Max (const t & a, const t & b)
Vorlage
ConstExpr Const T & Max (const t & a, const t & b, Compare comp)
Vorlage contexpr t max (initializer_list T)
Vorlage
contexpr t max (initializer_list t, vergleiche comp)

Diese überlasteten Funktionen befinden sich alle in der Algorithmus -Bibliothek.