Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1231 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Taille maximale d'une liste en mémoire (std::list de la STL)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Taille maximale d'une liste en mémoire (std::list de la STL)

n°1683911
kason
Ab uno disce omnes
Posté le 08-02-2008 à 12:00:28  profilanswer
 

Je voudrais connaître la taille maximale d'une liste créée à partir de la STL.  
 
Est-elle fixe ?
Peut-on modifier la taille max à volonté ou existe-t-il une valeur seuil critique ?
Dépend-elle d'une version de la STL (s'il existe plusieurs versions...) ?  
Dépend-elle du type d'élément que l'on stocke dans la liste (integer, float, string, objet lamda...) ?
Comment est-elle calculée ?
Que fait exactement resize ?

mood
Publicité
Posté le 08-02-2008 à 12:00:28  profilanswer
 

n°1683919
capitainei​gloo
Posté le 08-02-2008 à 12:08:33  profilanswer
 

kason a écrit :

Je voudrais connaître la taille maximale d'une liste créée à partir de la STL.


 
list::max_size()   [:major dutch]  

n°1683964
kason
Ab uno disce omnes
Posté le 08-02-2008 à 14:06:32  profilanswer
 

capitaineigloo a écrit :


 
list::max_size()   [:major dutch]  


 
En fait, je voudrais justement avoir plus de précision sur la valeur que retourne la méthode max_size() :jap:

n°1683979
Taz
bisounours-codeur
Posté le 08-02-2008 à 14:26:09  profilanswer
 

et bien c'est une valeur de type std::list<T>::size_type

n°1683982
Taz
bisounours-codeur
Posté le 08-02-2008 à 14:29:53  profilanswer
 

toutes façons cette valeur ne sert à rien. C'est quoi ta véritable question ? La taille maximale n'est pas fixe de toutes façons.

n°1684042
kason
Ab uno disce omnes
Posté le 08-02-2008 à 15:44:50  profilanswer
 

Taz a écrit :

toutes façons cette valeur ne sert à rien. C'est quoi ta véritable question ? La taille maximale n'est pas fixe de toutes façons.


En fait, j'ai un souci lors de l'ajout d'un élément dans une liste. Je voudrais savoir s'il est possible de saturer facilement une std::list. Si la taille maximale n'est pas fixe, quel est son ordre de grandeur ? x fois la taille de l'objet stocké dans la liste ? La version de la librairie est-elle impactée ?
 
J'ai déjà utilisé std::list et je n'ai jamais eu des problèmes d'ajout d'élément auparavant.
Voilà le contexte du problème : dessiner une carte qui contient 4000 vecteurs. Lors du chargement de la carte en mémoire, les points des vecteurs sont stockés dans une liste (on a qqch comme std::list<PointGeo> ). L'exécutable plante et génère un core durant l'ajout d'un élément dans la liste. Avec 1000 vecteurs, la carte se dessine normalement.
 
Il est à noter que le plantage a lieu non sur un push_back mais sur l'allocation d'un nouvel objet de type PointGeo...

n°1684222
tpierron
Posté le 08-02-2008 à 20:30:36  profilanswer
 

Mouarf, une classe de liste même pas foutue de gérer 4000 pauvres éléments, c'est soit qu'elle a été conçue avec les pieds d'un cul-de-jatte, soit que l'erreur vient de ton coté. Venant de la STL, je me pencherais d'abord sur ton code (au hasard buffer overflow, d'autant plus que ça foire au moment de l'allocation : symptômes typiques d'une écriture dans un espace non réservé).

n°1684399
Taz
bisounours-codeur
Posté le 09-02-2008 à 16:52:28  profilanswer
 

Tant que tu ne ramasses pas de std::bad_alloc, c'est que ce n'est pas un problème de capacité mémoire.

n°1684962
kason
Ab uno disce omnes
Posté le 11-02-2008 à 16:57:50  profilanswer
 

OK, mais il y a qqch qui me tracasse:
En termes de capacité, on ne devrait pas avoir la même capacité max pour des listes dans lesquelles on stocke des entiers et pour celles dans lesquelles on stocke des objets (classe avec pas mal d'attributs) ?

n°1684964
Joel F
Real men use unique_ptr
Posté le 11-02-2008 à 17:02:57  profilanswer
 

ca n'a aucun rapport. Les listes utilisent l'allocation dynamique pour leur contenu. on est pas en PASCAL

Message cité 1 fois
Message édité par Joel F le 11-02-2008 à 17:03:10
mood
Publicité
Posté le 11-02-2008 à 17:02:57  profilanswer
 

n°1685454
kason
Ab uno disce omnes
Posté le 12-02-2008 à 16:58:03  profilanswer
 

Joel F a écrit :

ca n'a aucun rapport. Les listes utilisent l'allocation dynamique pour leur contenu. on est pas en PASCAL


OK, je vois :whistle:  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Taille maximale d'une liste en mémoire (std::list de la STL)

 

Sujets relatifs
adapter l'arrière plan à la taille de l'écran ?[VBS] AD Créer liste distrib + adresse mail
Charger un HashTable dans une Listaccés violation de la mémoire
accés violation de la mémoireProblème de chargement de donnée dans une liste
Problème pour adapter la taille d'une image à la cellule d'un tableau[PHP] ftp_get taille limite de fichier à télécharger
Recherche : une liste de noms, prénoms, coordonnées, etc. facticesTableau planning taille cellule dynamique
Plus de sujets relatifs à : Taille maximale d'une liste en mémoire (std::list de la STL)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR