Stl : rechercher le plus grand ou le plus petit dans un tableau

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 855 fois - Téléchargée 35 fois

Contenu du snippet

Les fonctions de la STL , min_element() et max_element(), permettent simplement de trouver la position maxi ou le min dans un tableau et plus largement dans la séquence d'un conteneur : vector, list..

Source / Exemple :


//-------  Exemple d'emploi de la librairie standard ALGORITHM  --------
//   Rechercher la position du plusGrand et et du plusPetit
//	itr min_element(itrDebut, itrFin)
//	itr max_element(itrDebut, itrFin)
//-------------------- David Saint-Mellion  19/01/2003 ---------------------
#include <iostream>
#include <algorithm>
using namespace std;

int main(void){
    int data[10]={2,-3,17,5,4,11,8,1,19,6};
    int *min=0;
    int *max=0;

    // Recherche la position du +petit et du +grand
    min=min_element(data, data+10);
    max=max_element(data, data+10);
    // Affiche la position et la valeur du minimum et le maximum
    cout<<"Le plus Petit est en "<<min-data<<" et vaut "<<*min<<endl;
    cout<<"Le plus Grand est en "<<max-data<<" et vaut "<<*max<<endl;

    return 0;
}

//------------------------ REMARQUES ------------------------------------------
//Ces 2 fonctions renvoie un iterateur
//  (le pointeur est son ancetre) sur la valeur cherchee.
// Elles s'appliquent a tous les conteneurs : vector, deque, list,..
// La sequence sur laquelle se fait la recherche est definie par 2 iterateurs
//     - itrDebut, ici data
//     - et itrFin ici data+10.
//  L'element reference par itrFin n'est pas pris en compte (espace ouvert)
// ---------------------------------------------------------------------------------

A voir également

Ajouter un commentaire Commentaires
cs_Kaid
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
1
21 janv. 2003 à 20:58
On peut effectivement utiliser fonction qsort() pour trouver le minimum et le maximun dans un tableau par contre quand tu auras trié ton tableau, tu auras bien du mal à savoir à quel indexes se trouvaient le min et le max.
cs_nEUrOne
Messages postés
41
Date d'inscription
dimanche 17 novembre 2002
Statut
Membre
Dernière intervention
14 avril 2004

21 janv. 2003 à 13:38
on peut le faire manuellement avec un simple qsort et on prend le 1er et le dernier ... (en plus, ca n'appelle aucune lib)
cs_Kaid
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
1
20 janv. 2003 à 16:26
cmarsc: c'est pas grave car sinon tu ne dis que des choses justes !
cmarsc
Messages postés
455
Date d'inscription
mercredi 6 mars 2002
Statut
Membre
Dernière intervention
18 décembre 2003

20 janv. 2003 à 15:56
en effet, j'ai dit une counasserie :-( que je retire sur le champs
cs_davidsm
Messages postés
35
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
12 novembre 2004

20 janv. 2003 à 15:50
Un des intérêts des fonctions est de s'appliquer à des séries d'objets d'un conteneur. Elles sont génériques, elles ne dépendent pas du type de la données traitée.
Dans l'exemple, le type stocké dans le conteneur est int. Ce pourrait être un type : chaine de caractères, une structure, une classe ( voir peut être dans ce cas redéfinir l'opérateurs <)
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.