0

オブジェクト ポインター (A と呼びましょう) の大きな配列と、A のインデックスでキー設定されたオブジェクト ポインター (M) の小さなマップがあります。

M を反復しているときに、マップされたポインター (2 番目) を、現在 A のそのインデックス (1 番目) にあるポインターと交換したいと考えています。

私はこのようなものを持っています:

map<LONG, Object*>::iterator mit;
for (mit = M.begin(); mit != M.end(); mit++)
{
    if ((*mit).first != NO_ID)
    {
          Object* pTmp = pA->ReplaceObject((*mit).first, (*mit).second);
          if (pTmp != NULL)
          {
               M.at((*mit).first) = pTmp;
          }
    }
}

ここで、ReplaceObject は最初に返される A[(*mit).first] を取得し、次に A[(*mit).first] を (*mit).second に変更します。

マップされたポインターは頑固に変更されていません-デバッガーは、変更が正しく行われたことを示しているようです。

私は何を間違っていますか?

4

1 に答える 1

0

素晴らしい「木々の森」の瞬間-変更した元に戻る操作を元に戻すスタックにコピーすることを単に無視していました。「エラー」を探すのをやめてコードを読むと、それは明らかでした。D'oh!

于 2013-01-13T21:12:48.613 に答える