Menu

vector의 삭제시 주의할 점

2015. 12. 6. 23:01

냥쿤이 Note

vector.erase(iter) 를 실행하면


iter 는 그 다음 노드를 가리킨다


=============================================

1. outer_loop; 를 활용

 

end_outer_loop:

while (iter != vector.end())

{

int card_No = iter->card_No;

int card_AccNo = iter->card_accNo;

for (int i = 0; i < 5; i++)

{

if (card_AccNo == sellCard->card_accNo[i])

{

getSilver += allCardMap.find(card_No)->second->sellPrice;

pInfo->vector.erase(iter);


goto end_outer_loop;

}

}

iter++;

}



2. iter pInfo->inven_vector.erase(iter); // iter의 다음 노드를 저장


3. vector.erase(iter); break;