Jak uzyskac wartośc elementu stosu używając stack

Jak uzyskac wartośc elementu stosu używając stack
LI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 518
0

Jak korzystając z biblioteki stack uzyskac wartośc elementu znajdującego się na szczycie stosu?

Próbowałam tak:

Kopiuj
 for(i=0;i<k;i++)
    {
     
        cout<<"Liczby większe od 3 to";
        
        z=stosLiczb.top();
        if(z>3)
        cout<<stosLiczb.top();
    }

Ta częśc się nie kompiluje...

A ja nie mam pomysłu co powinnam zrobic...

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
LI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 518
0
Kopiuj

#include <iostream>
#include <stack>

using namespace std;

int main()
{   
stack <int> y;
   int i,k; 
   
   for(i=0;i<13;i++)
   {y.push(i+1);
   }

   int & u=y.top();
   for(k=0;k<13;k++)
   {
if(u>3)
  { cout<<"\nwieksze od 3 "<<u;}
   }
   y.pop();
}
   
   return 0;
}

Dlaczego to nie działa? Ma wypisywac liczby ze stosu większe od 3

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
1

Spróbuj tak:

Kopiuj
for(k=0;k<13;k++) {
    int u = y.top();
    if(u>3)
    cout<<"\nwieksze od 3 "<<u;
    y.pop();
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
2
Kopiuj
while(!y.empty())
  {
   if(y.top()>3) cout<<y.top()<<endl;
   y.pop();
  }
KR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2518
1

A jeśli nie możesz wywalać ze stosu w trakcie wypisywania to znaczy, że nie potrzebujesz stosu tylko tablicy (vector)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.