11724번 - 연결 요소의 개수
벡터 배열을 사용하면 통과하긴하는데 이중벡터를 사용하면 오류가 나네요 그 이유가 궁금합니다.
코드가 깨지지 않게 다시 올려주세요.
다시 올렸습니다.
5번째 줄의 vector<vector<int>> a는 벡터의 내용을 모조리 통째로 복사해서 새로운 벡터를 만들어 사용하는 것이기 때문에 재귀 호출을 할 때마다 전체 인접 리스트가 복제되어 쌓이게 됩니다. 재귀 호출이 깊어질수록 더욱 많은 메모리를 차지하고 있게 됩니다.
이런 걸 위해 C++에서는 참조자라는 편리한 문법을 제공합니다.
아 함수를 호출할때마다 벡터를 새로 만들어서 메모리에 쌓이는군요.... 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
okemosboy 4년 전
벡터 배열을 사용하면 통과하긴하는데 이중벡터를 사용하면 오류가 나네요 그 이유가 궁금합니다.