stack
(STL/CLR)
Die Vorlagenklasse beschreibt ein Objekt, das eine unterschiedliche Abfolge von Elementen steuert, die über den Letzten-In-First-Out-Zugriff verfügen. Sie verwenden den Containeradapter stack
, um einen zugrunde liegenden Container als Pushdownstapel zu verwalten.
In der folgenden Beschreibung ist identisch mit Value
der Ausnahme, GValue
dass es sich bei letzterem um einen Verweistyp handelt, in diesem Fall ist es Value^
. Ebenso ist dies identisch mit Container
dem, es sei denn, GContainer
letzteres ist ein Bezugstyp, in diesem Fall ist dies Container^
der Fall.
Syntax
template<typename Value,
typename Container>
ref class stack
: public
System::ICloneable,
Microsoft::VisualC::StlClr::IStack<GValue, GContainer>
{ ..... };
Parameter
Value
Der Typ eines Elements in der kontrollierten Sequenz.
Container
Der Typ des zugrunde liegenden Containers.
Anforderungen
Header:<cliext/stack>
Namespace:cliext
Deklarationen
Typdefinition | Beschreibung |
---|---|
stack::const_reference |
Der Typ eines konstanten Verweises auf ein Element. |
stack::container_type |
Der Typ des zugrunde liegenden Containers. |
stack::difference_type |
Der Typ eines Abstands mit Vorzeichen zwischen zwei Elementen. |
stack::generic_container |
Der Typ der generischen Schnittstelle für den Containeradapter. |
stack::generic_value |
Der Typ eines Elements für die generische Schnittstelle für den Containeradapter. |
stack::reference |
Der Typ eines Verweises auf ein Element. |
stack::size_type |
Der Typ eines Abstands mit Vorzeichen zwischen zwei Elementen. |
stack::value_type |
Der Typ eines Elements. |
Memberfunktion | Beschreibung |
---|---|
stack::assign |
Ersetzt alle Elemente. |
stack::empty |
Testet, ob keine Elemente vorhanden sind. |
stack::get_container |
Greift auf den zugrunde liegenden Container zu. |
stack::pop |
Entfernt das letzte Element. |
stack::push |
Fügt ein neues letztes Element hinzu. |
stack::size |
Ermittelt die Anzahl von Elementen. |
stack::stack |
Erstellt ein container-Objekt. |
stack::top |
Greift auf das letzte Element zu. |
stack::to_array |
Kopiert die kontrollierte Sequenz in ein neues Array. |
Eigenschaft | Beschreibung |
---|---|
stack::top_item |
Greift auf das letzte Element zu. |
Operator | Beschreibung |
---|---|
stack::operator= |
Ersetzt die kontrollierte Sequenz. |
operator!= (Stapel) |
Bestimmt, ob ein Objekt nicht mit einem stack anderen stack Objekt identisch ist. |
operator< (Stapel) |
Bestimmt, ob ein Objekt kleiner als ein stack anderes stack Objekt ist. |
operator<= (Stapel) |
Bestimmt, ob ein Objekt kleiner oder gleich einem stack anderen stack Objekt ist. |
operator== (Stapel) |
Bestimmt, ob ein Objekt mit einem stack anderen stack Objekt identisch ist. |
operator> (Stapel) |
Bestimmt, ob ein Objekt größer als ein stack anderes stack Objekt ist. |
operator>= (Stapel) |
Bestimmt, ob ein Objekt größer oder gleich einem stack anderen stack Objekt ist. |
Schnittstellen
Schnittstelle | Beschreibung |
---|---|
ICloneable | Duplizieren Eines Objekts. |
IStack<Value, Container> |
Verwalten Sie einen generischen Containeradapter. |
Hinweise
Das Objekt reserviert und gibt Speicherplatz für die Sequenz frei, die es über einen zugrunde liegenden Container vom Typ Container
steuert, der Elemente speichert Value
und bei Bedarf wächst. Das Objekt schränkt den Zugriff auf Pushing und Popping nur auf das letzte Element ein, wobei eine Last-In-First-Out-Warteschlange implementiert wird (auch als LIFO-Warteschlange oder Stapel bezeichnet).
Member
stack::assign
Ersetzt alle Elemente.
Syntax
void assign(stack<Value, Container>% right);
Parameter
right
Containeradapter, der eingefügt werden soll.
Hinweise
Die Memberfunktion weist right.get_container()
dem zugrunde liegenden Container zu. Sie verwenden es, um den gesamten Inhalt des Stapels zu ändern.
Beispiel
// cliext_stack_assign.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign a repetition of values
Mystack c2;
c2.assign(c1);
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
stack::const_reference
Der Typ eines konstanten Verweises auf ein Element.
Syntax
typedef value_type% const_reference;
Hinweise
Der Typ beschreibt einen Konstantenverweis auf ein Element.
Beispiel
// cliext_stack_const_reference.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display reversed contents " c b a"
for (; !c1.empty(); c1.pop())
{ // get a const reference to an element
Mystack::const_reference cref = c1.top();
System::Console::Write("{0} ", cref);
}
System::Console::WriteLine();
return (0);
}
c b a
stack::container_type
Der Typ des zugrunde liegenden Containers.
Syntax
typedef Container value_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter Container
dar.
Beispiel
// cliext_stack_container_type.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c" using container_type
Mystack::container_type wc1 = c1.get_container();
for each (wchar_t elem in wc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
stack::difference_type
Die Typen eines signierten Abstands zwischen zwei Elementen.
Syntax
typedef int difference_type;
Hinweise
Der Typ beschreibt eine möglicherweise negative Elementanzahl.
Beispiel
// cliext_stack_difference_type.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute negative difference
Mystack::difference_type diff = c1.size();
c1.push(L'd');
c1.push(L'e');
diff -= c1.size();
System::Console::WriteLine("pushing 2 = {0}", diff);
// compute positive difference
diff = c1.size();
c1.pop();
c1.pop();
c1.pop();
diff -= c1.size();
System::Console::WriteLine("popping 3 = {0}", diff);
return (0);
}
a b c
pushing 2 = -2
popping 3 = 3
stack::empty
Testet, ob keine Elemente vorhanden sind.
Syntax
bool empty();
Hinweise
Die Memberfunktion gibt „true“ für eine leere gesteuerte Sequenz zurück. Dies entspricht size() == 0
. Sie verwenden es, um zu testen, ob die Datei stack
leer ist.
Beispiel
// cliext_stack_empty.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
// clear the container and reinspect
c1.pop();
c1.pop();
c1.pop();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
return (0);
}
a b c
size() = 3
empty() = False
size() = 0
empty() = True
stack::generic_container
Der Typ der generischen Schnittstelle für den Containeradapter.
Syntax
typedef Microsoft::VisualC::StlClr::IStack<Value>
generic_container;
Hinweise
Der Typ beschreibt die generische Schnittstelle für diese Vorlagencontaineradapterklasse.
Beispiel
// cliext_stack_generic_container.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// get interface to container
Mystack::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1->get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
gc1->push(L'd');
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify original and display generic
c1.push(L'e');
for each (wchar_t elem in gc1->get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c d
a b c d e
stack::generic_value
Der Typ eines Elements für die Verwendung mit der generischen Schnittstelle für den Container.
Syntax
typedef GValue generic_value;
Hinweise
Der Typ beschreibt ein Objekt vom Typ GValue
, das den gespeicherten Elementwert für die Verwendung mit der generischen Schnittstelle für diese Vorlagencontainerklasse beschreibt. (GValue
ist entweder value_type
oder value_type^
wenn value_type
es sich um einen Verweistyp handelt.)
Beispiel
// cliext_stack_generic_value.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// get interface to container
Mystack::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1->get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display in reverse using generic_value
for (; !gc1->empty(); gc1->pop())
{
Mystack::generic_value elem = gc1->top();
System::Console::Write("{0} ", elem);
}
System::Console::WriteLine();
return (0);
}
a b c
a b c
c b a
stack::get_container
Greift auf den zugrunde liegenden Container zu.
Syntax
container_type^ get_container();
Hinweise
Die Memberfunktion gibt ein Handle für zugrunde liegende Container zurück. Sie verwenden sie, um die vom Containerwrapper auferlegten Einschränkungen zu umgehen.
Beispiel
// cliext_stack_get_container.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c" using container_type
Mystack::container_type wc1 = c1.get_container();
for each (wchar_t elem in wc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
stack::operator=
Ersetzt die kontrollierte Sequenz.
Syntax
stack<Value, Container>% operator=(stack<Value, Container>% right);
Parameter
right
Containeradapter, der kopiert werden soll.
Hinweise
Der Memberoperator kopiert right
in das Objekt und gibt dann zurück *this
. Sie können ihn verwenden, um die kontrollierte Sequenz durch eine Kopie der kontrollierten Sequenz in right
zu ersetzen.
Beispiel
// cliext_stack_operator_as.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2 = c1;
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
stack::pop
Entfernt das letzte Element.
Syntax
void pop();
Hinweise
Die Memberfunktion entfernt das letzte Element der gesteuerten Sequenz, das nicht leer sein muss. Sie verwenden es, um das stack
Element um ein Element auf der Rückseite zu kürzen.
Beispiel
// cliext_stack_pop.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop();
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b
stack::push
Fügt ein neues letztes Element hinzu.
Syntax
void push(value_type val);
Hinweise
Die Memberfunktion fügt ein Element mit Dem Wert val
am Ende der gesteuerten Sequenz ein. Sie verwenden es, um ein anderes Element an den Stapel anzufügen.
Beispiel
// cliext_stack_push.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
stack::reference
Der Typ eines Verweises auf ein Element.
Syntax
typedef value_type% reference;
Hinweise
Der Typ beschreibt einen Verweis auf ein Element.
Beispiel
// cliext_stack_reference.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify top of stack and redisplay
Mystack::reference ref = c1.top();
ref = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b x
stack::size
Ermittelt die Anzahl von Elementen.
Syntax
size_type size();
Hinweise
Die Memberfunktion gibt die Länge der gesteuerten Sequenz zurück. Sie verwenden es, um die Anzahl der Elemente zu bestimmen, die sich derzeit in der kontrollierten Sequenz befindet. Wenn Sie sich nur darum kümmern, ob die Sequenz eine Nichtzerogröße aufweist, lesen Sie stack::empty
.
Beispiel
// cliext_stack_size.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0} starting with 3", c1.size());
// pop an item and reinspect
c1.pop();
System::Console::WriteLine("size() = {0} after popping", c1.size());
// add two elements and reinspect
c1.push(L'a');
c1.push(L'b');
System::Console::WriteLine("size() = {0} after adding 2", c1.size());
return (0);
}
a b c
size() = 3 starting with 3
size() = 2 after popping
size() = 4 after adding 2
stack::size_type
Der Typ eines Abstands mit Vorzeichen zwischen zwei Elementen.
Syntax
typedef int size_type;
Hinweise
Der Typ beschreibt eine nicht negative Elementanzahl.
Beispiel
// cliext_stack_size_type.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
Mystack::size_type diff = c1.size();
c1.pop();
c1.pop();
diff -= c1.size();
System::Console::WriteLine("size difference = {0}", diff);
return (0);
}
a b c
size difference = 2
stack::stack
Erstellt ein Containeradapterobjekt.
Syntax
stack();
stack(stack<Value, Container>% right);
stack(stack<Value, Container>^ right);
explicit stack(container_type% wrapped);
Parameter
right
Objekt, das kopiert werden soll.
wrapped
Umschlossener Container, der verwendet werden soll.
Hinweise
Der Konstruktor:
stack();
erstellt einen leeren umschlossenen Container. Sie verwenden sie, um eine leere anfängliche kontrollierte Sequenz anzugeben.
Der Konstruktor:
stack(stack<Value, Container>% right);
erstellt einen umschlossenen Container, der eine Kopie von right.get_container()
. Sie verwenden es, um eine anfängliche kontrollierte Sequenz anzugeben, die eine Kopie der sequenz ist, die stack
vom Objekt right
gesteuert wird.
Der Konstruktor:
stack(stack<Value, Container>^ right);
erstellt einen umschlossenen Container, der eine Kopie von right->get_container()
. Sie verwenden es, um eine anfängliche kontrollierte Sequenz anzugeben, die eine Kopie der sequenz ist, die stack
vom Objekt *right
gesteuert wird.
Der Konstruktor:
explicit stack(container_type% wrapped);
verwendet den vorhandenen Container wrapped
als umschlossenen Container. Sie verwenden es, um einen stack
aus einem vorhandenen Container zu erstellen.
Beispiel
// cliext_stack_construct.cpp
// compile with: /clr
#include <cliext/stack>
#include <cliext/vector>
typedef cliext::stack<wchar_t> Mystack;
typedef cliext::vector<wchar_t> Myvector;
typedef cliext::stack<wchar_t, Myvector> Mystack_vec;
int main()
{
// construct an empty container
Mystack c1;
System::Console::WriteLine("size() = {0}", c1.size());
// construct from an underlying container
Myvector v2(5, L'x');
Mystack_vec c2(v2);
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
Mystack_vec c3(c2);
for each (wchar_t elem in c3.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container through handle
Mystack_vec c4(%c2);
for each (wchar_t elem in c4.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
x x x x x
x x x x x
x x x x x
stack::to_array
Kopiert die kontrollierte Sequenz in ein neues Array.
Syntax
cli::array<Value>^ to_array();
Hinweise
Die Memberfunktion gibt ein Array zurück, das die kontrollierte Sequenz enthält. Sie verwenden es, um eine Kopie der kontrollierten Sequenz in Arrayform abzurufen.
Beispiel
// cliext_stack_to_array.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// copy the container and modify it
cli::array<wchar_t>^ a1 = c1.to_array();
c1.push(L'd');
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display the earlier array copy
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c d
a b c
stack::top
Greift auf das letzte Element zu.
Syntax
reference top();
Hinweise
Die Memberfunktion gibt einen Verweis auf das letzte Element der gesteuerten Sequenz zurück, die nicht leer sein muss. Sie verwenden es, um auf das letzte Element zuzugreifen, wenn Sie wissen, dass ein Element vorhanden ist.
Beispiel
// cliext_stack_top.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("top() = {0}", c1.top());
// alter last item and reinspect
c1.top() = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
top() = c
a b x
stack::top_item
Greift auf das letzte Element zu.
Syntax
property value_type top_item;
Hinweise
Die Eigenschaft greift auf das letzte Element der gesteuerten Sequenz zu, die nicht leer sein muss. Sie verwenden es, um das letzte Element zu lesen oder zu schreiben, wenn Sie wissen, dass ein Element vorhanden ist.
Beispiel
// cliext_stack_top_item.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("top_item = {0}", c1.top_item);
// alter last item and reinspect
c1.top_item = L'x';
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
top_item = c
a b x
stack::value_type
Der Typ eines Elements.
Syntax
typedef Value value_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter Value
dar.
Beispiel
// cliext_stack_value_type.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display reversed contents " a b c" using value_type
for (; !c1.empty(); c1.pop())
{ // store element in value_type object
Mystack::value_type val = c1.top();
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
c b a
operator!=
(Stapel)
Stack
ungleicher Vergleich.
Syntax
template<typename Value,
typename Container>
bool operator!=(stack<Value, Container>% left,
stack<Value, Container>% right);
Parameter
left
Linker zu vergleichender Container.
right
Rechter zu vergleichender Container.
Hinweise
Die Operatorfunktion gibt zurück !(left == right)
. Sie verwenden sie, um zu testen, ob left
die Reihenfolge nicht identisch ist, wenn right
die beiden Stapel nach Element verglichen werden.
Beispiel
// cliext_stack_operator_ne.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents " a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] != [a b c] is {0}",
c1 != c1);
System::Console::WriteLine("[a b c] != [a b d] is {0}",
c1 != c2);
return (0);
}
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True
operator<
(Stapel)
Stack
kleiner als vergleich.
Syntax
template<typename Value,
typename Container>
bool operator<(stack<Value, Container>% left,
stack<Value, Container>% right);
Parameter
left
Linker zu vergleichender Container.
right
Rechter zu vergleichender Container.
Hinweise
Die Operatorfunktion gibt true zurück, wenn, für die niedrigste Positioni
, für die !(right[i] < left[i])
sie auch wahr ist.left[i] < right[i]
Andernfalls wird left->size() < right->size()
zurückgegeben. Sie verwenden sie, um zu testen, ob left
die beiden Stapel nach right
Element verglichen werden.
Beispiel
// cliext_stack_operator_lt.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents " a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] < [a b c] is {0}",
c1 < c1);
System::Console::WriteLine("[a b c] < [a b d] is {0}",
c1 < c2);
return (0);
}
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True
operator<=
(Stapel)
Stack
kleiner oder gleicher Vergleich.
Syntax
template<typename Value,
typename Container>
bool operator<=(stack<Value, Container>% left,
stack<Value, Container>% right);
Parameter
left
Linker zu vergleichender Container.
right
Rechter zu vergleichender Container.
Hinweise
Die Operatorfunktion gibt zurück !(right < left)
. Sie verwenden sie, um zu testen, ob left
das Element nach Element nicht sortiert right
wird, wenn die beiden Stapel verglichen werden.
Beispiel
// cliext_stack_operator_le.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents " a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] <= [a b c] is {0}",
c1 <= c1);
System::Console::WriteLine("[a b d] <= [a b c] is {0}",
c2 <= c1);
return (0);
}
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False
operator==
(Stapel)
Stack
gleicher Vergleich.
Syntax
template<typename Value,
typename Container>
bool operator==(stack<Value, Container>% left,
stack<Value, Container>% right);
Parameter
left
Linker zu vergleichender Container.
right
Rechter zu vergleichender Container.
Hinweise
Die Operatorfunktion gibt "true" nur zurück, wenn die sequenzen gesteuert werden left
und right
dieselbe Länge aufweisen und für jede Position i
, left[i] == right[i]
. Sie verwenden sie, um zu testen, ob left
die Reihenfolge wie bei einem Vergleich der beiden Stapel nach Element identisch right
ist.
Beispiel
// cliext_stack_operator_eq.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents " a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] == [a b c] is {0}",
c1 == c1);
System::Console::WriteLine("[a b c] == [a b d] is {0}",
c1 == c2);
return (0);
}
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False
operator>
(Stapel)
Stack
größer als der Vergleich.
Syntax
template<typename Value,
typename Container>
bool operator>(stack<Value, Container>% left,
stack<Value, Container>% right);
Parameter
left
Linker zu vergleichender Container.
right
Rechter zu vergleichender Container.
Hinweise
Die Operatorfunktion gibt zurück right < left
. Sie verwenden sie, um zu testen, ob left
nach right
dem Vergleich der beiden Stapel elementweise sortiert wird.
Beispiel
// cliext_stack_operator_gt.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents " a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] > [a b c] is {0}",
c1 > c1);
System::Console::WriteLine("[a b d] > [a b c] is {0}",
c2 > c1);
return (0);
}
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True
operator>=
(Stapel)
Stack
größer als oder gleicher Vergleich.
Syntax
template<typename Value,
typename Container>
bool operator>=(stack<Value, Container>% left,
stack<Value, Container>% right);
Parameter
left
Linker zu vergleichender Container.
right
Rechter zu vergleichender Container.
Hinweise
Die Operatorfunktion gibt zurück !(left < right)
. Sie verwenden sie, um zu testen, ob left
die beiden Stapel nach Element nicht sortiert right
werden.
Beispiel
// cliext_stack_operator_ge.cpp
// compile with: /clr
#include <cliext/stack>
typedef cliext::stack<wchar_t> Mystack;
int main()
{
Mystack c1;
c1.push(L'a');
c1.push(L'b');
c1.push(L'c');
// display contents " a b c"
for each (wchar_t elem in c1.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mystack c2;
c2.push(L'a');
c2.push(L'b');
c2.push(L'd');
// display contents " a b d"
for each (wchar_t elem in c2.get_container())
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] >= [a b c] is {0}",
c1 >= c1);
System::Console::WriteLine("[a b c] >= [a b d] is {0}",
c1 >= c2);
return (0);
}
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False