Compartir a través de


<stack> Operadores

operator!=

Comprueba si el objeto de pila del lado izquierdo del operador no es igual que el objeto de pila del lado derecho.

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

Parámetros

left
Objeto de tipo stack.

right
Objeto de tipo stack.

Valor devuelto

true si las pilas no son iguales; false si las pilas son iguales.

Comentarios

La comparación entre los objetos de pila se basa en una comparación en pares de sus elementos. Dos pilas son iguales si tienen el mismo número de elementos y sus elementos respectivos tienen los mismos valores. Si no se cumplen estas condiciones, significa que son distintas.

Ejemplo

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

Comprueba si el objeto de pila del lado izquierdo del operador es menor que el objeto de pila del lado derecho.

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

Parámetros

left
Objeto de tipo stack.

right
Objeto de tipo stack.

Valor devuelto

true si la pila del lado izquierdo del operador es menor que y no igual que la pila del lado derecho del operador; en caso contrario, false.

Comentarios

La comparación entre los objetos de pila se basa en una comparación en pares de sus elementos. La relación de menor que entre dos objetos de pila se basa en una comparación del primer par de elementos diferentes.

Ejemplo

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

Comprueba si el objeto de pila del lado izquierdo del operador es menor o igual que el objeto de pila del lado derecho.

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

Parámetros

left
Objeto de tipo stack.

right
Objeto de tipo stack.

Valor devuelto

true si la pila del lado izquierdo del operador es menor o igual que la pila del lado derecho del operador; en caso contrario, false.

Comentarios

La comparación entre los objetos de pila se basa en una comparación en pares de sus elementos. La relación de menor o igual entre dos objetos de pila se basa en una comparación del primer par de elementos diferentes.

Ejemplo

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

Comprueba si el objeto de pila del lado izquierdo del operador es igual al objeto de pila del lado derecho.

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

Parámetros

left
Objeto de tipo stack.

right
Objeto de tipo stack.

Valor devuelto

true si las pilas son iguales; false si las pilas no son iguales.

Comentarios

La comparación entre los objetos de pila se basa en una comparación en pares de sus elementos. Dos pilas son iguales si tienen el mismo número de elementos y sus elementos respectivos tienen los mismos valores. Si no se cumplen estas condiciones, significa que son distintas.

Ejemplo

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

Comprueba si el objeto de pila del lado izquierdo del operador es mayor que el objeto de pila del lado derecho.

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

Parámetros

left
Objeto de tipo stack.

right
Objeto de tipo stack.

Valor devuelto

true si la pila del lado izquierdo del operador es mayor que y no igual que la pila del lado derecho del operador; en caso contrario, false.

Comentarios

La comparación entre los objetos de pila se basa en una comparación en pares de sus elementos. La relación de mayor que entre dos objetos de pila se basa en una comparación del primer par de elementos diferentes.

Ejemplo

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

Comprueba si el objeto de pila del lado izquierdo del operador es mayor o igual que el objeto de pila del lado derecho.

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

Parámetros

left
Objeto de tipo stack.

right
Objeto de tipo stack.

Valor devuelto

true si la pila del lado izquierdo del operador es estrictamente menor que la pila del lado derecho del operador; en caso contrario, false.

Comentarios

La comparación entre los objetos de pila se basa en una comparación en pares de sus elementos. La relación de mayor o igual entre dos objetos de pila se basa en una comparación del primer par de elementos diferentes.

Ejemplo

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