Creer indefiniement ??? [Résolu]

Signaler
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
-
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
-
Bonjour a tous,

Je me demandais si il n'y avais pas une methode permettant de creer
indefiniement des class ou struct comportant par exemple le parametre
'nick' et que l'on puisse ensuite rechercher la class ou struct
correspondant ?

La seule methode que j'utilise pour l'instant est un tableau, donc
ayant une capacité limité ... j'avais pensé a utiliser realloc, mais
j'ai eu plusieurs erreurs de compilation ...

Si quelqu'un avait une idee !

10 réponses

Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005

euh.......



on prend les meme et on recommence, je corrige mon code :



#include
#include <list>
#include <string>
using namespace std;

struct log
{
string nick;
int id;
};

int main()
{
long int i = 0:
list<log*> log_list;
log* instant_log = NULL;
while(i < 1 000 000 000)
{
instant_log = new log;
instant_log.nick = "Frodon";
instant_log.id = i;
log_list.push_back(instant_log);
}

for(list<log*>::iterator it = log_list.begin() ; it != log_list.end() ; it++)
{
delete *it;
*it = NULL;
}
log_list.clear();
return(0);
}

La ca sera surement mieux
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005

hmmm



Tu dois pouvoir faire :



#include <list>

using namespace std;



int main(void)

{

list<ma_classe> ma_liste;

ma_classe* mon_objet = NULL;

while(true)

{

mon_objet = new ma_classe;

ma_liste.push_back(*mon_objet);

}



return 0;



Ca créera des objets mon_objet indéfiniment tant qu'il restera de la mémoire allouable
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005

euh... petite correction quand même, je me suis trompé

dans ce code je crée des objets ma_classe avec new, qui ne sont
pas libérés, ma_liste utilisantle constructeur par recopie



Ce sera surement mieux de faire



list<ma_classe*> ma_liste;

ma_classe* mon_objet = NULL;

while(true)

{

mon_objet = new ma_classe;

ma_liste.push_back(mon_objet);

}





Mets une condition qui s'arrete quand même pour le while, et n'oublie
pas de libérer l'espace memoire alloue pour chacun des objets a la fin.



Du style:

for(list<ma_classe*>::iterator it = ma_liste.begin() ; it != ma_liste.end() ; it++)

{

delete *it;

*it = NULL;

}



ma_liste.clear();
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
Hmm je crois comprendre mais t'aurais pas un tuto bien frais qui
explique toutes les possibilités de list plzz ? ou alors un code
complet et bien fait ? en tout cas je crois que c'est exactement ce
dont j'avais besoin ^^

merci !
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005

Faut d'abord que tu me precise ce que tu veux faire exactement parce
que sinon c'"est trop vague pour que je puisse te créer autre chose que
ce que je t'ai mis



Au cas ou, je te remets un main complet, avec un struct





#include
#include <list>
#include <string>
using namespace std;

struct log
{
string nick;
int id;
};

int main()
{
int i = 0:
list<log> log_list;
log* instant_log = NULL;
while(i < 1 000 000 000)
{
instant_log = new log;
instant_log.nick = "Frodon";
instant_log.id = i;
log_list.push_back(instant_log);
}
}


Quand a un totu de list, c'est la STL (entre autre, regarde list, vector, queue, set et map pour voir ce dont tu as besoin)

Un site d'explication simple sur les list et les vector:

http://www.msoe.edu/eecs/ce/courseinfo/stl/
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005

hmmm, un petit return( 0 ); a la fin du main sera le bienvenu aussi, fais pas comme moi, ne l'oublie pas
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
Lol t'es sure de rien avoir oublié ?? Je peux donc accepter la reponse ??

En tout cas merci bcp, c'est ce que je cherchais !
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
juste une correction :

while(i < 1 000 000 000)
{
instant_log = new log;
instant_log.nick = "Frodon";
instant_log.id = i;
log_list.push_back(instant_log);
}
... boucle infinie, i ne bougeant pas ...
while(i < 1 000 000 000)
{
instant_log = new log;
instant_log.nick = "Frodon";
instant_log.id = i;
log_list.push_back(instant_log);
i++;
}
Messages postés
63
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
25 juillet 2005

ouaip c vrai



Désolé, mais j'ai ai écrit ca a vitesse grand v, parce qu'il fallait
que je finisse un autre prog en urgence, donc c un peu barbare. mais
bon, en le relisant, mis a part ca, ca doit etre tout bon :)



Bye
Messages postés
124
Date d'inscription
jeudi 2 janvier 2003
Statut
Membre
Dernière intervention
16 février 2006
2
C'est l'intention qui compte ^^