다음을 통해 공유


stack::top 및 stack::empty

사용 하는 방법을 보여 줍니다 있는 stack::topstack::empty STL 함수를 Visual C++.

template<class _TYPE, class _C, class _A>
   value_type& stack::top( );
template<class _TYPE, class _C, class _A>
   const value_type& stack::top( ) const;
template<class _TYPE, class _C, class _A>
   bool stack::empty( ) const;

설명

[!참고]

프로토타입에 클래스/매개 변수 이름은 헤더 파일에서 버전이 일치 하지 않습니다.일부 가독성을 높이기 위해 수정 되었습니다.

함수는 스택 맨 위에 있는 요소를 반환 합니다.되는 요소를 하나 이상의 스택에 위쪽 함수를 호출 하기 전에 확인 해야 합니다.최상위 함수의 첫 번째 버전의 값을 수정할 수 있도록 스택 맨 요소에 대 한 참조를 반환 합니다.두 번째 함수에서는 스택 실수로 수정 하지 않는 것을 고정 참조를 반환 합니다.빈 함수 반환 true 는 스택에서 요소가 없으면.함수가 있을 경우 하나 이상의 요소를 반환 합니다 false.빈 함수를 사용 하면 요소 위쪽 함수를 호출 하기 전에 스택에 남아 있는지 확인 합니다.

예제

// StackTopEmpty.cpp
// compile with: /EHsc
// Illustrates how to use the top function to
// retrieve the last element of the controlled
// sequence. It also illustrates how to use the
// empty function to loop though the stack.
// 
// Functions:
//
//    top   :  returns the top element of the stack.
//    empty :  returns true if the stack has 0 elements.
//////////////////////////////////////////////////////////////////////

#pragma warning(disable:4786)
#include <stack>
#include <iostream>

using namespace std ;

typedef stack<int> STACK_INT;

int main()
{
   STACK_INT stack1;

   cout << "stack1.empty() returned " <<
      (stack1.empty()? "true": "false") << endl;  // Function 3

   cout << "stack1.push(2)" << endl;
   stack1.push(2);

   if (!stack1.empty())                           // Function 3
      cout << "stack1.top() returned " <<
      stack1.top() << endl;                       // Function 1

   cout << "stack1.push(5)" << endl;
   stack1.push(5);

   if (!stack1.empty())                           // Function 3
      cout << "stack1.top() returned " <<
      stack1.top() << endl;                       // Function 1

   cout << "stack1.push(11)" << endl;
   stack1.push(11);

   if (!stack1.empty())                           // Function 3
      cout << "stack1.top() returned " <<
      stack1.top() << endl;                       // Function 1

   // Modify the top item. Set it to 6.
   if (!stack1.empty()) {                         // Function 3
      cout << "stack1.top()=6;" << endl;
      stack1.top()=6;                             // Function 1
   }

   // Repeat until stack is empty
   while (!stack1.empty()) {                      // Function 3
      const int& t=stack1.top();                  // Function 2
      cout << "stack1.top() returned " << t << endl;
      cout << "stack1.pop()" << endl;
      stack1.pop();
   }
}
  

요구 사항

헤더: <stack>

참고 항목

개념

표준 템플릿 라이브러리 샘플