«Не удается найти векторный итератор после конца» во время вращения - PullRequest
0 голосов
/ 23 мая 2019

Есть 2 колоды карт (колода A и колода B), колода A имеет n карт, которые пронумерованы от 1 до n сверху вниз, колода B пуста.Необходимо применить три правила:

1) Поместить верхнюю карту из колоды A на верх колодыB 2) Переключить верхнюю карту из колоды A с нижней картой, сделать то же самое с колодой B 3) Если остались картыв deckA продолжайте выполнять первые два правила

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> deckA;
    vector<int> deckB;

    for (int i = 0; i < n; i++) {
        deckA.push_back(i+1);
    }
    for (int i = 0; i < n; i++) {
        deckB.insert(deckB.begin(), deckA[0]);
        deckA.erase(deckA.begin());
        rotate(deckA.begin(), deckA.begin() + 1, deckA.end());
        rotate(deckB.begin(), deckB.begin() + 1, deckB.end());
    }
    for (int i = 0; i < n; i++) {
        cout << deckB[i];
        if (i != n-1) {
            cout << ",";
        }
    }
}

Я получаю выражение: не могу искать вектор, повторяющийся после завершения.Я почти уверен, что вращаюсь неправильно.Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...