[Variable] Affubler un indice à une variable

psychospire Messages postés 42 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 9 décembre 2008 - 27 nov. 2006 à 11:51
psychospire Messages postés 42 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 9 décembre 2008 - 27 nov. 2006 à 19:00
Bonjour à tous,
Alors voila, comme le dit le titre, j'aimerai associer un indice à une variable, c'est-à-dire créer une variable int bob'i' par exemple et faire varier i pour utiliser plusieurs variables indicées :

Genre pour :
for (int i=0 ; i<n ; i++)
{
   cout<<bob'i'<<endl;
}

j'aimerais que ca m'affiche le contenu des variables bob1, bob2,...,bobn les une apres les autres.

Voila, si certains connaissent la solution à ce problème, les réponses sont les bienvenues. Merci d'avance.

7 réponses

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
27 nov. 2006 à 12:52
int bob[] = {1,2,3};
for (int i=0 ; i<3 ; i++)
{
   cout<Un éditeur de ressources gratuit pour Windows
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
27 nov. 2006 à 13:18
Salut,
moi je te propeserai de faire un vecteur de bob.

vector bob;

bob[0]="blabla";
bob[1]="blablabla";

for (int i=0 ; i<bob.size();i++)
{
   cout<<bob[i]<<endl;
}

ou alors, la magnifique, mais trop peu connue (sans grand interêt il est vrai) commande '##' :
example:
#define concatenate( x, y ) x ## y
...
int xy = 10;
...

Cette marco, va transformer

cout << concatenate( x, y ) << endl;

en

cout << xy << endl;

ce qui affichera bien sur '10'.

donc dans ton exemple :

concatenate(bob,1)= ...
etc...

sans grand interet ma foi, les vectors sont la pour faire ce que tu veux

TuRn3r
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 13
27 nov. 2006 à 13:31
La concaténation peut être utile, mais pas pour ce problème, car si tu fais
for (int i=0 ; i<3 ; i++)
{
   cout << concatenate(bob,i) << endl;
}

Ca va affichier bobi à  chaque fois, et pas bob1, bob2...

_____________________________________
Un éditeur de ressources gratuit pour Windows
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
27 nov. 2006 à 13:49
Je sais, c'est pour ca que j'avais mit 1 et pas i.
De plus, les vectors sont la pour ca !

TuRn3r
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
psychospire Messages postés 42 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 9 décembre 2008 1
27 nov. 2006 à 16:27
Salut, merci pour vos réponses.
Voecchio56, ta méthode marche bien, mais j'aimerais initialiser un nombre n de bobs, sans leur associer de valeur immédiatement.
En fait, mes bobs sont des matrices [N][2] que je veux initialiser et que je remplirais apres en les appelant.
En gros, il me faut bien ca :
 int bob[] = {1,2,3};
for (int i=0 ; i<3 ; i++)
{
   cout<<bob[i]<<endl;
}
mais sans " ={1,2,3} " et en rajoutant le nombre de bobs que je veux initialiser.

Merci d'avance.
0
turnerom Messages postés 492 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 12 janvier 2012 1
27 nov. 2006 à 17:02
vector bob;

if(tu connais à l'avance le nombre de bob)
{
  bob.resize(nb_bob);

  bob[0]="blabla";
  bob[1]="blablabla";
  ...
}
else
{
  bob.push_back("blabla");

  bob.push_back("blablabla");
   ...
}

for (int i=0 ; i<bob.size();i++)
{
   cout<<bob[i]<<endl;
}

TuRn3r
0
psychospire Messages postés 42 Date d'inscription mercredi 8 novembre 2006 Statut Membre Dernière intervention 9 décembre 2008 1
27 nov. 2006 à 19:00
Ok, mais tu n'initialise pas les variables et tu leur attribue une valeur. Ce que je voudrais, c'est initialiser autant de bobs que je veux, mais sans leur attribuer de valeur, et par la suite dans une autre partie du programme, leur attribuer une valeur en fonction de leur indice...
0
Rejoignez-nous