Sdílet prostřednictvím


<stack> – operátory

operator!=

Testuje, jestli se objekt zásobníku na levé straně operátoru nerovná objektu zásobníku na pravé straně.

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

Parametry

Vlevo
Objekt typu stack.

Vpravo
Objekt typu stack.

Návratová hodnota

true pokud se zásobníky nebo zásobníky nerovnají; false pokud jsou zásobníky nebo zásobníky stejné.

Poznámky

Porovnání mezi objekty zásobníků je založeno na párovém porovnání jejich prvků. Dva zásobníky jsou stejné, pokud mají stejný počet prvků a jejich odpovídající prvky mají stejné hodnoty. Jinak jsou nerovné.

Příklad

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

Testuje, jestli je objekt zásobníku na levé straně operátoru menší než objekt zásobníku na pravé straně.

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

Parametry

Vlevo
Objekt typu stack.

Vpravo
Objekt typu stack.

Návratová hodnota

true pokud je zásobník na levé straně operátoru menší než a nerovná se zásobníku na pravé straně operátoru; jinak false.

Poznámky

Porovnání objektů zásobníku je založeno na párovém porovnání jejich prvků. Vztah menší než mezi dvěma objekty zásobníku je založen na porovnání prvního páru nerovných prvků.

Příklad

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

Testuje, jestli je objekt zásobníku na levé straně operátoru menší nebo roven objektu zásobníku na pravé straně.

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

Parametry

Vlevo
Objekt typu stack.

Vpravo
Objekt typu stack.

Návratová hodnota

true pokud je zásobník na levé straně operátoru menší nebo roven zásobníku na pravé straně operátoru; jinak false.

Poznámky

Porovnání objektů zásobníku je založeno na párovém porovnání jejich prvků. Vztah menší než nebo roven mezi dvěma objekty zásobníku je založen na porovnání prvního páru nerovných prvků.

Příklad

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

Testuje, jestli se objekt zásobníku na levé straně operátoru rovná objektu zásobníku na pravé straně.

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

Parametry

Vlevo
Objekt typu stack.

Vpravo
Objekt typu stack.

Návratová hodnota

true jsou-li zásobníky nebo zásobníky stejné; false pokud se zásobníky nebo zásobníky nerovnají.

Poznámky

Porovnání objektů zásobníku je založeno na párovém porovnání jejich prvků. Dva zásobníky jsou stejné, pokud mají stejný počet prvků a jejich odpovídající prvky mají stejné hodnoty. Jinak jsou nerovné.

Příklad

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

Testuje, jestli je objekt zásobníku na levé straně operátoru větší než objekt zásobníku na pravé straně.

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

Parametry

Vlevo
Objekt typu stack.

Vpravo
Objekt typu stack.

Návratová hodnota

true pokud je zásobník na levé straně operátoru větší než a nerovná se zásobníku na pravé straně operátoru; jinak false.

Poznámky

Porovnání objektů zásobníku je založeno na párovém porovnání jejich prvků. Vztah větší než mezi dvěma objekty zásobníku je založen na porovnání prvního páru nerovných prvků.

Příklad

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

Testuje, zda je objekt zásobníku na levé straně operátoru větší nebo roven objektu zásobníku na pravé straně.

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

Parametry

Vlevo
Objekt typu stack.

Vpravo
Objekt typu stack.

Návratová hodnota

true je-li zásobník na levé straně operátoru přísně menší než zásobník na pravé straně operátoru; jinak false.

Poznámky

Porovnání objektů zásobníku je založeno na párovém porovnání jejich prvků. Vztah větší než nebo rovno mezi dvěma objekty zásobníku je založen na porovnání prvního páru nerovných prvků.

Příklad

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