10866번 - 덱
안녕하세요,
데큐를 손수 구현했는데, push_front() 부분이 이상한데, 이유를 모르겠어서 질문 남깁니다.
코드 실행결과를 보시면, push_back의 경우는 정상적으로 저장이 되는데요
push_front에서 데큐 행렬을 전달해줄때 맨 앞의 원소가 저장된 값이 아닌 0으로 바뀌네요.
혹시 왜 그런지 아시는 분 있을까요?ㅜ
## Code 실행결과
15
push_back 1
{1, }
push_front 2
# 입력 deque {0, 0, }
# 출력 deque {2, 0, }
{2, 0, }
push_back 3
{2, 0, 3, }
push_back 3434
{2, 0, 3, 3434, }
push_front 4
# 입력 {0, 0, 3, 3434, 0, }
# 출력 {4, 0, 0, 3, 3434, }
{4, 0, 0, 3, 3434, }
push_front 14
# 입력 {0, 0, 0, 3, 3434, 0, }
# 출력 {14, 0, 0, 0, 3, 3434, }
{14, 0, 0, 0, 3, 3434, }
잘 나오는 것 같다...고 말씀드리려고 했는데 한 가지 문제점이 보이네요. push_front가 10글자이기 때문에 이를 문자열로 저장하려면 끝에 널 문자를 포함하여 배열 크기가 최소 11칸 이상이 되어야 합니다. undefined behavior니 제 환경에서 잘 나오는 것도 이상하지 않네요.
오 그렇네요
널문자 생각을 안하면 저렇게 되기도 하는군요
감사합니다 많은 도움이 되었습니다.
댓글을 작성하려면 로그인해야 합니다.
ijs_1016 2년 전
안녕하세요,
데큐를 손수 구현했는데, push_front() 부분이 이상한데, 이유를 모르겠어서 질문 남깁니다.
코드 실행결과를 보시면, push_back의 경우는 정상적으로 저장이 되는데요
push_front에서 데큐 행렬을 전달해줄때 맨 앞의 원소가 저장된 값이 아닌 0으로 바뀌네요.
혹시 왜 그런지 아시는 분 있을까요?ㅜ
## Code 실행결과
15
push_back 1
{1, }
push_front 2
# 입력 deque {0, 0, }
# 출력 deque {2, 0, }
{2, 0, }
push_back 3
{2, 0, 3, }
push_back 3434
{2, 0, 3, 3434, }
push_front 4
# 입력 {0, 0, 3, 3434, 0, }
# 출력 {4, 0, 0, 3, 3434, }
{4, 0, 0, 3, 3434, }
push_front 14
# 입력 {0, 0, 0, 3, 3434, 0, }
# 출력 {14, 0, 0, 0, 3, 3434, }
{14, 0, 0, 0, 3, 3434, }