Udostępnij za pośrednictwem


<stack>, operatory

operator!=

Sprawdza, czy obiekt stosu po lewej stronie operatora nie jest równy obiektowi stosu po prawej stronie.

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

Parametry

Lewy
Obiekt typu stack.

Prawy
Obiekt typu stack.

Wartość zwracana

true jeśli stosy lub stosy nie są równe; false jeśli stosy lub stosy są równe.

Uwagi

Porównanie obiektów stosów jest oparte na parowym porównywaniu ich elementów. Dwa stosy są równe, jeśli mają taką samą liczbę elementów, a ich elementy mają te same wartości. W przeciwnym razie są one nierówne.

Przykład

// 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<

Sprawdza, czy obiekt stosu po lewej stronie operatora jest mniejszy niż obiekt stosu po prawej stronie.

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

Parametry

Lewy
Obiekt typu stack.

Prawy
Obiekt typu stack.

Wartość zwracana

true jeśli stos po lewej stronie operatora jest mniejszy niż i nie jest równy stosowi po prawej stronie operatora; w przeciwnym razie false.

Uwagi

Porównanie obiektów stosu jest oparte na parowym porównaniu ich elementów. Relacja mniejszej niż między dwoma obiektami stosu jest oparta na porównaniu pierwszej pary nierównych elementów.

Przykład

// 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<=

Sprawdza, czy obiekt stosu po lewej stronie operatora jest mniejszy lub równy obiektowi stosu po prawej stronie.

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

Parametry

Lewy
Obiekt typu stack.

Prawy
Obiekt typu stack.

Wartość zwracana

true jeśli stos po lewej stronie operatora jest mniejszy lub równy stosowi po prawej stronie operatora; w przeciwnym razie false.

Uwagi

Porównanie obiektów stosu jest oparte na parowym porównaniu ich elementów. Relacja mniejsza niż lub równa relacji między dwoma obiektami stosu jest oparta na porównaniu pierwszej pary nierównych elementów.

Przykład

// 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.

operator==

Sprawdza, czy obiekt stosu po lewej stronie operatora jest równy obiektowi stosu po prawej stronie.

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

Parametry

Lewy
Obiekt typu stack.

Prawy
Obiekt typu stack.

Wartość zwracana

true jeśli stosy lub stosy są równe; false jeśli stosy lub stosy nie są równe.

Uwagi

Porównanie obiektów stosu jest oparte na parowym porównaniu ich elementów. Dwa stosy są równe, jeśli mają taką samą liczbę elementów, a ich elementy mają te same wartości. W przeciwnym razie są one nierówne.

Przykład

// 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>

Sprawdza, czy obiekt stosu po lewej stronie operatora jest większy niż obiekt stosu po prawej stronie.

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

Parametry

Lewy
Obiekt typu stack.

Prawy
Obiekt typu stack.

Wartość zwracana

true jeśli stos po lewej stronie operatora jest większy niż i nie równy stosowi po prawej stronie operatora; w przeciwnym razie false.

Uwagi

Porównanie obiektów stosu jest oparte na parowym porównaniu ich elementów. Relacja większa niż między dwoma obiektami stosu jest oparta na porównaniu pierwszej pary nierównych elementów.

Przykład

// 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>=

Sprawdza, czy obiekt stosu po lewej stronie operatora jest większy lub równy obiektowi stosu po prawej stronie.

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

Parametry

Lewy
Obiekt typu stack.

Prawy
Obiekt typu stack.

Wartość zwracana

true jeśli stos po lewej stronie operatora jest ściśle mniejszy niż stos po prawej stronie operatora; w przeciwnym razie false.

Uwagi

Porównanie obiektów stosu jest oparte na parowym porównaniu ich elementów. Relacja większa lub równa relacji między dwoma obiektami stosu jest oparta na porównaniu pierwszej pary nierównych elementów.

Przykład

// 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.