Да, извини. Я пропустил строку кода.
вая контейнер STL (вы также можете взятьboost::unordered_map
а такжеboost::multi_index_container
в учет), который является несмежным, гарантируется ли, что адреса памяти элементов внутри контейнера никогда не изменятся, если ни один элемент не удален (но могут быть добавлены новые)?
например
class ABC { };
//
//...
//
std::list<ABC> abclist;
ABC abc;
abclist.insert(abc);
ABC * abc_ptr = &(*abclist.begin());
Другими словами будетabc_ptr
указывать наabc
на протяжении всего исполнения, если я не удаляюabc
изabc_list
.
Я спрашиваю об этом, потому что я собираюсь обернуть классABC
в C ++ / Cli, поэтому мне нужны указатели наABC
экземпляры в классе оболочки. ABC - простой класс, и я хочу, чтобы контейнер обрабатывал память. Если ответ нет, то я буду использоватьstd::list<ABC*>
.