Punteros a elementos de contenedores STL
Dado un contenedor STL (también puede tomarboost::unordered_map
yboost::multi_index_container
en cuenta) que no es contiguo, ¿se garantiza que las direcciones de memoria de los elementos dentro del contenedor nunca cambian si no se elimina ningún elemento (pero se pueden agregar nuevas)?
p.ej
class ABC { };
//
//...
//
std::list<ABC> abclist;
ABC abc;
abclist.insert(abc);
ABC * abc_ptr = &(*abclist.begin());
En otras palabras,abc_ptr
ser señalado aabc
durante toda la ejecución, si no eliminoabc
desdeabc_list
.
Estoy preguntando esto porque voy a terminar la claseABC
en C ++ / Cli, por lo que necesito punteros a laABC
instancias en la clase contenedora. ABC es una clase simple y quiero que el contenedor maneje la memoria. Si la respuesta es no, usaréstd::list<ABC*>
.