Algoritme C++ màxim () La funció es pot utilitzar de les 3 maneres següents:
charat java
- Compara els dos valors passats en els seus arguments i retorna el més gran entre ells . Si tots dos són iguals, retorna el primer.
- També compara els dos valors mitjançant a funció binària que l'usuari defineix i després passa com a argument a std::max().
- També s'utilitza per trobar el element més gran d'una llista determinada , i retorna el primer si hi ha més d'un dels més grans a la llista.
Els elements es comparen mitjançant l'operador
Sintaxi
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
Paràmetre
a : primer valor a comparar.
b : Segon valor per comparar.
comp : una funció de predicat binari definida per l'usuari que accepta dos arguments i retorna cert si els dos arguments estan en ordre, en cas contrari, retorna fals. Segueix l'ordre estricte feble per ordenar els elements.
char a cadena
El : una llista_inicialitzador amb els valors a comparar.
Valor de retorn
Retorna el màxim de a i b. Si els valors són equivalents, retorna a.
Retorna el valor més gran de il. Si diversos valors són equivalents al màxim, retorna el valor més a l'esquerra.
Complexitat
La complexitat és lineal en un menys que el nombre d'elements comparats.
verilog sempre
Excepcions
Aquesta funció llança una excepció si qualsevol comparació genera una excepció.
Nota: els paràmetres no vàlids provoquen un comportament no definit.
Exemple 1
Vegem l'exemple senzill per demostrar l'ús de max():
#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; }
Sortida:
larger of 1 and 9999: 9999 larger of 'a', and 'b': b longest of 'foo', 'bar', and 'hello': hello
Exemple 2
Vegem un altre exemple senzill per demostrar l'ús de max() amb la versió predeterminada:
#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; }
Sortida:
max(1,2)==2 max(2,1)==2 max('a','z')==z max(3.14,2.73)==3.14
Exemple 3
Vegem un altre exemple senzill per demostrar l'ús de max() mitjançant la funció de comparació:
#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);>
Exemple 4
Vegem un exemple senzill per trobar l'element màxim a la llista:
primer cerca de profunditat de l'algorisme
#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);>