Stack error.

KA
  • Rejestracja:około 12 lat
  • Ostatnio:prawie 12 lat
  • Postów:12
0

Witam napisalam dzis kod tego typu, kopiluje sie jednak po wpisuaniu liczby testow i wprowadzeniu pierwszego wyskakuje error : "deque iterator not dereferencable" czy wie ktos moze gdzie jest blad? oto kod

Kopiuj
 #include <iostream>
#include <stack>
#include <string>
 
using namespace std;
 

 
int main()
{
        stack < char > s;
		//s.empty();
        int t;
        cin>>t;
        
        for(int j=0; j<t;j++) {
				string in;
				int size;
				size=in.length();
				getline(cin, in);
				cin.ignore(1);
                for(int i= size-1; i>= 0 ; i--) {
                        char arg1, arg2;
                       
						if(in[i] == 't'){
							s.push('t');
						}
						if(in[i] == 'f'){
							s.push('f');
						}
						if(in[i] == 'K'){
							arg1 = s.top();
							s.pop();
							arg2 = s.top();
							s.pop();
							s.push(arg1+arg2+'K');		
						}
						if(in[i] == 'A'){
							arg1 = s.top();
                            s.pop();
                            arg2 = s.top();
                            s.pop();
                            s.push(arg1+arg2+'A');
						}
						if(in[i] == 'N'){
							arg1 = s.top();
                            s.pop();
                            s.push(arg1+'N');
						}
						
						
						
				}
			//s.empty();
               cout<<s.top()<<endl;
               s.pop();
        }
 
        return 0;
}
Patryk27
Sformatuj ten kod...
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:5 dni
0
Kopiuj
                string in;  // pusta zmienna
                int size;
                size=in.length(); // size=0;
                getline(cin, in);
                cin.ignore(1);
                for(int i= size-1; i>= 0 ; i--) { // i zaczyna od -1

Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Zobacz pozostałe 2 komentarze
KA
teraz mam string subscript out of range, eh nadal nie rozumiem gdzie jest blad
_13th_Dragon
Powiedz może jakiego wyniku spodziewasz się po arg1+arg2+'K' (załóżmy że arg1 i arg2 to 't' i 'f' odpowiednio)?
KA
przykladowy test: in: KtKtf out: ttfKK
_13th_Dragon
no to elementem stosu jest string a nie char oraz arg1+arg2+'K' trzeba zamienić na: string(&quot;&quot;)+arg1+arg2+'K'
KA
zmienilam na stack < string > s; arg1+arg2 + 'K' na string("")+arg1+arg2+'K' i w reszcie przypadkow analogicznie, char arg1 i arg2 na stringi, jednak ciagle ten sam blad, przy probie wpisania testu ;/

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.