Ага) Можно заменить слово "queue" на "stack", суть от этого не изменится, код будет работать также) Только смотри, ты неправильно понял условия. Нужно было проверить, правильно ли расставлены скобки. Ты же просто проверяешь наличие самих скобок в строке. #include <iostream> #include <string> #include <stack> using namespace std; int main(){ string sa; cin >> sa; stack<char> la; for(int c=0;c<sa.length();c++) if(sa.at(c)=='(')la.push('('); else if(sa.at(c)==')') if(la.size() && la.top()=='(')la.pop(); else la.push(')'); cout << (la.size()?"BAD":"OK") << "!"; } Код #include <iostream> #include <string> #include <stack> using namespace std; int main(){ string sa; cin >> sa; stack<char> la; for(int c=0;c<sa.length();c++) if(sa.at(c)=='(')la.push('('); else if(sa.at(c)==')') if(la.size() && la.top()=='(')la.pop(); else la.push(')'); cout << (la.size()?"BAD":"OK") << "!"; }
А если оперировать только со стеком исключая методы строки (sa.at(с), sa.length())? Можешь скинуть пример с итератором?
Так? #include <iostream> #include <string> #include <stack> using namespace std; int main(){ char c; stack<char> la; while((c=getchar())!='\n') if(c=='(')la.push('('); else if(c==')') if(la.size() && la.top()=='(')la.pop(); else la.push(')'); cout << (la.size()?"BAD":"OK") << "!"; } Код #include <iostream> #include <string> #include <stack> using namespace std; int main(){ char c; stack<char> la; while((c=getchar())!='\n') if(c=='(')la.push('('); else if(c==')') if(la.size() && la.top()=='(')la.pop(); else la.push(')'); cout << (la.size()?"BAD":"OK") << "!"; }
Я думаю один из ваших кодов подойдет, спасибо ребят :) Если кому-то нечего делать, или есть желание помочь. Как реализовать калькулятор через Stack? Обычный калькулятор есть, но оказалось нужен стек
Не, итератор это отдельный объект, который оперирует с объектами контейнера не тревожа внутренности. Я жавист просто, хотел посмотреть на этом примере, не отходя от кассы.) Ну да ладно
Можешь описать более подробно задание? В строке нужно найти математический символ и произвести операцию?
Можешь описать более подробно задание? В строке нужно найти математический символ и произвести операцию?
Использовать char, стек, switch вводите числа и действие которое нужно сделать (всего + , - , * , / ) Выводить результат.