analog2003   1년 전

문제를 풀다가 숫자들을 map 클래스로 받고 한번에 min, max를 출력하려 했더니 오류가 뜨더라고요.

오류 내용이 이상해서 이것저것 해보다보니 map 클래스는 따로 다른걸 할당하거나 없애거나 하지도 않았는데 출력 처리만 해도 없어지더라고요..

휘발성이라도 있는건지 궁금해서 찾아봐도 안나와서 질문드립니다.

map 클래스가 저렇게 사라지는 특성이 어디에서 기인한건지 궁금합니다.

seawon0808   1년 전

이렇게 하면 nums 가 출력이 안되는 것을 보니 한 번 사용되면 사라지는 것이 아닐까요?

그냥 list로 바꿔서 사용하시는게 제일 좋은 것 같습니다.

https://dojang.io/mod/page/vie...

이게 도움이 될지는 모르겠네요.

fecapark   1년 전

iterable 객체의 특성 때문에 그렇습니다.

하단의 코드를 보시면 이해가 되실겁니다.


iterable 객체를 이용해서 iterator를 만들게 되고, 이를 돌리게 되면 

직접 해당 iterable 객체를 참조하여 값을 불러오고 iteration index에 1이 더해지게 됩니다.


이와 같은 방식으로 min 함수를 실행해서 iteration을 전부 돌리고 나면

iteration index가 마지막 아이템의 다음(끝)을 가리키고 있기 때문에

max 함수를 실행하게 되더라도 iteration을 할 수 없어 아이템을 못 불러오는 것입 니다.



analog2003   1년 전

두분다 감사합니다 ㅎㅎ 이해했습니다

댓글을 작성하려면 로그인해야 합니다.