Bonjour,
Une question que je me pose sur l'allocation de mémoire dans les listes et les vecteurs :
Est-il possible de stocker dans un pointeur l'adresse d'un objet inséré dans une liste ou dans un vecteur et d'être sûr que ce pointeur pointe toujours sur l'objet ?
En gros, faire :
Pour les listes, il s'agit de listes chainées, donc à priori, pas de soucis...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 std::list conteneur; ou std::vector conteneur; cObject objet; cObject *pObjet = &objet; conteneur.push_back(objet);
Mais pour les vecteurs, que se passe-t-il en cas de réallocation (pour cause de dépassement, par exemple) ?
Est-ce qu'au moment de la réallocation, l'objet lui-même est déplacé ?
Ou est-ce que seulement la zone réservée pour les itérateurs est réallouée et seulement les itérateurs sont déplacés ?
Merci !
Partager