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 :

Acces éléments tableau dynamique


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut Acces éléments tableau dynamique
    Bonjour a toutes et a tous ,
    Dabord le petit bout de code puis ensuite ma question .

    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
    #ifndef JEUX_H_
    #define JEUX_H_
    #include <iostream>
    #include <vector>
    #include <string>
     
    class Information
    {
      public:
      Information();
      ~Information();
      static void saisie(std::vector<std::string>&tab,size_t taille);
      static void affiche(std::vector<std::string>&tab,size_t taille);
    };
     
    #endif /* JEUX_H_ */
    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
    Information::Information(){}
    Information::~Information(){}
     
    void Information::saisie(vector<string> &tab,size_t taille)
    {
    	tab.clear();
    	 for(size_t i(0);i<taille;++i){
         cout << "Entrez le nom du " << i+1 <<" joueur" << endl;
         string name;
         cin >> name;
         tab.push_back(name);
     
     
    	}
    }
    void Information::affiche(vector<string> &tab,size_t taille)
    {
    	for(size_t i(0);i< taille;++i){
    		cout << "Le joueur " << i+1 << " est " << tab[i]<< endl;
    	}
    }
    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
    #include "jeux.h"
    #include <iostream>
    #include <vector>
    using namespace std;
     
    int main()
    {
    	Information equipe1 ,equipe2;
     
     
    	char a;
    	 cout << "Voulez vous faire une partie ?" << endl;
    	 cout << "Tapez o (oui) ou n (non)"<< endl;
    	 cin >> a;
     
    	 if(a == 'o')
    	 {
    	   vector<string>tab;
    	   size_t nb(0);
    	   cout << "Quel est le nombre de personne dans votre equipe ?" << endl;
    	   cin >> nb;
     
    	   cout <<"1ere equipe : " << endl;
    	   equipe1.saisie(tab,nb);
    	   cout << "2eme equipe : " << endl;
    	   equipe2.saisie(tab,nb);
    	   cout << "1ere equipe" << endl;
    	   equipe1.affiche(tab,nb);
    	   cout <<"2eme equipe" << endl;
    	   equipe2.affiche(tab,nb);
         }else { cout << "Aurevoir,a bientot" << endl;}
    Admettons que pour chaque instance " equipe1" et "equipe2 " , j'ai 3 personnes dans chacune d'entre elle .
    equipe1 :
    -toto
    -tata
    -titi
    equipe2:
    -riri
    -fifi
    -loulou
    Comment puis-je afficher " fifi" par exemple ?
    J'avais pensé a :
    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    La classe std::vector surcharge l'opérateur [] (<- documentation cplusplus.com en anglais) : donc oui on peut faire tab|i].

    Tu as aussi la méthode at et les itérateurs (std::vector::front, std::vector::back, ...) (<- documentation cplusplus.com en anglais)

  3. #3
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    J'avais ecrit :
    equipe2.tab[1]
    Je me demandais si on pouvait acceder directement a un élément en l'occurence "fifi" de mon instance equipe2

  4. #4
    Expert confirmé
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 599
    Par défaut
    Bonjour,

    Le problème de ton instance equipe2, c'est qu'elle contient absolument rien du tout. Relis-là bien. Il n'y a aucun rapport entre tab et tes 2 instances equipe1 et equipe2, sauf qu'à un moment tu t'es servi de ces instances pour accéder à tab.

  5. #5
    Membre confirmé
    Homme Profil pro
    Deficient visuel
    Inscrit en
    Mai 2019
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Deficient visuel

    Informations forums :
    Inscription : Mai 2019
    Messages : 216
    Par défaut
    Je debute , donc pour le moment ce que je sais , c'est qu'il faut declarer mes objets dans le main et ensuite ca me permet d'utiliser les méthodes de ma classe .
    Concretement je vois pas trop ce que j'aurai du faire .
    Mais on est vendredi soir et vous vous appretez a sortir faire la fetes , je ne veux pas vous retenir

  6. #6
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Citation Envoyé par chris7522 Voir le message
    Concretement je vois pas trop ce que j'aurai du faire .
    Cela ne te parle pas : attribut membre et plus loin encapsulation.
    Et donc toutes tes méthodes sont à refaire (parce que la liste en paramètre ne sert plus à rien), il faut réfléchir à recopier les listes saisies ou alors ajouter au fil de l'eau nom par nom, ..., l'affichage et la saisie peut être fait avec les opérateurs >> et << (en méthodes ou fonctions amies), ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Information
    {
    /* ... */
     
    private:
     
        std::vector<std::string> list_names;
    };

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. Suppression élément d'un tableau dynamique
    Par gigacool1994 dans le forum C++
    Réponses: 7
    Dernier message: 08/01/2013, 23h52
  3. Réponses: 1
    Dernier message: 15/01/2011, 05h51
  4. Réponses: 2
    Dernier message: 03/11/2007, 11h24
  5. problème d'accès a des éléments créés dynamiquement
    Par Pymm dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 21/07/2005, 17h13

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