OVH Cloud OVH Cloud

STL et allocation memoire

12 réponses
Avatar
heinquoi
bjr,
les conteneurs de la stl sont -ils definie dans le tas, sinon peut-on le
faire ?
j'ai fait quelques essais, et cela semble possible, du moins avec map.
Pourtant, je croyait que pour utiliser new, la taille de l'objet devait etre
connu, histoire de pouvoir reserver l'espace memoire. or les listes chainés
et autres hormis les vector ne sont pas de taille fixe.A moins qu'il n'y ait
une reallocations memoire dans le tas,pour chaque donnée suplementaires
le web n'ayant pas répondu a ma question ( j'ai pt'etre pas trouvé) ,
infirmé ou affirmé mon hypothese, il y aurait il un 'gourou' de la STL ...
La question semblera evidente à bcp, et je remercie ceux qui y répondrons
cordialement
H

2 réponses

1 2
Avatar
drkm
Gabriel Dos Reis writes:

drkm writes:

| Je serais incapable de l'affirmer. Mais je pense qu'il s'agissait
| bien de la racine carrée de deux.

Il s'agit bien du nombre d'or, (1 + sqrt(2))/2.

| Je me demande si ce n'était pas
| dans une partie de la doc de la GNU libstdc++,

Cela m'étonnerait.


En effet, je viens de voir qu'elle utilise un facteur 2 (du moins,
en cherchant vite-fait dans les sources).

--drkm

Avatar
Nicolas Repiquet
"heinquoi" <nospam* wrote in message
news:40c785cd$0$13815$
bjr,
les conteneurs de la stl sont -ils definie dans le tas, sinon peut-on le
faire ?
j'ai fait quelques essais, et cela semble possible, du moins avec map.
Pourtant, je croyait que pour utiliser new, la taille de l'objet devait
etre

connu, histoire de pouvoir reserver l'espace memoire. or les listes
chainés

et autres hormis les vector ne sont pas de taille fixe.A moins qu'il n'y
ait

une reallocations memoire dans le tas,pour chaque donnée suplementaires
le web n'ayant pas répondu a ma question ( j'ai pt'etre pas trouvé) ,
infirmé ou affirmé mon hypothese, il y aurait il un 'gourou' de la STL ...
La question semblera evidente à bcp, et je remercie ceux qui y répondrons
cordialement
H


La structure du conteneur est allouée sur le tas si l'objet est créé ( new )
ou sur la pile si la variable est automatique. L'endroit où est alloué le
contenu de ton container dépend de l'Allocator utilisé. Par défault,
l'Allocator fourni utilise le tas.

J'espère que j'ai pas dit de bêtises !

-- Nicolas Repiquet

1 2