다음을 통해 공유


<stack> 연산자

operator!=

연산자의 좌변에 있는 stack 개체가 우변에 있는 stack 개체와 같지 않은지 테스트합니다.

bool operator!=(const stack <Type, Container>& left, const stack <Type, Container>& right,);

매개 변수

left
stack 형식의 개체입니다.

right
stack 형식의 개체입니다.

Return Value

true 스택 또는 스택이 같지 않으면 false 스택 또는 스택이 같으면 입니다.

설명

stack 개체 간의 비교는 해당 요소의 쌍 비교를 기반으로 합니다. 포함된 요소 수가 같고 개별 요소값이 같으면 두 스택은 같은 것입니다. 그렇지 않으면 목록은 같지 않은 것입니다.

예시

// stack_op_me.cpp
// compile with: /EHsc
#include <stack>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // Declares stacks with vector base containers
   stack <int, vector<int> > s1, s2, s3;

   // The following would have cause an error because stacks with
   // different base containers are not equality comparable
   // stack <int, list<int> >  s3;

   s1.push( 1 );
   s2.push( 2 );
   s3.push( 1 );

   if ( s1 != s2 )
      cout << "The stacks s1 and s2 are not equal." << endl;
   else
      cout << "The stacks s1 and s2 are equal." << endl;

   if ( s1 != s3 )
      cout << "The stacks s1 and s3 are not equal." << endl;
   else
      cout << "The stacks s1 and s3 are equal." << endl;
}
The stacks s1 and s2 are not equal.
The stacks s1 and s3 are equal.

operator<

연산자의 좌변에 있는 스택 개체가 우변에 있는 스택 개체보다 작은지 테스트합니다.

bool operator<(const stack <Type, Container>& left, const stack <Type, Container>& right);

매개 변수

left
stack 형식의 개체입니다.

right
stack 형식의 개체입니다.

Return Value

true 연산자의 왼쪽에 있는 스택이 연산자의 오른쪽에 있는 스택보다 작고 같지 않으면 false.

설명

stack 개체 간의 비교는 해당 요소의 쌍 비교를 기반으로 합니다. 두 stack 개체 간의 보다 작음 관계는 같지 않은 요소의 첫 번째 쌍 비교를 기반으로 합니다.

예시

// stack_op_lt.cpp
// compile with: /EHsc
#include <stack>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   // Declares stacks with list base container
   stack <int, list<int> > s1, s2, s3;

   s1.push( 2 );
   s1.push( 4 );
   s1.push( 6 );
   s1.push( 8 );
   s2.push( 5 );
   s2.push( 10 );
   s3.push( 2 );
   s3.push( 4 );
   s3.push( 6 );
   s3.push( 8 );

   if ( s1 >= s2 )
      cout << "The stack s1 is greater than or equal to "
           << "the stack s2." << endl;
   else
      cout << "The stack s1 is less than "
           << "the stack s2." << endl;

   if ( s1>= s3 )
      cout << "The stack s1 is greater than or equal to "
           << "the stack s3." << endl;
   else
      cout << "The stack s1 is less than "
           << "the stack s3." << endl;

   // to print out the stack s1 ( by unstacking the elements):
   stack <int>::size_type i_size_s1 = s1.size( );
   cout << "The stack s1 from the top down is: ( ";
   unsigned int i;
   for ( i = 1 ; i <= i_size_s1 ; i++ )
   {
      cout << s1.top( ) << " ";
      s1.pop( );
   }
   cout << ")." << endl;
}
The stack s1 is less than the stack s2.
The stack s1 is greater than or equal to the stack s3.
The stack s1 from the top down is: ( 8 6 4 2 ).

operator<=

연산자의 좌변에 있는 스택 개체가 우변에 있는 스택 개체보다 작거나 같은지 테스트합니다.

bool operator<=(const stack <Type, Container>& left, const stack <Type, Container>& right);

매개 변수

left
stack 형식의 개체입니다.

right
stack 형식의 개체입니다.

Return Value

true 연산자의 왼쪽에 있는 스택이 연산자의 오른쪽에 있는 스택보다 작거나 같으면 false.

설명

stack 개체 간의 비교는 해당 요소의 쌍 비교를 기반으로 합니다. 두 stack 개체 간의 작거나 같음 관계는 같지 않은 첫 번째 요소 쌍의 비교를 기반으로 합니다.

예시

// stack_op_le.cpp
// compile with: /EHsc
#include <stack>
#include <iostream>

int main( )
{
   using namespace std;

   // Declares stacks with default deque base container
   stack <int> s1, s2, s3;

   s1.push( 5 );
   s1.push( 10 );
   s2.push( 1 );
   s2.push( 2 );
   s3.push( 5 );
   s3.push( 10 );

   if ( s1 <= s2 )
      cout << "The stack s1 is less than or equal to "
           << "the stack s2." << endl;
   else
      cout << "The stack s1 is greater than "
           << "the stack s2." << endl;

   if ( s1 <= s3 )
      cout << "The stack s1 is less than or equal to "
           << "the stack s3." << endl;
   else
      cout << "The stack s1 is greater than "
           << "the stack s3." << endl;
}
The stack s1 is greater than the stack s2.
The stack s1 is less than or equal to the stack s3.

연산자==

연산자의 좌변에 있는 stack 개체가 우변에 있는 stack 개체와 같은지 테스트합니다.

bool operator==(const stack <Type, Container>& left, const stack <Type, Container>& right);

매개 변수

left
stack 형식의 개체입니다.

right
stack 형식의 개체입니다.

Return Value

true 스택 또는 스택이 같으면 false 스택 또는 스택이 같지 않은 경우

설명

stack 개체 간의 비교는 해당 요소의 쌍 비교를 기반으로 합니다. 포함된 요소 수가 같고 개별 요소값이 같으면 두 스택은 같은 것입니다. 그렇지 않으면 목록은 같지 않은 것입니다.

예시

// stack_op_eq.cpp
// compile with: /EHsc
#include <stack>
#include <vector>
#include <iostream>

int main( )
{
   using namespace std;

   // Declares stacks with vector base containers
   stack <int, vector<int> > s1, s2, s3;

   // The following would have cause an error because stacks with
   // different base containers are not equality comparable
   // stack <int, list<int> > s3;

   s1.push( 1 );
   s2.push( 2 );
   s3.push( 1 );

   if ( s1 == s2 )
      cout << "The stacks s1 and s2 are equal." << endl;
   else
      cout << "The stacks s1 and s2 are not equal." << endl;

   if ( s1 == s3 )
      cout << "The stacks s1 and s3 are equal." << endl;
   else
      cout << "The stacks s1 and s3 are not equal." << endl;
}
The stacks s1 and s2 are not equal.
The stacks s1 and s3 are equal.

operator>

연산자의 좌변에 있는 스택 개체가 우변에 있는 스택 개체보다 큰지 테스트합니다.

bool operator>(const stack <Type, Container>& left, const stack <Type, Container>& right);

매개 변수

left
stack 형식의 개체입니다.

right
stack 형식의 개체입니다.

Return Value

true 연산자의 왼쪽에 있는 스택이 연산자의 오른쪽에 있는 스택보다 크고 같지 않으면 false.

설명

stack 개체 간의 비교는 해당 요소의 쌍 비교를 기반으로 합니다. 두 stack 개체 간의 보다 큼 관계는 같지 않은 요소의 첫 번째 쌍 비교를 기반으로 합니다.

예시

// stack_op_gt.cpp
// compile with: /EHsc
#include <stack>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   // Declares stacks with list base container
   stack <int, list<int> > s1, s2, s3;

   s1.push( 1 );
   s1.push( 2 );
   s1.push( 3 );
   s2.push( 5 );
   s2.push( 10 );
   s3.push( 1 );
   s3.push( 2 );

   if ( s1 > s2 )
      cout << "The stack s1 is greater than "
           << "the stack s2." << endl;
   else
      cout << "The stack s1 is not greater than "
           << "the stack s2." << endl;

   if ( s1> s3 )
      cout << "The stack s1 is greater than "
           << "the stack s3." << endl;
   else
      cout << "The stack s1 is not greater than "
           << "the stack s3." << endl;
}
The stack s1 is not greater than the stack s2.
The stack s1 is greater than the stack s3.

operator>=

연산자의 좌변에 있는 스택 개체가 우변에 있는 스택 개체보다 크거나 같은지 테스트합니다.

bool operator>=(const stack <Type, Container>& left, const stack <Type, Container>& right);

매개 변수

left
stack 형식의 개체입니다.

right
stack 형식의 개체입니다.

Return Value

true 연산자의 왼쪽에 있는 스택이 연산자의 오른쪽에 있는 스택보다 엄격히 작으면 false.

설명

stack 개체 간의 비교는 해당 요소의 쌍 비교를 기반으로 합니다. 두 stack 개체 간의 크거나 같음 관계는 같지 않은 첫 번째 요소 쌍의 비교를 기반으로 합니다.

예제

// stack_op_ge.cpp
// compile with: /EHsc
#include <stack>
#include <list>
#include <iostream>

int main( )
{
   using namespace std;

   // Declares stacks with list base container
   stack <int, list<int> > s1, s2, s3;

   s1.push( 1 );
   s1.push( 2 );
   s2.push( 5 );
   s2.push( 10 );
   s3.push( 1 );
   s3.push( 2 );

   if ( s1 >= s2 )
      cout << "The stack s1 is greater than or equal to "
           << "the stack s2." << endl;
   else
      cout << "The stack s1 is less than "
           << "the stack s2." << endl;

   if ( s1>= s3 )
      cout << "The stack s1 is greater than or equal to "
           << "the stack s3." << endl;
   else
      cout << "The stack s1 is less than "
           << "the stack s3." << endl;
}
The stack s1 is less than the stack s2.
The stack s1 is greater than or equal to the stack s3.