-
[STD::Vector] - Question
Bonjour,
Dans un programme, j'utilise un vecteur d'objets (std::vector<objet>) pour stocker...
des objets !
Je voudrais savoir s'il est possible de stocker un pointeur vers l'un de ces objets.
Par exemple, si j'ai un pointeur declaré comme ça :
objet *pObjetFocus;
Et qu'apres je fait (avec It un itérateur) :
for (It=vecteur.begin();It<vecteur.end();It++)
{
if (untruc) pObjetFocus = &(*It);
}
Est-ce que je suis sur que pObjetFocus va toujours pointer sur le bon objet, ou est-ce qu'apres des insertions/suppressions dans le vecteur il est possible que l'adresse de l'objet ait changée ?
Merci !
-
Une opération sur un vecteur peut très bien faire en sorte que la mémoire soit réallouée ailleurs, tu ne peux donc pas garder de pointeur ou d'itérateur sur des éléments dans ce cas. Par contre tu peux stocker les indices de ces éléments. Tu peux aussi utiliser std::list, dont les éléments ne bougent jamais en mémoire.
-
Ok, je m'en doutais un peu, mais je voulais etre sur !
Merci !