Tableau dynamique à deux entrées avec vector

Tableau dynamique à deux entrées avec vector - C++ - Programmation

Marsh Posté le 15-03-2003 à 12:53:54    

Voilà mon nouveau problème avec vector:
 
j'arrive à créer un tableau contenant une seule ligne...
 
mais pour en créer un avec deux entrées, du style:
 
Nom    |   Prénom
Nom1   |   Prénom1
Nom2   |   Prénom2
 
Je fais ça comment?
 
Merci!!

Reply

Marsh Posté le 15-03-2003 à 12:53:54   

Reply

Marsh Posté le 15-03-2003 à 12:56:40    

Code :
  1. class NomComplet
  2. {
  3. public:
  4. string nom;
  5. string prenom;
  6. };
  7. vector<NomComplet> lesnoms;


Message édité par Alload le 15-03-2003 à 12:57:10
Reply

Marsh Posté le 15-03-2003 à 12:57:02    

Tu crée une classe personne, avec les attributs nom et prénoms.
 
Et tu fait un vector de Personnes.
 
edit: grillaid  [:sisicaivrai]


Message édité par kadreg le 15-03-2003 à 12:57:20

---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 15-03-2003 à 15:14:48    

bon, ok merci à tous les deux, ça marche, mais seulement si j'enlève la ligne public:, sinon à la compilation il me met Nom de type attendu...
 
Mais maintenant, je voudrais ajouter une ligne Nom,Prenom à mon vecteur...
 
A cause des deux valeurs, j'arrive pas à le faire avec push_back(), que j'arrive à faire fonctionner quand le vecteur ne peut contenir qu'une seule valeur à la fois...
 
De la même manière, je demande tout de suite avant de bloquer, je ferai comment pour récupérer la valeur avec operator[]??
 
Merci d'avance!!

Reply

Marsh Posté le 15-03-2003 à 15:35:48    

Achète un (bon) bouquin sur le C++


Message édité par verdoux le 15-03-2003 à 15:36:01
Reply

Marsh Posté le 15-03-2003 à 15:38:20    

vu toutes les réponses que je trouve sur le net (ici et ailleurs), nul besoin pour moi d'acheter un bouquin...
 
d'autant plus que partant de pas grand chose en prog, j'ai déjà réussi à faire pas mal de trucs, donc je pense continuer comme ça...
 
je sais, c'est con, mais bon, j'aime bien galérer pour un truc, et puis bien retenir la solution pour la suite... ;)  
 
tiens, au fait, tu aurais pas la réponse, par hasard? :D

Reply

Marsh Posté le 15-03-2003 à 15:57:00    

haazheel a écrit :


Mais maintenant, je voudrais ajouter une ligne Nom,Prenom à mon vecteur...
 
A cause des deux valeurs, j'arrive pas à le faire avec push_back(), que j'arrive à faire fonctionner quand le vecteur ne peut contenir qu'une seule valeur à la fois...


 
Parrcequ'il faut que tu push_back une personne, et pas un nom et un prénom. Il va donc falloir que tu instancie une Personne.
 
PS: je suis d'accord avec Verdoux, achète un livre. Il y a le savoir-faire et le savoir-bin faire. En y allant trop par erreur sur les bases, tu risques de prendre de vilaines habitudes, notamment au niveau de la gestion de la mémoire, chose capitale en C++ et source d'erreurs continues.


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 15-03-2003 à 16:03:26    

Surtout que le c++ est l'un des langages les plus tordus et piégeux qui sooient.

Reply

Marsh Posté le 15-03-2003 à 16:12:04    

Bon, ben en attendant que je me trouve un bouquin, voilà où j'en suis:
 
en parcourant les newsgroup sur google, j'ai vu deux solutions à ce problème:
 

  • créer des vecteurs de vecteurs
  • créer une classe comme vous me le suggérez ici


Il est conseillé plusieurs fois la deuxième méthode...
 
Bon, là je cale, je comprends le principe, mais j'arrive pas à l'appliquer...
 
Je résume donc ce que je veux:
un tableau avec deux colonnes fixées (Nom et Prénom) et un nombre de lignes variables.
 
Vous pourriez me montrer comment écrire la classe correspondant à ce tableau ainsi que les fonctions permettant d'ajouter des lignes à ce tableau et de lire ces lignes?
 
Merci d'avance

Reply

Marsh Posté le 15-03-2003 à 16:49:40    

using namespace std;

Reply

Marsh Posté le 15-03-2003 à 16:49:40   

Reply

Marsh Posté le 16-03-2003 à 19:24:12    

Code :
  1. class Personne
  2. {
  3. public:
  4. string nom;
  5. string prenom;
  6. };
  7. vector<Personne> groupe;
  8. Personne nouveau;
  9. nouveau.nom = "Dupont";
  10. nouveau.prenom = "Paul";
  11. groupe.push_back(nouveau);


 
edit: merde, j'oublie toujours la balise de fin de code C/C++!


Message édité par Alload le 16-03-2003 à 19:24:36
Reply

Marsh Posté le 16-03-2003 à 21:13:41    

merci beaucoup!!

Reply

Marsh Posté le 20-03-2003 à 07:16:14    

haazheel a écrit :

ça marche, mais seulement si j'enlève la ligne public:, sinon à la compilation il me met Nom de type attendu...

C'est pas normal du tout ça...
 
Autre façon:

Code :
  1. struct Personne
  2. {
  3. string nom, prenom;
  4. Personne(string lenom, string leprenom):nom(lenom), prenom(leprenom){}
  5. };
  6. int main(){
  7. vector<Personne> groupe;
  8. groupe.push_back( Personne("Dupont", "Paul" ) );
  9. }


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 30-04-2003 à 11:19:06    

Je refais monter ce topic pour vous poser une question:
 
quelle méthode utiliser entre une classe et une structure?
 
quels sont les avantages et les inconvénients de chacune?
 
Merci!!

Reply

Marsh Posté le 30-04-2003 à 16:18:26    

haazheel a écrit :

vu toutes les réponses que je trouve sur le net (ici et ailleurs), nul besoin pour moi d'acheter un bouquin...


T'as pas l'impression que tu abuses un peu ? "J'ai pas envie de m'acheter un bouquin. Bon qui veut bien m'expliquer les templates aujourd'hui ?".
Tu ne peux pas bien progresser sans bouquin ou sans cours.

Reply

Marsh Posté le 30-04-2003 à 16:21:26    

haazheel a écrit :

Je refais monter ce topic pour vous poser une question:
 
quelle méthode utiliser entre une classe et une structure?
 
quels sont les avantages et les inconvénients de chacune?
 
Merci!!

y a pas de différences si ce n'est les droits par défaut

Reply

Marsh Posté le 30-04-2003 à 23:10:49    

merci!!

Reply

Marsh Posté le 01-05-2003 à 00:33:16    

++Taz a écrit :

y a pas de différences si ce n'est les droits par défaut


 
j'aurais dit pareil (les 2 sont 'juste' des bouts de mémoire), mais avec les struct j'ai du mal a imaginer le concept 'héritage'.
 
et y a aussi des ratances au nivo des templates a ce que j'ai vu des fois.

Reply

Sujets relatifs:

Leave a Replay

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