IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Tri d'un vecteur


Sujet :

C++

  1. #21
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 36
    Par défaut
    voici mon dernier code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    #include <algorithm>
    #include <iostream>
    #include <iterator>
    #include <string>
    #include <vector>
     
    using std::cerr;
    using std::cin;
    using std::cout;
    using std::endl;
    using std::string;
    using std::vector;
    using std::iterator;
     
    bool equal(string s1, string s2) {
     if ( s1.length() != s2.length())
    	return false;
     for( unsigned int i = 0; i < s1.length(); i++){
    	if(tolower(s1[i]) != tolower(s2[i]))
    		return false;
     }
     return true;
    }
     
    bool before(string s1, string s2) {
     int t;
     bool test = false;
     if (equal(s1, s2))
    	t = true;
     else{
     	if ( s1.length() <= s2.length())
    		t = s1.length();
     	else
    		t = s2.length();
     	for(int i = 0; i < t; i++){
    		if(tolower(s1[i]) <= tolower(s2[i]))
    			test = true;
    		if(tolower(s1[i]) > tolower(s2[i]))
    			break;
    	}
     }
     return test;
    }
     
    void displayLine(string const& s) {
        cout << s << endl;
    }
     
    int main(int argc, char const * argv[])
    {
      vector<string> V;
      for( int i = 1; i < argc; i++)
      V.push_back(argv[i]);
      sort(V.begin(), V.end(), before);
      vector<string>::iterator new_end = unique(V.begin(), V.end(), equal);
      for_each(V.begin(), new_end, displayLine);
    }
    lorsque je tape: ./a.out to ti To ta to
    j'obtiens:
    to
    ta
    To
    ti
    to
    au lieu de:
    ta
    ti
    to
    et je ne vois pas pourquoi.
    Aidez moi s'il vous plait cela fait des heures que je suis dessus !!!

  2. #22
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pourquoi tu assignes à des booléens des valeurs entières ? Pose d'abord ton problème sur papier et ensuite code qqch que tu as vérifié.

  3. #23
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonjour,

    A mon avis il faut remplacer bool is_equal( string, string ) par une autre fonction par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int strComp( const string& , const string& )
    qui renvoït un int afin de "mesurer la différence" entre les deux chaînes .

    salut.

Discussions similaires

  1. Tri d'un vecteur.
    Par dahmane2007 dans le forum Langage
    Réponses: 5
    Dernier message: 06/04/2009, 08h55
  2. Petits soucis de tri sur un vecteur
    Par d.jphilippe dans le forum Fortran
    Réponses: 3
    Dernier message: 01/08/2008, 23h00
  3. Tri d'un vecteur
    Par dv-2008 dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 30/05/2008, 21h39
  4. Tri Tableau Matrice vecteur
    Par french_aspi dans le forum MATLAB
    Réponses: 9
    Dernier message: 24/03/2008, 14h50
  5. Tri spécial et vecteurs
    Par vinzzzz dans le forum C
    Réponses: 6
    Dernier message: 21/11/2007, 18h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo