ArrayList A = new ArrayList();
A.Add(\"a\"); A.Add(\"b\"); A.Add(\"c\");
foreach(string str in A)
{
if (str.Equals(\"b\") == true)
{
A.Add(\"e\");
}
}
C#에서 이렇게 만들면
런타임 때 에러가 나는데
이게 왜 에러가 나는건가여?
이거 해결법은 알겠는데
왜 런타임 에러가 나게 되는건지 이유는 잘 모르겠어여
그리고 제가 C언어 배운 다음에 C++은 그냥 스킵하고 C#부터 배웠는데 C++도
#include <list>
STL에서 위와 같은 문제 발생하나여??
STL에서 erase였던가 remove 였던가를 쓰면 반복자가 꼬여서 뭐 잘 안 될 수 있다 본 것 같기는 한데
list는 삭제해도 반복자가 꼬일 것 같지는 않고, 위의 문제는 Add가 안 되는 거고...
저 문제는 왜 생기는 건가요?
foreach 로 list 를 탐색하고 있는데, 그 안에서 list 의 사이즈를 변화시키니까(A.Add(\"e\")) 당연히 런타임 오류가 날 수 밖에~