Problème avec les vectors

Problème avec les vectors - C++ - Programmation

Marsh Posté le 26-07-2006 à 21:12:12    

Rebonjour a tous, j'ai un petit problème avec l'utilisation des vector
 
en effet, je fais un logiciel de gestion de meilleurs scores, et donc j'avais la classe :
 

Code :
  1. class Score {
  2. public:
  3. vector <char> nom;
  4. long long int sc;
  5. void affiche();
  6. };

(bon là je mets tout en public pour éviter de se compliquer)
 
Cette classe, je voulais la mettre dans un fichier d'entête, cependant, quand je compile, ca me met :  
header.h ISO C++ forbids declaration of `vector' with no type  
 
Comment faire ? Merci d'avance NC

Reply

Marsh Posté le 26-07-2006 à 21:12:12   

Reply

Marsh Posté le 26-07-2006 à 21:15:01    

std::vector plutot

Reply

Marsh Posté le 26-07-2006 à 21:21:57    

Pourquoi std::vector<char>  :??:

Reply

Marsh Posté le 26-07-2006 à 21:34:18    

ben je voudrais faire en fait un tableau de caractères qui comporte le nom du joueur (sachant que le nom de deux joueurs différents n'est pas nécessairement le meme, je pensais le déclarer comme tableau dynamique), et comme c'est de l'opengl, et donc que l'entrée sera régit au touche par touche, c'est à dire qu'en fait, le nom sera rentré caractère par caractère, et pas d'un bloc, je pensais faire comme ca, mais si vous avez d'autres idées, inutile de dire que je suis preneur

Reply

Marsh Posté le 26-07-2006 à 21:40:21    

#include <string>
 
std::string nom;

Reply

Marsh Posté le 26-07-2006 à 21:59:54    

ok meric ;)

Reply

Marsh Posté le 26-07-2006 à 22:15:37    

cependant il me reste un problème :
 
j'ouvre un fichier hiscores.dat, et la fonction d'ouverture (où je fais un traitement sur les données collectées dans le fichier) se trouve dans un autre fichier source que le fichier source où on appelle justement cette fonction d'ouverture : en gros j'ai dans un fichier 1.cpp :
 
// du code
fonction_ouverture();
 
et dans un fichier source 2.cpp j'ai  
 
// du code
void fonction_ouverture(){
// encore du code
}
 
le problème est que le vector est défini dans le fichier 1.cpp. Je ne sais pas y accéder depuis 2.cpp (je pensais faire extern vector<Score> scores; mais je ne pense pas que ca soit correct : les résultats retournées ensuite sont faux.
 
Comment faire pour accéder à ce vector depuis un fichier source extérieur ?
 
Merci d'avance de votre aide :)

Reply

Marsh Posté le 26-07-2006 à 22:16:44    

oups, mea culpa, j'ai trouvé, j'avais oublié de le mettre en variable globale :)

Reply

Marsh Posté le 26-07-2006 à 22:30:15    

Juste une petite dernière question : je suis en train de consulter un bouquin de programmation et je vois qu'on peut classer une list par ordre croissant ou décroissant,mais je ne trouve pas comment faire avec un vector
 
Est-ce possible ?
 

Reply

Marsh Posté le 26-07-2006 à 23:56:24    

sort(v.begin(), v.end())

Reply

Marsh Posté le 26-07-2006 à 23:56:24   

Reply

Marsh Posté le 27-07-2006 à 09:15:12    

plus généralement:
http://www.sgi.com/tech/stl/


---------------
Töp of the plöp
Reply

Marsh Posté le 27-07-2006 à 19:14:19    

ok merci, cependant, sort(v.begin(), v.end()) classe par ordre croissant, comment faire pour classer par ordre décroissant ?

Reply

Marsh Posté le 27-07-2006 à 20:27:51    

tout est indiqué dans la doc (lien donné par _darkalt3_)
 
http://www.sgi.com/tech/stl/sort.html
http://www.sgi.com/tech/stl/functors.html
http://www.sgi.com/tech/stl/greater.html
 
ce qui ammène à (dans le cas d'un vector<int> )
sort(v.begin(), v.end(), greater<int>());

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed