//0 1 2 3 4 5 6 7
//1 2 3 4 5 6 7 0
//2 3 4 5 6 7 0 1
#include<iostream>
#include<vector>
using namespace std;
void reverse_arr(vector<int>&vec,int start,int end)
{
for(;start<end;start++,end--)
{
swap(vec[start],vec[end]);
}
}
void shift_left(vector<int>&vec,int k)
{
int len=vec.size();
k=k%len;
reverse_arr(vec,0,k-1);
reverse_arr(vec,k,len-1);
reverse_arr(vec,0,len-1);
}
int main()
{
int arr[8]={0,1,2,3,4,5,6,7};
vector<int> vec(arr,arr+8);
shift_left(vec,3);
for(int i=0;i<vec.size();i++)
cout<<vec[i];
cout<<endl;
}
//
//g++ shift_left.cc -o shift_left
//./shift_left
2_shift_left
最新推荐文章于 2024-04-17 09:07:11 发布