Ponteiros para elementos de contêineres STL
Dado um contêiner STL (você também podeboost::unordered_map
eboost::multi_index_container
em conta) que não é contíguo, é garantido que os endereços de memória dos elementos dentro do contêiner nunca sejam alterados se nenhum elemento for removido (mas novos podem ser adicionados)?
por exemplo.
class ABC { };
//
//...
//
std::list<ABC> abclist;
ABC abc;
abclist.insert(abc);
ABC * abc_ptr = &(*abclist.begin());
Em outras palavras,abc_ptr
ser apontado paraabc
durante a execução, se eu não removerabc
deabc_list
.
Estou perguntando isso porque vou encerrar a aulaABC
em C ++ / Cli, então eu preciso de ponteiros para oABC
instâncias na classe wrapper. ABC é uma classe simples e quero que o contêiner manipule a memória. Se a resposta for não, usareistd::list<ABC*>
.