begin process at 2012 05 30 18:09:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Algorithme

 > 

Maths

 > 

tableau de taille variable en c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

tableau de taille variable en c++

vendredi 22 avril 2011 à 14:04:56 | tableau de taille variable en c++

petitlapino

Bonjour à tous,
J'ai un petit soucis de débutant : comment déclarer un tableau de taille variable car j'ai récupérer des entiers à partir d'un fichier et je sais pas la taille exacte de ce fichier, Merci d'avance
vendredi 22 avril 2011 à 16:03:53 | Re : tableau de taille variable en c++

patatalo

Membre Club Administrateur CodeS-SourceS
salut,


Un tableau ne peut pas avoir de taille variable contrairement à une liste. Le mieux est de le réallouer à volonté quand il est plein ou initialisé avec une taille plus ou moins grande.

Certains templates ont une fonction resize mais cette fonction alloue un nouveau bloc mémoire de la taille voulue, copie les valeurs dans ce nouveau tableau et libère l'ancien.

L'utilisation d'une fonction système réalloc est plus efficace car il se peut que le pointeur de base reste identique, ce qui évite de recopier le tableau et dans tous les cas, c'est le système qui s'en occupe.

@++
vendredi 22 avril 2011 à 17:17:24 | Re : tableau de taille variable en c++

CptPingu

Administrateur CodeS-SourceS
Je te conseille l'utilisation de std::vector ou std::list.

Ex:
Code C/C++ :
// On peut aussi mettre std::list<int> au lieu de std::vector
typedef std::vector<int>::const_iterator iter;
std::vector<int> tab;

tab.push_back(5);
tab.push_back(15);
tab.push_back(85);

for (iter it = tab.begin(); it != tab.end(); ++it)
  std::cout << *it << std::endl;


Certains templates ont une fonction resize mais cette fonction alloue un nouveau bloc mémoire de la taille voulue, copie les valeurs dans ce nouveau tableau et libère l'ancien.


Ce n'est pas le cas de std::vector. Il alloue une taille trop grande, d'une manière que l'on peut spécifier. Par défaut, plus on met de données dedans, et plus il s'élargit rapidement.
Quant à std::list, c'est en fait une liste chaînées en interne (c'est pour ça qu'il n'y a pas d'accesseur []).

Si on spécifie un .resize, il va tenter un realloc (toujours en allouant "trop" exprès, et uniquement si nécessaire), et n'ira pas bêtement recopier les données ailleurs.

________________________________________________________________________
Historique de mes créations, et quelques articles:
http://0217021.free.fr/portfolio
Merci d'utiliser Réponse acceptée si un post répond à votre question


Cette discussion est classée dans : fichier, taille, variable, tableau


Répondre à ce message

Sujets en rapport avec ce message

tableau d'objet comme variable d'instance [ par MrKribou ] Bon dans le fichier .h (ou fait c comment qu'on appele se fichier la ? header ?) comment declare ton un tableau d'objet comme variable d'instance.Par Tableau de grande taille [ par LuckyNut ] Slut,J'ai un problème pour créer un tableau de grande taille à 2 dimensions : int tab[100][62000];Le programme plante sur un "stack overflow"Cette var Comment stocker une chaine de caractere d'un fichier dans une variable ou un tableau [ par Jarod1980 ] Bonjour tout le monde,Voilà je voudrais savoir si quelqu'un pourrait m'aider à résoudre un petit probleme. Je voudrais faire un programme qui ouvre un tableaux dynamique (à taille variable) : petite précision [ par Amanobuo ] Salut ! J aimerai une petite précision sur les tableau dynamique, créé avec un new et un pointeur. Quant j'allou la memoire avec le pointeur : tableau declarer un tableau de taille variable [ par Seb33300 ] Bonjourcomment déaclarer un tableau avec un taille déclaré dans une variable ?taille = 10;tableau[taille]; ne marche pasmerci tableau a taille variable en C [ par fandestargate ] Voila, je cherhcer a programmer un tableau dont la taille serait définit par une variable qu'on pourrait choisir au debut du programme:taille=0;scanf Agrandir la taille d'un tableau ? [ par ndubien ] Bonjour, Je cherche à agrandir un tableau ainsi:int variable = malloc( sizeof(int)*taille );Pour qu'elle devienne: int variable = malloc( sizeof(int)* Taille de tableau de string de taille variable [ par laurent134 ] Bonjour, J'ai un petit soucis de débutant : comment determiner la taille (nombre d'élément) d'un tableau de string, sachant que les string n'ont pas Récupérer une matrice à partir d'un fichier [ par neone ] Bonjour, je chercher a récupérer une matrice a partir d'un fichier. 1- la taille est variable (nombre de lignes et colonnes) 2- les données sont organ charger un tableau depuis un fichier text [ par hdinn ] Salut a tous,bin.... je voulais charger un tableau depuis les valeur d'un fichier text. mon fichier txt contient comme ci: 0 1 1 0 1 0 1 0 1 1 0 1 0 0


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales