В моем коде нет ошибок, но он не запускается. Думаю, проблема с "стеком" - PullRequest
0 голосов
/ 07 мая 2020

Я не могу найти ошибок в своем коде, но он не запускается. Я очень старался это выяснить, но не мог понять, почему он не работает. Я только что научился использовать «стек», так что, возможно, в моем коде что-то не так.

#include<cstdio>
#include<iostream>
#include<stack>
int main()
{
    std::stack<int> yellow;
    std::stack<int> purple;
    std::stack<int> pink;
    std::stack<int> temp;
    for (int i = 0; i < 6; i++) {
        yellow.push(i + 1);
        purple.push(i + 1);
        pink.push(i + 1);
    }
    std::cout << std::endl << "Yellow - ";
    for (unsigned int i = 0; i <= size(yellow); i++) {
        temp.push(yellow.top());
        yellow.pop();
    }
    for (unsigned int i = 0; i <= size(temp); i++) {
        printf_s("%d", temp.top());
        yellow.push(temp.top());
        temp.pop();
    }
}

1 Ответ

1 голос
/ 07 мая 2020

Ваши for циклы не имеют для меня смысла. Вы увеличиваете i и уменьшаете размер std::stack каждый раз через l oop. Желаемое условие завершения l oop очень неясно.

Если вы хотите переместить элементы из одного стека в другой, вы можете использовать std::stack::empty с while l oop .

while (!yellow.empty()) {
    temp.push(yellow.top());
    yellow.pop();
}
while (!temp.empty()) {
    printf_s("%d", temp.top());
    yellow.push(temp.top());
    temp.pop();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...