Ce face std::max
std::max(a, b) returnează valoarea mai mare; dacă sunt egale, returnează prima. Cu acolade primește oricâte valori: std::max({a, b, c}).
Ca la std::min, argumentele trebuie să aibă același tip. Pentru maximul unui container folosește std::max_element sau std::ranges::max(v).
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Valorile comparate. |
lista |
Lista de valori între acolade. |
comp |
Opțional. Funcția de comparare. |
Ce returnează
Cea mai mare valoare.
Exemple
Exemplul 1: Scorul cel mai bun
#include <algorithm>
#include <print>
int main() {
int record = 87;
int scor_nou = 92;
record = std::max(record, scor_nou);
std::println("Record: {}", record);
std::println("Maxim: {}", std::max({3.5, 9.25, 7.0}));
}
Rezultat
Record: 92
Maxim: 9.25
Exemplul 2: Nu coborî sub zero
std::max(0, x) este un mod scurt de a înlocui valorile negative cu 0.
#include <algorithm>
#include <print>
int main() {
int stoc = 5;
for (int vandute : {3, 4, 2}) {
stoc = std::max(0, stoc - vandute);
std::println("Stoc: {}", stoc);
}
}
Rezultat
Stoc: 2
Stoc: 0
Stoc: 0
Greșeli frecvente
- Scrii
std::max(1, 2.5): tipurileintșidoublediferă și apelul nu compilează. - Cauți maximul unui vector cu
std::max(v): varianta clasică nu primește containere. Foloseștestd::ranges::max(v)sau*std::max_element(...).
Comenzi înrudite
std::min: Returnează cea mai mică dintre două valori sau dintr-o listă de valori scrisă între acolade.std::minmax: Returnează dintr-un singur apel o pereche formată din cea mai mică și cea mai mare valoare.std::min_element: Găsește cel mai mic (min_element) sau cel mai mare (max_element) element dintr-un interval și returnează un iterator.std::clamp: Limitează o valoare la un interval: o aduce la minim dacă e prea mică și la maxim dacă e prea mare.