如果我有这个包含两个非零数据群的二维数组,我如何在两个单独的向量中传输非零值的所有索引。一个用于左侧的所有非零值的索引,一个用于右侧的所有非零值的索引?
{1,0,0,0,1,0}
{1,1,0,0,1,1}
{1,0,0,0,0,0}
这是我到目前为止所做的:
我使用了for-loop,但我觉得它不正确:
for(int i=0;i<width;i++){
for(int j=0; j < height; j++){
if(Maps[i][j] > 0 || Maps[i+1][j] > 0 || Maps[i-1][j] > 0 || Maps[i][j+1] > 0 || Maps[i][j-1] > 0){
row = j / width;
col = j % width;
}
}
我尝试使用 switch-case 但我没有继续使用它,因为它看起来很垃圾!
for(int i=0 ; i<width; i++){
for(int j=0 ; j<height; j++){
switch(){
case (Maps[i][j] > 0):
row = j / width;
col = j % width;
PIndAmp.push_back(std::make_pair(row,col));
break;
case (Maps[i][j] > 0 && Maps[i][j+1] > 0):
for(Maps[i][j] > 0){
row = j / width;
col = j % width;
PIndAmp.push_back(std::make_pair(row,col));
}
for(Maps[i][j+1] > 0){
row = j+1 / width;
col = j % width;
PIndAmp.push_back(std::make_pair(row,col));
}
break;
}
}
提前致谢...