[Variable] Affubler un indice à une variable

Signaler
Messages postés
42
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
9 décembre 2008
-
Messages postés
42
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
9 décembre 2008
-
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

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
int bob[] = {1,2,3};
for (int i=0 ; i<3 ; i++)
{
   cout<Un éditeur de ressources gratuit pour Windows
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
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
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
Je sais, c'est pour ca que j'avais mit 1 et pas i.
De plus, les vectors sont la pour ca !

TuRn3r
Messages postés
42
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
9 décembre 2008
1
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.
Messages postés
492
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2012
1
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
Messages postés
42
Date d'inscription
mercredi 8 novembre 2006
Statut
Membre
Dernière intervention
9 décembre 2008
1
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...