Creer vecteur de dimension indefinie

Signaler
Messages postés
11
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008
-
Messages postés
11
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008
-
bonsoir tout le monde

voila mon problème:
j'aimerais rentrer des nombres dans un vecteur et arreter d'en rentrer si le nombre entré est un négatif
comment faire pour allouer la mémoire si on ne sait pas combien d'éléments vont être placés dans ce vecteur?

je n'ai pas encore commencé à taper le code car je n'arrive pas à m'imaginer la solution de ce problème.

Merci pour votre aide

KD

7 réponses

Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
5
salut il y a 2 solutions (tu trouveras sur google si tu ne connais pas):
realloc, ou liste chainée
Messages postés
280
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
8 juillet 2014
5
oops, bien sur il y a une 3 ième solution qui est la plus utilisée: autoriser un nombre maximal d'éléments
Messages postés
11
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008

merci pour la reponse.


est-ce possible d'incrementer de 1 (à chaque fois qu'on rentre un nombre)  la taille du vecteur ?

KD
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
9
C'est possible c'est  sans doute la pire solution (si on utilise un système de réallocations, il faut quand même en faire le moins souvent possible...)
Sinon, regarde aussi la STL, elle propose déja des types vecteur et list déja touts faits:

std::list maListe;

while(caractère_rentré >= 0) {
    maListe.push_back(caractère_rentré);
}

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
11
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008

waw et ca fait quoi ca ??

jamais entendu parler...

KD
Messages postés
38
Date d'inscription
jeudi 13 mars 2008
Statut
Membre
Dernière intervention
9 décembre 2011
2
Tu peut aussi utilisé la STL
exemple:
#include
std::vector maListe;
int x=0;
while (caractèreRentré>=0)
{
    maListe[x]=caractèreRentré;
    x+=1;
}

Et voilà, c'est pas compliqué
Messages postés
11
Date d'inscription
dimanche 23 mars 2008
Statut
Membre
Dernière intervention
28 mars 2008

ah d'accord  

merci

KD