[Débutant]générer un tableau contenant des valeurs de différents types

générer un tableau contenant des valeurs de différents types [Débutant] - C++ - Programmation

Marsh Posté le 27-04-2006 à 17:21:08    

Ma question est relativement simple, je cherche à créer un tableau (donc j'imagine un vector de vector) dans lequel on aura plusieurs types d'éléments différents. Exemple : en prenant une ligne :
 
- sur la premiere colonne, un entier,
- sur la deuxieme colonne, un deuxieme entier,
- sur la troisieme colonne une chaine de caractères string,
- sur la quatrieme colonne une autre chaine de caractères string,
 
comment peut on créer ce type de tableau ? d'autre part, comment pouvoir rajouter une ligne dans le tableau créé ? Doit on faire une sorte de boucle for de ce type :
 

Code :
  1. for(int i=0;i<nb_de_lignes;i++){
  2. mon_tableau[i].push_back(entier1);
  3. mon_tableau[i].push_back(entier2);
  4. mon_tableau[i].push_back(chaine1);
  5. mon_tableau[i].push_back(chaine2);}


 
 
cela fonctionnerait il ? y a-t-il une maniere plus élégante (donc plus Cppesque) de procéder ?
 
Merci pour vos réponses !  :bounce:  

Reply

Marsh Posté le 27-04-2006 à 17:21:08   

Reply

Marsh Posté le 27-04-2006 à 20:57:10    

bah... tout dépends de l'utilisation que tu veux en faire... ne serait-il pas plus simple de faire un struct contennant 4 vecteurs???
EX:

Code :
  1. struct TypeTableau
  2. {
  3. vector<int> colone1;
  4. vector<int> colone2;
  5. vector<string> colone3;
  6. vector<string> colone4;
  7. }
  8. int main()
  9. {
  10. TypeTableau tableau{{1,2,3}{4,5,6}{"a","b","c"}{"d","e","f"}};
  11. /*fera un tableau qui contiendra:
  12. * 1 4 a d
  13. * 2 5 b e
  14. * 3 6 c f
  15. */
  16. }

Reply

Marsh Posté le 28-04-2006 à 10:03:17    

ok cette réponse est déjà intéressante
 
le seul truc est que je veux générer dynamiquement les éléments de ce tableau (appels de méthodes et autres boucles for)
 
pour rajouter une ligne, par exemple, comment pourrais je procéder ?
 
j'ai pour l'instant créé une structure et je créé un vector de struct a la suite :
 

Code :
  1. struct ligne_valeurs
  2. {
  3. int num_terminal;
  4. int timestamp;
  5. std::string parametre;
  6. std::string correspondance;
  7. };
  8. std::vector<struct ligne_valeurs> tableau_valeurs;


 
dans la méthode et dans la boucle, je fais :
 

Code :
  1. tableau_valeurs[i].num_terminal = 2;
  2. tableau_valeurs[i].timestamp = tab_c[i].first;
  3. tableau_valeurs[i].parametre = tab_parametres[j].first;
  4. tableau_valeurs[i].correspondance = tab_parametres[j].second;


 
mais le compilo n'aime pas cette facon d'assigner les valeurs aux champs du tableau on dirait ... (plantage des l'assignation de la premiere ...
 

Reply

Marsh Posté le 28-04-2006 à 11:00:42    

autocorrect :
 
 
 

Code :
  1. ligne_valeurs temp;
  2. temp.num_terminal = 1;
  3. temp.timestamp = tab_c[i].first;
  4. temp.parametre = tab_parametres[j].first;
  5. temp.correspondance = tab_parametres[j].second;
  6. tableau_valeurs.push_back(temp);


 
 
 
=> marche ;)

Reply

Sujets relatifs:

Leave a Replay

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