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, }

djm03178   2년 전

잘 나오는 것 같다...고 말씀드리려고 했는데 한 가지 문제점이 보이네요. push_front가 10글자이기 때문에 이를 문자열로 저장하려면 끝에 널 문자를 포함하여 배열 크기가 최소 11칸 이상이 되어야 합니다. undefined behavior니 제 환경에서 잘 나오는 것도 이상하지 않네요.

ijs_1016   2년 전

오 그렇네요

널문자 생각을 안하면 저렇게 되기도 하는군요

감사합니다 많은 도움이 되었습니다.

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