Location | Tag | Media  ||  A | P

벡터원소를 이터레이터로 삭제하고자 할 때의 문제입니다.

아마도 중간의 원소하나를 지우면 뒤에 벡터를 떙겨다가 채워넣는게 아니라

링크드 리스트처럼 이전과 다음 원소를 연결해 주나 봅니다 (?;;)

아래의 코드를 보시면 이해가 빠르실 것 같습니다.

 

 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;
  }

'프로그래밍' 카테고리의 다른 글

NDK CallStack  (0) 2012.11.15
parallel make  (0) 2012.11.15
visual studio expression (boost, tinyxml)  (0) 2012.11.15
Visual Studio Formatter  (0) 2012.11.15
Visual Studio Parallel Build 향상  (0) 2012.11.15
Posted by Bestend
: