Maison > développement back-end > C++ > le corps du texte

Puis-je obtenir les limites d'un tableau à l'aide de fonctions C natives ?

Susan Sarandon
Libérer: 2024-10-24 04:51:02
original
416 Les gens l'ont consulté

Can I Obtain Array Bounds Using Native C   Functions?

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal