stack::operator==

Veranschaulicht, wie die Funktion Stapel::operator== Standardvorlagenbibliothek (STL) in Visual C++ verwendet.

template<class _TYPE, class _C, class _A>
   bool stack::bool operator==(
      const stack<_TYPE, _C, _A>& _X
   ) const;

Hinweise

HinweisHinweis

Die Klasse/Parameternamen im Prototyp stimmen nicht mit der Version in der Headerdatei ab.Einige wurden geändert, um die Lesbarkeit zu verbessern.

Die Funktion gibt Stapel::operator==true zurück, wenn beide Stapel dieselben Elemente enthalten, die sich in derselben Reihenfolge angeordnet werden.Die Stapel::operator==-Funktion gibt immer false zurück, wenn die beiden Stapeln von einer anderen Größe aufweisen.

Beispiel

// StackEqual.cpp
// compile with: /EHsc
// Illustrates how to use the stack::operator==
// function to determine if two stacks are equal.
//
// Functions:
//    operator== :  Returns true if both stacks are the same.
//////////////////////////////////////////////////////////////////////

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

using namespace std ;

typedef stack<double> STACK_DOUBLE;

int main()
{
   STACK_DOUBLE stack1,stack2;

   // Add item 4.0 to Stack1.
   cout << "stack1.push(4.0)  s1=[4.0]" << endl;
   stack1.push(4.0);

   // Add item 3.0 to Stack1. Current Stack1 contains items 3.0 (top)
   // 4.0 (bottom).
   cout << "stack1.push(3.0)  s1=[3.0 4.0]" << endl;
   stack1.push(3.0);

   // Add item 4.0 to Stack2.
   cout << "stack2.push(4.0)  s2=[4.0]" << endl;
   stack2.push(4.0);

   // Compare Stack1 and Stack2. Should return False.
   cout << "stack1==stack2 is " <<
      ((stack1==stack2)? "True": "False") << endl << endl;

   // Add item 6.0 to Stack2. Current Stack2 contains items 6.0 (top)
   // 4.0 (bottom)
   cout << "stack2.push(6.0)  s2=[6.0 4.0]" << endl;
   stack2.push(6.0);

   // Compare Stack1 and Stack2. Should return False.
   cout << "stack1==stack2 is " <<
      ((stack1==stack2)? "True": "False") << endl << endl;

   // Keep adding item 8.0 to Stack2. Current Stack2 contains items
   // 8.0 (top), 6.0 and 4.0 (bottom).
   cout << "stack2.push(8.0)  s2=[8.0 6.0 4.0]" << endl;
   stack2.push(8.0);

   // Compare Stack1 and Stack2. Should return False.
   cout << "stack1==stack2 is " <<
      ((stack1==stack2)? "True": "False") << endl << endl;

   // Delete the top item from Stack2. Current Stack2 contains items
   // 6.0 (top) and 4.0 (bottom).
   cout << "stack2.pop()      s2=[6.0 4.0]" << endl;
   stack2.pop();

   // Delete another item from Stack2. Current Stack2 contains item 4.0.
   cout << "stack2.pop()      s2=[4.0]" << endl;
   stack2.pop();

   // Add item 3.0 to Stack2. Current Stack2 contains item 3.0 (top) and
   // 4.0 (bottom).
   cout << "stack2.push(3.0)  s2=[3.0 4.0]" << endl;
   stack2.push(3.0);

   // Compare Stack2 and Stack2. Should return True.
   cout << "stack1==stack2 is " <<
      ((stack1==stack2)? "True": "False") << endl << endl;

   // Delete the top item from Stack2. Current Stack2 contains 4.0.
   cout << "stack2.pop()      s2=[4.0]" << endl;
   stack2.pop();

   // Delete another item from Stack2. Stack2 should be empty.
   cout << "stack2.pop()      s2=[]" << endl;
   stack2.pop();

   // Push item 8.0 to Stack2.
   cout << "stack2.push(8.0)  s2=[8.0]" << endl;
   stack2.push(8.0);

   // Compare Stack1 and Stack2. Should return False.
   cout << "stack1==stack2 is " <<
      ((stack1==stack2)? "True": "False") << endl << endl;
}

Output

stack1.push(4.0)  s1=[4.0]
stack1.push(3.0)  s1=[3.0 4.0]
stack2.push(4.0)  s2=[4.0]
stack1==stack2 is False

stack2.push(6.0)  s2=[6.0 4.0]
stack1==stack2 is False

stack2.push(8.0)  s2=[8.0 6.0 4.0]
stack1==stack2 is False

stack2.pop()      s2=[6.0 4.0]
stack2.pop()      s2=[4.0]
stack2.push(3.0)  s2=[3.0 4.0]
stack1==stack2 is True

stack2.pop()      s2=[4.0]
stack2.pop()      s2=[]
stack2.push(8.0)  s2=[8.0]
stack1==stack2 is False

Anforderungen

Header: <stack>

Siehe auch

Konzepte

Standardvorlagenbibliotheks-Beispiele