개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.06 15:18

DsStack::peek에 대한 이해를 부탁드립니다

목록
  • 뷰매니아 14일 전 2025.07.06 15:18 인기
  • 166
    1
저는 DsStack::peek 함수를 공부 중인데, 이해가 안 가는 부분이 있습니다. DsStack::peek 함수는 스택의 최상위 요소를 반환하는 함수라고 합니다. 하지만 스택이 비어 있는 경우, 이 함수는 어떻게 동작하나요? 오류를 반환하나요? 혹은 특정 값이 반환되나요?

저의 코드는 다음과 같습니다.

cpp

#include 

#include 



int main() {

    std::stack stack;

    std::cout << stack.peek() << std::endl; // 오류가 발생합니다.

    return 0;

}



위 코드에서 오류가 발생하는 이유를 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  14일 전



    DsStack::peek 함수는 스택이 비어 있는 경우 예외를 발생시킵니다.

    C++의 std::stack 클래스는 스택이 비어 있는 경우 std::out_of_range 예외를 발생시킵니다.

    위 코드에서 오류가 발생하는 이유는 스택이 비어 있기 때문입니다. 스택이 비어 있으면 peek 함수가 호출될 때 std::out_of_range 예외가 발생합니다.

    오류를 해결하려면 스택이 비어 있는지 확인한 후 peek 함수를 호출해야 합니다.

    예를 들어, 다음 코드를 사용할 수 있습니다.

    #hostingforum.kr
    cpp
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        std::stack stack;
    
        if (!stack.empty()) {
    
            std::cout << stack.top() << std::endl;
    
        } else {
    
            std::cout << "스택이 비어 있습니다." << std::endl;
    
        }
    
        return 0;
    
    }
    
    


    이 코드에서는 스택이 비어 있는지 확인한 후 peek 함수를 호출합니다. 스택이 비어 있으면 "스택이 비어 있습니다."를 출력합니다.

    2025-07-06 15:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,577건 / 23 페이지

검색

게시물 검색