Wie Stack Größe in int speichern?
-
Ich möchte ein erstellten STL Stack, die Größe in eine int Variable speicher um in der FOR Schleife die Maximale Grenze anzugeben:
stack<char> Operanden; ... for(int i=0; Operanden.size(); i++) ...Doch das klappt so nicht, kenne das aus C# da liefert die Funktion einen Integer Wert, hier wird jedoch der Rückgabetyp Stack geliefert.
-
Also size() hat als Rückgabetyp size_type, nicht int oder stack. Des weiteren solltest Du Dir überlegen, ob es für ein Stack vorgesehen ist, sich durch seine Elemente durchzuiterien.
-
Ist das da nicht eine Endlosschleife?
Sobald es mindestens ein Element ist, ist die Laufbedingung doch immer erfüllt, oder?
-
Fusel.Factor schrieb:
Ist das da nicht eine Endlosschleife?
Sobald es mindestens ein Element ist, ist die Laufbedingung doch immer erfüllt, oder?ja, aber es kann ja sein, dass durch irgendwas im schleifenkörper der stack geleert wird.
-
Ein Stack bietet keine Funktionen an, auf irgendwelche Elemente ausser dem obersten zuzugreifen. Ein Stack (Stapel) hat ja gerade diese Aufgabe (LIFO - last in, first out). Ansonsten nimm einen sequenziellen Container.