Tri décroissant de tableau [Résolu]

Signaler
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
28 juin 2014
-
enoitnaillal
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
28 juin 2014
-
Bonjour,
J'ai trouvé une variante de sort() :
std ::sort (tb.begin(), tb.end(), std ::greater ());
permettant du faire un tri décroissant, (je travail sur un tableau d'entier que j'ai appelé tb) mais lorsque j'essai de compiler ça ne passe pas, est-ce la bonne syntaxe ?

7 réponses

Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015

C'est quoi l'erreur de compilation que tu obtiens ?


Coin coin !
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
28 juin 2014
1
Je reçois le message suivant:

request for member `begin' in `tb', which is of non-class type `int[10]'
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
28 juin 2014
1
Je viens d'essayer et ça marche, merci du coup de main
Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015

ton tableau tb est bien déclaré comme étant un in[10] ?
Parce que std::sort fonctionne sur les vector.
Il faudrait donc que tu déclares tb en tant que vector


Coin coin !
Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015

int[1], pas 'in[10]'


Coin coin !
Messages postés
41
Date d'inscription
jeudi 8 avril 2010
Statut
Membre
Dernière intervention
28 juin 2014
1
tu ferait ça comment, les vecteurs je ne connais pas encore
Messages postés
92
Date d'inscription
samedi 26 mars 2005
Statut
Membre
Dernière intervention
23 septembre 2015

et bien c'est assez simple au final :
#include <vector>
#include 

std::vector  tb(10, 0);	// tb est un tableau de 10 int valant 0

for (size_t i = 0 ; i < tb.size() ; i++)
{
tb[i] = i;
}

std::sort( tb.begin(), tb.end(), std::greater());



Coin coin !