Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
Hinweis |
|---|
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>
Hinweis