ho letto la descrizione di std::nth_element
a http://www.sgi.com/tech/stl/nth_element.htmlQuale è l'effetto di std :: nth_element (a.begin(), a.end(), a.end())?
template <class RandomAccessIterator>
void nth_element(RandomAccessIterator first, RandomAccessIterator nth,
RandomAccessIterator last);
Si noti che i presupposti siano
- [prima, ennesima) è un intervallo valido.
- [n., Ultimo) è un intervallo valido.
La mia domanda è:
E 'valida per chiamare std::nth_element(a.begin(), a.end(), a.end())
? Se è così, qual è il suo effetto? In ogni caso, non viola le precondizioni di cui sopra. Ovunque nello standard della lingua (o in altri documenti) si afferma che nth
deve puntare a un elemento in a
?
Perché non provarlo e vedere l'effetto. –
Il risultato di una prova non è affidabile. Può essere dipendente dall'implementazione. In realtà mi chiedo dove sia questo problema specificato nello standard di C++. – updogliu
@updogliu L'ultimo testo standard è sostanzialmente uguale alla pagina SGI che hai collegato. – Potatoswatter