프로그래밍
visual studio 벡터 삽질 공유
Bestend
2012. 11. 15. 14:28
벡터원소를 이터레이터로 삭제하고자 할 때의 문제입니다.
아마도 중간의 원소하나를 지우면 뒤에 벡터를 떙겨다가 채워넣는게 아니라
링크드 리스트처럼 이전과 다음 원소를 연결해 주나 봅니다 (?;;)
아래의 코드를 보시면 이해가 빠르실 것 같습니다.
for( it = m_Table.begin( ); it != m_Table.end( ); )
{
if ( (*it).iA == 20 )
{
//m_Table.erase(it); //<=====VS2003에서 실행되지만 VS2008에서는 실행시 Error
it = m_Table.erase(it); //<=====VS2008에서는 정상적으로 실행됨
}
else
{
++it;
}