第一个for循环直接被跳过,第二个for循环报错,我感觉自己的迭代器写的没问题呀
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
vector<int> ivec;
int temp = 0;
for (int i = 0; i != N; ++i) {
cin >> temp;
ivec.push_back(temp);
}
for (auto i = ivec.begin() + N; i != ivec.end(); ++i) {
cout << *i << " ";
}
for (auto i = ivec.begin(); i != ivec.begin() - N; ++i) {
cout << *i;
if (i != ivec.begin() - N - 1) {
cout << " ";
}
}
return 0;
}
都循环反掉了,从begin向后循环,哪有begin+N向后的?