旋转旋转模拟模拟!

class Solution {
public:
bool if_out_of_range(int n,int i,int j,vector<vector<int>>res){
if(i<0||j<0||i>=n||j>=n||res[i][j]!=0)return true;
else return false;
}
vector<vector<int>> generateMatrix(int n) {
int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int number=0;
int current_dir=0;
int current_i=0,current_j=0;
vector<vector<int>>res(n,vector<int>(n,0));
while(!if_out_of_range(n,current_i,current_j,res)){
res[current_i][current_j]=++number;
if(if_out_of_range(n,current_i+dir[current_dir][0],current_j+dir[current_dir][1],res))current_dir=(current_dir+1)%4;
current_i+=dir[current_dir][0];
current_j+=dir[current_dir][1];
}
return res;
}
};