インデックスのペアのリストのようなパスがボードにあります
list<pair<int,int> > *path;
キャラクターが障害物に到達したら、現在の位置から最後まですべて新しいパスに置き換える必要がありますが、最初から障害物までのパスを同じように保存します(小さなキャラクターが開始セルと目的地セルを持ち、開始から目的地に移動して戻ってもう一度繰り返すことを明確にするため)同じ。多くの計算を回避するために、障害物のないパスの一部を保存し、障害物から最後まで古い部分を新しいものに置き換えるようにします)。反復せずにこれを行う簡単な方法はありますか?
後で明確にするために編集:パスは[(0,0)、(0,1)、(1,1)、(1,2)、(1,3)、(1,4)]であり、障害物はセル上にあります(1,2)したがって、文字は[(0,0)、(0,1)、(1,1)]になり、たとえば[(1,1)、(2,1)、(2 、2)、(1,3)、(1,4)]なので、古いパス(1,1)、(1,2)、(1,3)、(1,4)から(1 、1)、(2,1)、(2,2)、(1,3)、(1,4)