私はいくつかのクラスの std::vector を持っています。私のプログラムでは、ベクトル内のいくつかのアイテムへのポインターをいくつか持っています。問題は、最初のアイテムなどの 1 つのアイテムを削除すると、すべてのポインターが間違っていることです。コード:
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
なぜそうなるのか理解できました。問題は、問題を解決する方法があるかどうかです。