nth_element: sgi vs microsoft
Bonjour tout le monde.
Sur cette page de la sgi, vous trouverez le code suivant:
Code:
1 2 3 4 5 6
| int A[] = {7, 2, 6, 11, 9, 3, 12, 10, 8, 4, 1, 5};
const int N = sizeof(A) / sizeof(int);
nth_element(A, A + 6, A + N);
copy(A, A + N, ostream_iterator<int>(cout, " "));
// The printed result is "5 2 6 1 4 3 7 8 9 10 11 12". |
Or, je viens de l'exécuter sous visual studio 2005, et j'obtiens un résultat complètement différent, à savoir "1 2 3 4 5 6 7 8 9 10 11 12". Autrement dit, le tableau est entièrement trié.
J'ai testé cette fonction de différentes façons (avec des vecteurs, avec différents types de données, etc.) et j'obtiens toujours le même résultat: mon conteneur est entièrement trié.
J'ai tenté une excursion dans le code de la STL version vs8, mais c'est décidément trop compliqué pour moi.
De plus, d'aprés la description de cette fonction dans le livre c++ template library - a tutorial and reference ne correspond pas du tout à ce qu'il se passe quand je fais des tests sous vs8.
Auriez-vous une idée de ce qu'il se passe? A qui dois-je faire confiance?