std::minmax
Da cppreference.com.
![]() | Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate. La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui. |
Defined in header <algorithm> | ||
template<class T > std::pair<const T&,const T&> minmax(const T& a, const T& b ); | (1) | (dal C++11) |
template<class T, class Compare > std::pair<const T&,const T&> minmax(const T& a, const T& b, Compare comp ); | (2) | (dal C++11) |
template<class T > std::pair<T,T> minmax(std::initializer_list<T> ilist); | (3) | (dal C++11) |
template<class T, class Compare > std::pair<T,T> minmax(std::initializer_list<T> ilist, Compare comp ); | (4) | (dal C++11) |
1-2)
Restituisce il più piccolo e il maggiore dei due valori.
Original:
Returns the smaller and the greater of the two values.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
3-4)
Restituisce la lista più piccolo e il più grande dei valori di inizializzazione
ilist
.Original:
Returns the smallest and the greatest of the values in initializer list
ilist
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
I (1,3) versioni utilizzano operator< per confrontare i valori, mentre i (2,4) versioni utilizzare la funzione di confronto dato
comp
.Original:
The (1,3) versions use operator< to compare the values, whereas the (2,4) versions use the given comparison function
comp
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Indice |
[modifica]Parametri
a, b | - | i valori da confrontare Original: the values to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
ilist | - | inizializzatore lista con i valori da confrontare Original: initializer list with the values to compare The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
comp | - | comparison function which returns true if if a is less than b . The signature of the comparison function should be equivalent to the following: bool cmp(const Type1 &a, const Type2 &b); The signature does not need to have const&, but the function must not modify the objects passed to it. |
Type requirements | ||
-T must meet the requirements of LessThanComparable . for the overloads (1) and (3) | ||
-T must meet the requirements of CopyConstructible . for the overloads (3) and (4) |
[modifica]Valore di ritorno
1-2)
Restituisce il risultato di std::make_pair(a, b) se
a<b
o se a
è equivalente a b
. Restituisce il risultato di std::make_pair(b, a) se b<a
.Original:
Returns the result of std::make_pair(a, b) if
a<b
or if a
is equivalent to b
. Returns the result of std::make_pair(b, a) if b<a
.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
3-4)
Una coppia con il valore più piccolo
ilist
come primo elemento e il più grande come secondo. Se alcuni elementi sono equivalenti al più piccolo, l'elemento più a sinistra come viene restituito. Se alcuni elementi sono equivalenti al più grande, l'elemento più a destra come viene restituito.Original:
A pair with the smallest value in
ilist
as the first element and the greatest as the second. If several elements are equivalent to the smallest, the leftmost such element is returned. If several elements are equivalent to the largest, the rightmost such element is returned.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica]Complessità
1-2)
Constant
Original:
Constant
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
3-4)
Lineare in
ilist.size()
Original:
Linear in
ilist.size()
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
[modifica]Possibile implementazione
First version |
---|
template<class T>std::pair<const T&,const T&> minmax(const T& a, const T& b){return(b < a)?std::make_pair(b, a):std::make_pair(a, b);} |
Second version |
template<class T, class Compare>std::pair<const T&,const T&> minmax(const T& a, const T& b, Compare comp){return comp(b, a)?std::make_pair(b, a):std::make_pair(a, b);} |
Third version |
template<class T >std::pair<T,T> minmax(std::initializer_list ilist){auto p =std::minmax_element(ilist.begin(), ilist.end());returnstd::make_pair(*p.first, *p.second);} |
Fourth version |
template<class T, class Compare >std::pair<T,T> minmax(std::initializer_list ilist, Compare comp ){auto p =std::minmax_element(ilist.begin(), ilist.end(), comp);returnstd::make_pair(*p.first, *p.second);} |
[modifica]Esempio
#include <algorithm>#include <iostream>#include <vector>#include <cstdlib>#include <ctime> int main(){std::vector<int> v {3, 1, 4, 1, 5, 9, 2, 6};std::srand(std::time(0));std::pair<int,int> bounds = std::minmax(std::rand()% v.size(), std::rand()% v.size()); std::cout<<"v["<< bounds.first<<","<< bounds.second<<"]: ";for(int i = bounds.first; i < bounds.second;++i){std::cout<< v[i]<<' ';}std::cout<<'\n';}
Possible output:
v[2,7]: 4 1 5 9 2
[modifica]Vedi anche
restituisce il minore dei due elementi Original: returns the smaller of two elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) | |
restituisce il più grande dei due elementi Original: returns the larger of two elements The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (funzione di modello) |