检查 2D 数组中是否存在元素,如果为 true,则返回一些内容

Check if an element exists in a 2d array and return something if true

本文关键字:true 返回 如果 数组 2D 是否 元素 存在 检查      更新时间:2023-10-16

我对使用多维数组不是很熟悉,在这里我试图查看元素是否存在于 2d 数组中,如果存在,我想要某种指示。

// initialize an array 3x3
int matrix[3][3]; 
bool found = false;
// The matrix will be loaded with all 0 values, let's assume this has been done.
// Check if there are any 0's left in the matrix...
for(int x = 0; x < 3; x++){
    for(int y = 0; y < 3; y++){
        if(matrix[x][y] == 0){
           break; // << HERE I want to exit the entire loop.
        }else{
            continue; // Continue looping till you find a 0, if none found then break out and make: found = true;
        }
    }
}

控制标志将很有用:

bool found = false;
for (unsigned int row = 0; (!found) && (row < MAX_ROWS); ++ row)
{
  for (unsigned int column = 0; (!found) && (column < MAX_COLUMNS); ++ column)
  {
    if (matrix[row][column] == search_value)
    {
       found = true;
    }
  }
}

编辑 1:
如果要保留row值和column值,则需要break每个循环:

bool found = false;
for (unsigned int row = 0; (!found) && (row < MAX_ROWS); ++ row)
{
  for (unsigned int column = 0; (!found) && (column < MAX_COLUMNS); ++ column)
  {
    if (matrix[row][column] == search_value)
    {
       found = true;
       break;
    }
  }
  if (found)
  {
    break;
  }
}

试试这个:-

int matrix[3][3];
bool found = false;

for(int x = 0; x < 3 && found == false; x++)
  {
    for(int y = 0; y < 3; y++)
     {
       if(matrix[x][y] == 0)
       {
          found = true;
          break; 
       }
     }
 }
if (found)
 cout<<"0 exists in the matrix";
else
 cout<<"0 doesn't exist in the matrix";