Maison  >  Article  >  développement back-end  >  Comment : trier un tableau à l'aide de std :: sort en C

Comment : trier un tableau à l'aide de std :: sort en C

Barbara Streisand
Barbara Streisandoriginal
2024-10-23 21:00:02845parcourir

How to: Sort an Array Using std::sort in C

Tri d'un tableau à l'aide de std::sort en C

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn