스택이 비어있을때 pop이 자연스럽게 실행되지 않는다고 하셨는데, 그렇지 않습니다.
스택이 비어있을때 pop의 동작은 정의되어있지 않고, 컴파일및 실행 환경에 따라서 예상못한 결과를 불러올 수 있습니다.
따라서 pop할 때는 empty인지 확인하는것이 꼭 필요합니다.
참고로 스택뿐 아니라 queue같은 cpp의 다른 컨테이너 라이브러리에서도 비슷합니다.
5397번 - 키로거
스택이 비어있을때 pop이 자연스럽게 실행되지 않는다고 하셨는데, 그렇지 않습니다.
스택이 비어있을때 pop의 동작은 정의되어있지 않고, 컴파일및 실행 환경에 따라서 예상못한 결과를 불러올 수 있습니다.
따라서 pop할 때는 empty인지 확인하는것이 꼭 필요합니다.
참고로 스택뿐 아니라 queue같은 cpp의 다른 컨테이너 라이브러리에서도 비슷합니다.
댓글을 작성하려면 로그인해야 합니다.
sjyog21 1년 전
if(input[j]=='<'){
if(!a.empty()){//조건문 하나 더 넣어야 하는지
b.push(a.top());
a.pop();
}
}
------------------------------------------------------------------
else if(input[j]=='-'){
if (!a.empty())
a.pop(); //조건문 하나 더 넣어야 하는지
}
이 두 부분에서 if문을 안넣어도
스택이 비어있으면 push나 pop이 자연스럽게(?) 실행되지않을텐데
굳이 if문을 넣어서 비어있는지 확인해야하나요...?