不知怎么的,这段程序运行后什么都不输出
#include<iostream>
#include<vector>
using namespace std;
void recurse(vector<vector<bool>> queens,vector<vector<bool>> trail,int n,int k){
if(k>n){
for(vector<vector<bool>>::iterator it=queens.begin();it!=queens.end();it++){
for(vector<bool>::iterator it2=it->begin();it2!=it->end();it++){
if(*it2){
cout<<"Q";
}else{
cout<<"*";
}
}
cout<<endl;
}
return;
}
int direct_x[8]={1,1,1,0,0,-1,-1,-1};
int direct_y[8]={1,0,-1,1,-1,1,0,-1};
vector<vector<bool>> Qtmp=queens;
vector<vector<bool>> Ttmp=trail;
for(int i=0;i<n;i++){
queens[k][i]=true;
for(int j=0;j<8;j++){
trail[k+direct_y[j]][i+direct_x[j]]=true;
}
if(!trail[k][i]){
recurse(queens,trail,n,k+1);
}
queens=Qtmp;
trail=Ttmp;
}
}
void Nqueens(int n){
vector<vector<bool>> trail;
vector<vector<bool>> queens;
for(vector<vector<bool>>::iterator it=queens.begin();it!=queens.end();it++){
for(vector<bool>::iterator it2=it->begin();it2!=it->end();it++){
*it2=0;
}
}
for(vector<vector<bool>>::iterator it=trail.begin();it!=trail.end();it++){
for(vector<bool>::iterator it2=it->begin();it2!=it->end();it++){
*it2=0;
}
}
recurse(queens,trail,n,1);
}
int main(){
int n;
cin>>n;
Nqueens(n);
}