16235번 - 나무 재테크
65번째 줄을 i = Tree.erase(i); 이런식으로 하고 for문 조건을 살짝 수정하니까 정답이던데...
list삭제할때
저절로 다음 노드를 가리키는게 아니라
아래 코드처럼하면 list를 가리키는 화살표가 떠돌게 되는건가요??
한가지 더 궁금한게 벡터로 구현할때는 시간 초과가 뜨던데.. 벡터는 erase 할때 erase (시작점+ idx) 이런식으로해서 O(idx) 만큼 시간이 더 걸리는건가요??
//////////////////////////////////////
네 맞습니다. 그냥 erase를 하면 이터레이터가 가리키는 메모리가 해제되어서 그 이터레이터를 쓸 수 없습니다. 대신 erase는 다음 원소의 메모리 주소를 리턴합니다.
답변감사합니다~~!
댓글을 작성하려면 로그인해야 합니다.
baek_su 5년 전
65번째 줄을 i = Tree.erase(i); 이런식으로 하고 for문 조건을 살짝 수정하니까 정답이던데...
list삭제할때
저절로 다음 노드를 가리키는게 아니라
아래 코드처럼하면 list를 가리키는 화살표가 떠돌게 되는건가요??
한가지 더 궁금한게 벡터로 구현할때는 시간 초과가 뜨던데.. 벡터는 erase 할때 erase (시작점+ idx) 이런식으로해서 O(idx) 만큼 시간이 더 걸리는건가요??
//////////////////////////////////////