Comment utiliser la bibliothèque de modèles standard std::sort()
pour trier un tableau déclaré comme int v[2000]
;
Le C++ fournit-il une fonction permettant d'obtenir l'indice de début et de fin d'un tableau ?
Comment utiliser la bibliothèque de modèles standard std::sort()
pour trier un tableau déclaré comme int v[2000]
;
Le C++ fournit-il une fonction permettant d'obtenir l'indice de début et de fin d'un tableau ?
Votre question demande comment utiliser std::sort
mais pour l'exemple que vous avez donné, vous pourriez aussi considérer que qsort
: http://www.cplusplus.com/reference/cstdlib/qsort/
int compareInt(const void* p1, const void* p2) {
const int f1 = *(const int*) p1;
const int f2 = *(const int*) p2;
if (f1 == f2) return 0;
return (f1 > f2) ? 1 : -1;
}
qsort(v, (sizeof v)/(sizeof v[0]), sizeof v[0], compareInt);
Cette solution peut être plus rapide pour les très grandes matrices. Elle n'utilise pas std::sort
comme vous l'avez demandé, et n'est peut-être pas aussi sûr que les solutions OO proposées, mais j'ai pensé qu'il valait la peine de le mentionner. qsort
fonctionnera aussi bien en C qu'en C++.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.