旋转时“结束后无法寻找向量迭代器”

时间:2019-05-23 19:56:22

标签: c++11

有2张纸牌(卡纸A和卡纸B),卡纸A有n张卡,从上到下从1到n进行编号,卡纸B是空的。需要应用三个规则:

1)将卡片组A的顶卡放在卡片组B的顶部 2)从卡座A切换顶部卡和底部卡,对卡座B进行相同操作 3)如果卡片组A中还剩卡片,请继续执行前两个规则

#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 << ",";
        }
    }
}

我正在表达:结束后无法寻求向量迭代。我敢肯定我会错了。任何帮助表示赞赏。

0 个答案:

没有答案