У меня есть std::vector какого-то класса, и в моей программе есть какие-то указатели на несколько элементов в векторе, проблема в том, что когда я удаляю один элемент, например первый элемент, все указатели неверны, это пример код:
vector<int> numbers;
numbers.push_back(100);
numbers.push_back(200);
numbers.push_back(300);
int *pNum = & numbers[1]; // pNum pointer to 200
numbers.erase(numbers.begin()); // now pNum pointer to 300
Я так понимаю, почему так происходит, вопрос есть ли способ решения проблемы?
pNum
всегда был указателем на ячейку, содержащую значение 200. - person user1544067   schedule 04.07.2013std::vector<std::unique_ptr<int>>
, тогда вас не заденет релокация... - person Nim   schedule 04.07.2013