0
我有大量的對象指針(讓我們稱之爲A)和一個較小的對象指針(M)的映射與索引A鍵。如何在迭代時更改std :: map元素?
雖然迭代M,我想交換映射的指針第二)與指針當前處於A.
該索引(第一次),在我有這樣的事情:
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)。首先對於回報,然後將A [(* mit).first]更改爲(* mit).second。
我映射的指針始終保持不變 - 儘管調試器似乎顯示更改正確發生。
我在做什麼錯?
所以你想改變你的地圖排序的關鍵? –
「我的映射指針保持固定不變 - 雖然調試器,似乎顯示更改」所以它是否在改變或不是?或者他們是兩個不同的東西? –
這是一個撤銷/重做功能。我想改變地圖上的指針,看起來它已經工作(撤消),但是當我回到地圖(重做)指針仍然具有「舊」值,所以我的重做失敗。 – Kyudos