C++ definió funciones para obtener elementos más pequeños y más grandes entre 2 o en un contenedor usando diferentes funciones. Pero también hay funciones que se usan para obtener tanto el elemento más pequeño como el más grande usando una sola función, la función » minmax() » logra esta tarea por nosotros. Esta función se define en el archivo de encabezado » algoritmo «. Este artículo se ocuparía de su aplicación y de otras funciones conexas.
- minmax(a, b): esta función devuelve un par , en el que el primer elemento es el mínimo de los dos elementos y el segundo elemento es el máximo de 2 elementos.
- minmax (array de elementos): esta función regresa de manera similar a la primera versión. La única diferencia es que en esta versión, el argumento aceptado es una lista de enteros/strings entre las que se obtienen el máximo y el mínimo. Útil en los casos en que necesitamos encontrar elementos máximos y mínimos en la lista sin ordenar.
// C++ code to demonstrate the working of minmax()
#include<iostream>
#include<algorithm>
using
namespace
std;
int
main()
{
// declaring pair to catch the return value
pair<
int
,
int
> mnmx;
// Using minmax(a, b)
mnmx = minmax(53, 23);
// printing minimum and maximum values
cout <<
"The minimum value obtained is : "
;
cout << mnmx.first;
cout <<
"\nThe maximum value obtained is : "
;
cout << mnmx.second ;
// Using minmax((array of elements)
mnmx = minmax({2, 5, 1, 6, 3});
// printing minimum and maximum values.
cout <<
"\n\nThe minimum value obtained is : "
;
cout << mnmx.first;
cout <<
"\nThe maximum value obtained is : "
;
cout << mnmx.second;
}
Producción:
The minimum value obtained is : 23 The maximum value obtained is : 53 The minimum value obtained is : 1 The maximum value obtained is : 6
- minmax_element() : El propósito de esta función es el mismo que el de las funciones anteriores, es decir, encontrar el elemento mínimo y máximo. Pero difiere en el tipo de devolución y el argumento aceptado. Esta función acepta el puntero de inicio y final como su argumento y se utiliza para encontrar el elemento máximo y mínimo en un rango. Esta función devuelve el puntero de par , cuyo primer elemento apunta a la posición del elemento mínimo en el rango y el segundo elemento apunta a la posición del elemento máximo en el rango. Si hay más de 1 número mínimo, entonces el primer elemento apunta al primer elemento que aparece. Si hay más de 1 número máximo, entonces el segundo elemento apunta al último elemento que aparece.
// C++ code to demonstrate the working of minmax_element()
#include<iostream>
#include<algorithm>
#include<vector>
using
namespace
std;
int
main()
{
// initializing vector of integers
vector<
int
> vi = { 5, 3, 4, 4, 3, 5, 3 };
// declaring pair pointer to catch the return value
pair<vector<
int
>::iterator, vector<
int
>::iterator> mnmx;
// using minmax_element() to find
// minimum and maximum element
// between 0th and 3rd number
mnmx = minmax_element(vi.begin(), vi.begin() + 4);
// printing position of minimum and maximum values.
cout <<
"The minimum value position obtained is : "
;
cout << mnmx.first - vi.begin() << endl;
cout <<
"The maximum value position obtained is : "
;
cout << mnmx.second - vi.begin() << endl;
cout << endl;
// using duplicated
// prints 1 and 5 respectively
mnmx = minmax_element(vi.begin(), vi.end());
// printing position of minimum and maximum values.
cout <<
"The minimum value position obtained is : "
;
cout << mnmx.first - vi.begin() << endl;
cout <<
"The maximum value position obtained is : "
;
cout << mnmx.second - vi.begin()<< endl;
}
Producción:
The minimum value position obtained is : 1 The maximum value position obtained is : 0 The minimum value position obtained is : 1 The maximum value position obtained is : 5
Este artículo es una contribución de Manjeet Singh . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA