En C , la bibliothèque de modèles standard fournit la fonction std::sort() pour trier efficacement les éléments d'un tableau . Pour un tableau déclaré comme int v[2000], l'extrait de code suivant montre comment utiliser std::sort() pour y parvenir :
<code class="cpp">#include <algorithm> int main() { int v[2000]; std::sort(std::begin(v), std::end(v)); }</code>
Cependant, std::begin() et std : Les fonctions :end() introduites dans C 0x/11 sont essentielles pour cette approche. Ces fonctions renvoient des itérateurs représentant le début et la fin d'un conteneur donné, y compris les tableaux.
Si vous n'avez pas accès à C 0x, il est possible de définir vous-même ces fonctions :
Fonction de début pour les conteneurs non const :
<code class="cpp">template<class Cont> typename Cont::iterator begin(Cont& c) { return c.begin(); }</code>
Fonction de fin pour les conteneurs non const :
<code class="cpp">template<class Cont> typename Cont::iterator end(Cont& c) { return c.end(); }</code>
Fonction de début pour Conteneurs const :
<code class="cpp">template<class Cont> typename Cont::const_iterator begin(Cont const& c) { return c.begin(); }</code>
Fonction de fin pour les conteneurs const :
<code class="cpp">template<class Cont> typename Cont::const_iterator end(Cont const& c) { return c.end(); }</code>
Surcharges pour les tableaux de style C :
<code class="cpp">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>
En utilisant ces fonctions, vous pouvez trier de manière transparente un tableau en utilisant std::sort() en C .
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!