まあ、それが可能かどうかはわかりませんが、次のようになります。
struct stPiece
{
/* some stuff */
stPiece *mother; // pointer to the piece that created this one
};
vector<stPiece> pieces;
'mother'によって参照されているピースを、そのポインターだけを参照して、ピースから消去することは可能ですか?どのように?
それは他の参照を台無しにしますか?(つまり、それがベクトルの最後の要素でない場合は、次の要素を他のメモリ位置にシフトし、他の「*母」は一定のままにします)。もちろん、すべての子の部分が削除されると想定しています(したがって、同じ母親に向かうポインターを更新する必要はありません)。
ありがとう!