Utilisation de std::sort pour trier des tableaux en C
Cet article traite de l'utilisation de la fonction std de la bibliothèque de modèles standard (STL) : :sort pour trier un tableau déclaré comme int v[2000]. De plus, il explore si C offre un moyen natif d'obtenir les indices de début et de fin d'un tableau.
std::sort et tri basé sur la plage
Pour employer std::sort, vous pouvez exploiter la boucle for basée sur une plage introduite dans C 11. Cette approche simplifie le processus de tri :
<code class="cpp">int v[2000]; std::sort(std::begin(v), std::end(v));</code>
Où std::begin et std::end sont des fonctions utilitaires qui renvoient itérateurs pointant respectivement vers le premier et le dernier élément d'un conteneur ou d'un tableau.
Fonctions de début et de fin personnalisées
Pour les versions C antérieures, vous pouvez créer vos propres fonctions de début et de fin :
<code class="cpp">template<class Cont> typename Cont::iterator begin(Cont& c){ return c.begin(); } template<class Cont> typename Cont::iterator end(Cont& c){ return c.end(); } template<class T, std::size_t N> T* begin(T (&arr)[N]){ return &arr[0]; } template<class T, std::size_t N> T* end(T (&arr)[N]){ return arr + N; }</code>
Ces fonctions surchargent les fonctions de début et de fin existantes pour les conteneurs et les tableaux, fournissant une interface cohérente pour accéder aux limites de plage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!