C ++ STD_MAX -funksjon

C ++ STD_MAX -funksjon
STD i C ++ betyr standard, med henvisning til standardbiblioteket og standardnavnet. Standardbiblioteket har en under-bibliotek kalt, algoritme. Algoritmebiblioteket har funksjonen, maks (), i overbelastede former. Max -funksjonen returnerer maksimalt to verdier av samme type, eller maksimal verdi i en liste (av samme type verdier).

For å bruke Max () -funksjonen til C ++ Algoritmbiblioteket, må programmet starte med noe med algoritmiblioteket inkludert som:

#inkludere
#inkludere
ved hjelp av navneområdet STD;

Det er fire viktigste overbelastede former for denne maksimale funksjonen, og denne artikkelen forklarer hvordan du bruker dem.

mal ConstExpr const T & Max (Const T & A, Const T & B)

Denne funksjonen tar to argumenter av samme type og returnerer den større av begge. Hvis begge er de samme i verdi, returneres den første forekomsten. Følgende program illustrerer bruken:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

char ch = max ('e', 'c');
cout<retur 0;

Utgangen er e.

mal
ConstExpr const T & Max (Const T&A, Const T & B, sammenlign komp)

Denne overbelastede funksjonen ligner på det ovennevnte, men programmereren har definert sin egen sammenligningsfunksjon. Ovennevnte overbelastede funksjon bruker standard sammenligningsfunksjon. Definisjonen av en sammenligningsfunksjon, som gjør det samme som standard sammenligningsfunksjonen er:

bool compfn (char a, char b)
hvis en < b)
return True;
ellers
return falsk;

Det tar to verdier, som kan være på en liste, da avkastningen er sant, hvis den første er mindre enn den andre, er den falsk. I denne funksjonen er 'a' den første verdien og b er den andre verdien. I maks () funksjonssyntaks for overskriften for dette avsnittet er det første argumentet 'A' og det andre argumentet er B, mens det tredje argumentet er navnet på sammenligningsfunksjonen uten parenteser og argumenter.

Merk at typen av argumentene til sammenligningsfunksjonen er den samme som typen av argumentene i maks () -funksjonen.

Følgende program med en programmererdefinert funksjon, har samme effekt, som ovennevnte program:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
bool compfn (char a, char b)
hvis en < b)
return True;
ellers
return falsk;

int main ()

char ch = max ('e', 'c', kompfn);
cout<retur 0;

Utgangen er, e. Hvis 'C' ble skrevet før 'E' som argumenter i maks () -funksjonen, ville utgangen fortsatt vært 'e'.

mal constExpr t max (initializer_list t)

I C ++ er en initializer_list arrayen bokstavelig. Denne overbelastede formen returnerer den største verdien i en initializer_list. Følgende program illustrerer dette:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

char ch = max ('c', 'a', 'e', ​​'d', 'b');
cout<retur 0;

Utgangen er, e.

mal
constExpr t max (initializer_list T, sammenlign kompis)

Denne overbelastede funksjonen ligner ovennevnte kode, men den trenger en sammenligningsfunksjon. Ovennevnte sammenligningsfunksjon kan brukes som illustrert i følgende program:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
bool compfn (char a, char b)
hvis en < b)
return True;
ellers
return falsk;

int main ()

char ch = max ('c', 'a', 'e', ​​'d', 'b', kompfn);
cout<retur 0;

Utgangen er, e.

Tilpasset maks -funksjon

Programmereren kan skrive sin egen Max () -funksjon. Strategien er å faktisk gjøre sammenligningen i funksjonen.

Maks to verdier

Følgende program viser hvordan du bestemmer maksimal verdi av to verdier:

#inkludere
ved hjelp av navneområdet STD;
char max (char a, char b)
if (a> b)
return a;
ellers
return b;

int main ()

char ch = max ('e', 'c');
cout<return a;
ellers
return b;

int main ()

char ch = max ('c', 'e');
cout<retur 0;

Maksimalt i en liste

Et tilpasset program kan også skrives for å finne maksimal verdi i en liste. Strategien er som følger:

Det første elementet antas å være det maksimale elementet i listen. Hvis det første elementet er mindre enn neste element, blir det neste elementet det nye maksimumet, ellers er det første elementet det maksimale. Hvis det antatte maksimum er mindre enn elementet etter, blir elementet etter, det nye maksimum, ellers, det gamle maksimum gjenstår. Denne sammenligningen fortsetter til slutten av listen. Følgende program illustrerer dette:

#inkludere
ved hjelp av navneområdet STD;
char max (char arr [], int størrelse)
char maxVal = arr [0];
for (int i = 1; iif (maxValmaxVal = arr [i];

returner MaxVal;

int main ()

char ar [] = 'c', 'a', 'e', ​​'d', 'b';
char ch = max (ar, 5);
cout<retur 0;

Utgangen er, e. Den første uttalelsen i Custom Max -funksjonen, oppnår den antatte maks, i formen:

char maxVal = arr [0];

Neste kodesegment er en for-loop. Inne.

I C ++ hovedfunksjonen erklærer den første uttalelsen matrisen, hvis maksimale element er nødvendig. Den andre uttalelsen kaller den tilpassede Max -funksjonen. Uttalelsen etter, skriver ut maksimal verdi på listen.

Konklusjon

Uten å skrive en tilpasset maksimal funksjon. For å oppnå maksimal verdi av to verdier, eller fra mer enn to verdier i en liste, bruk en passende funksjon nedenfor:

mal ConstExpr const T & Max (Const T & A, Const T & B)
mal
ConstExpr const T & Max (Const T&A, Const T & B, sammenlign komp)
mal constExpr t max (initializer_list t)
mal
constExpr t max (initializer_list T, sammenlign kompis)

Disse overbelastede funksjonene er alle i algoritmebiblioteket.