
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
int n,m,temp;
vector<int> v;
cin >> n >> m;
m %= n;
while (n--) {
cin >> temp;
v.push_back(temp);
}
reverse(v.begin(), v.end()); // 数组v反转
reverse(v.begin(), v.begin() + m);// 前m个元素反转
reverse(v.begin() + m , v.end());//后n-m个反转
for(auto t = v.begin() ; t != v.end() ; t++){
if(t != v.begin()) cout << " ";
cout << *t ;
}
return 0;
}
本文介绍了一种使用C++实现数组旋转的方法。通过三次反转操作完成数组的旋转:首先反转整个数组,然后分别反转前m个元素和后n-m个元素。这种方法简洁高效,适合初学者学习。
378

被折叠的 条评论
为什么被折叠?



