array to std::vector conversion
I replaced a 3D array with a 3D std::vector in my code and it's entering
an infinite loop at compile time. If I had used a 3D array arr[ ][ ][ ] it
would work perfectly.
bool sol(std::vector<std::vector<std::vector<int> > > vec)
{
int row,col;
if(!find_empty(vec,row,col) )
return true;
for(int i=1;i<=vec[row][col].size();i++)
{
if(is_working(vec,row,col,vec[row][col][i]) )
{
vec[row][col][0] = vec[row][col][i];
if(sol(vec))
return true;
vec[row][col][0] = 0;
}
}
k++;
return false;
}
where std::vector<std::vector<std::vector<int>>>vec is initialized:
for(int i=0;i<12;i++)
{
vec[i].vec(12);
for(int j=0;j<12;j++)
{
vec[i][j].resize(13);
for(int k=0;k<13;k++)
vec[i][j][k]=arr[i][j][k];
}
}
No comments:
Post a Comment