해결된 질문
작성
·
35
0
안녕하세요 선생님 🙂
테스트케이스가 여러 개인 문제기 때문에 vector를 clear해줬는데요, out of range error가 발생해서 질문 드립니다.
아래 코드의 주석을 살리면 위 에러가 발생합니다. 조언 부탁 드립니다 🙂
답변 2
1
안녕하세요 유태님 ㅎㅎ
vector<int> vecA(N), vecB(M);
//vecA.clear(), vecB.clear();
-> 음... 이clear를 왜 하는지 모르겠습니다. N개짜리 배열을 새로이 선언하면 -> clear를 할 필요가 없지 않을까요? 그리고 clear를 하게 되면 N개짜리 배열이 -> 0개 짜리 배열로 초기화가 되어버립니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. 한유태님 🙂
벡터를 사용하는 과정에서 out of range
오류는 주로 벡터의 크기가 예상과 다르게 초기화되거나 접근하려는 인덱스가 벡터의 크기를 초과할 때 발생하는 문제입니다. 이러한 오류가 발생하는 경우, 벡터의 크기와 모든 인덱스 접근이 제대로 이루어지는지를 확인하는 것이 중요합니다. 주석 부분에서 벡터를 clear()
하면서 다시 초기화하는 부분이 문제라면, 그 이후의 벡터 사용법에 문제가 있는지 확인해 보시는 것이 좋습니다.
이와 관련하여 유사한 문제를 다룬 기존 답변들이 있을 수 있으며, 해당 내용이 도움될 수 있습니다. 다음은 유사한 문제를 다룬 일부 링크입니다:
clear()
한 이후, 벡터의 상태 관리 및 접근에 대한 문제를 다루고 있습니다. 벡터를 초기화하거나 초기 상태를 설정할 때 주의해야 할 점들을 설명합니다.코드를 수정하는 경우, 벡터를 clear()
하신 후 해당 벡터에 요소를 추가하거나 접근할 때 항상 벡터의 크기를 확인하고 필요에 따라 resize
나 push_back
을 사용하여 벡터의 크기를 적절히 설정해 주어야 합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
앗.. 바보같은 생각을 했었네요..
테스트케이스가 여러 개니까 기존 컨테이너에 값이 누적될거고, 이러면 clear를 해줘야겠다라고 너무 기계처럼 생각했었네요;; ㅎㅎ
감사합니다!!