baek_su   5년 전

65번째 줄을  i = Tree.erase(i); 이런식으로 하고 for문 조건을 살짝 수정하니까 정답이던데...

list삭제할때 

저절로 다음 노드를 가리키는게 아니라 

 아래 코드처럼하면 list를 가리키는 화살표가 떠돌게 되는건가요??

한가지 더 궁금한게 벡터로 구현할때는 시간 초과가 뜨던데.. 벡터는 erase 할때 erase (시작점+ idx) 이런식으로해서 O(idx) 만큼 시간이 더 걸리는건가요??

//////////////////////////////////////

jung2381187   5년 전

네 맞습니다. 그냥 erase를 하면 이터레이터가 가리키는 메모리가 해제되어서 그 이터레이터를 쓸 수 없습니다. 대신 erase는 다음 원소의 메모리 주소를 리턴합니다.

baek_su   5년 전

답변감사합니다~~!

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