我有一个四边形(二维数组),由数字组成,范围从0到255 并且数组的最常见值(在我的情况下为2)是背景值
我必须在这种排列的一维数组中放置除背景值之外的数组的所有值(我必须忽略包含2的所有情况)
行,列,值,行,下一列,下一个值
例如我有
{2,3,2,2},
{2,2,2,2},
在1D数组中,它将像{ 1,2,3,}
我添加了空格以使其更具可读性
这是我的数组
int image1[MAXL][MAXC]=
{
{2,3,2,2},
{2,2,2,2},
{2,255,2,2},
{255,2,2,2},
{2,255,2,2}
};
和循环
for (int i = 0; i<nbc;i++)
{
for (int j=0; j<nbl;j++)
{
if (image1[j][i]==BackColor)
{
}
else
}
}
nbc和nbl分别是列数和行数
感谢您的帮助
编辑:我完全失败了我的例子我没有忽略2,现在应该没事了
答案 0 :(得分:0)
使用std::vector
std::vector<int> result;
for (int i = 0; i<MAXL;i++)
{
for (int j=0; j<MAXC;j++)
{
if (image1[i][j] != BackColor) // Notice !=
{
result.push_back(i+1);
result.push_back(j+1);
result.push_back(image1[i][j]);
}
}
}
for (auto x : result)
{
std::cout << x << " ";
}
std::cout << endl;
输出:
1 2 3 3 2 255 4 1 255 5 2 255