okemosboy   4년 전

벡터 배열을 사용하면 통과하긴하는데 이중벡터를 사용하면 오류가 나네요 그 이유가 궁금합니다. 

djm03178   4년 전

코드가 깨지지 않게 다시 올려주세요.

okemosboy   4년 전

다시 올렸습니다.

djm03178   4년 전

5번째 줄의 vector<vector<int>> a는 벡터의 내용을 모조리 통째로 복사해서 새로운 벡터를 만들어 사용하는 것이기 때문에 재귀 호출을 할 때마다 전체 인접 리스트가 복제되어 쌓이게 됩니다. 재귀 호출이 깊어질수록 더욱 많은 메모리를 차지하고 있게 됩니다.

이런 걸 위해 C++에서는 참조자라는 편리한 문법을 제공합니다.

okemosboy   4년 전

아 함수를 호출할때마다 벡터를 새로 만들어서 메모리에 쌓이는군요.... 감사합니다. 

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