stack_Inhalt



  • hallo,
    ich habe in em Prog den STL-stack benutzt

    #include <stack>
    stack <int> meinStack;
    meinStack.push(1);
    meinStack.push(2);
    meinStack.push(3);
    

    ich wollte jetzt den Inhalt meines Stacks ausgeben und zwar so

    for(int k=0; k<meinStack.size();++k)
    {
      cout<<meinStack[k]<<"  ";
     cout<<"\n";
    }
    

    aber leider funzt nicht weil er den Operator "[" nicht mag. kann mir jemand helfen wie ich den Inhalt des Stacks zum printen bringe. Danke



  • Hallo,

    Die Funktionen top (Rückgabe oberstes Element) und pop (Entfernen oberstes Element) von stack sollten dir dabei helfen. operator[] gibt es hier nicht.



  • wrt schrieb:

    hallo,
    ich habe in em Prog den STL-stack benutzt

    #include <stack>
    stack <int> meinStack;
    meinStack.push(1);
    meinStack.push(2);
    meinStack.push(3);
    

    ich wollte jetzt den Inhalt meines Stacks ausgeben und zwar so

    for(int k=0; k<meinStack.size();++k)
    {
      cout<<meinStack[k]<<"  ";
     cout<<"\n";
    }
    

    aber leider funzt nicht weil er den Operator "[" nicht mag. kann mir jemand helfen wie ich den Inhalt des Stacks zum printen bringe. Danke

    Wenn du einen Stack verwendest dann solltest du auch wissen welche Operationen
    er zur Verfügung stellt oder hast du dich aufgrund von Losentscheid für Stack
    entschieden. 😃 🙄 😃



  • ok habe diese Lösung

    for(int k=0; !meinStack.empty();++k, meinStack.pop())
        {	  
    			cout<<meinStack.top()<<"  ";
       }
    

    gefunden aber nich was ich mir wünschte. weil ich mein Stack nicht löschen wollte.
    @redhead:
    ich wollte ein Zwischenspeicher mit pop und pusch und soweit habe ich nicht darüber nachgedacht



  • Dann nimm std::list



  • z.B. schrieb:

    Dann nimm std::list

    Wieso list? Die naheliegende Alternative wäre ein vector oder eine deque. In allen Fällen wird push zu push_back und pop zu pop_back. Im Gegensatz zu einem Stack (und einer list) bieten vector und deque auch Random-Access über den Operator[].


Anmelden zum Antworten