オブジェクト ポインター (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 に変更します。
マップされたポインターは頑固に変更されていません-デバッガーは、変更が正しく行われたことを示しているようです。
私は何を間違っていますか?