改变二维向量中的所有相邻元素

时间:2017-03-15 15:17:03

标签: c++ vector

我试图解决与操纵2D char矢量元素有关的问题。想象一下,矢量为X×Y矩阵,其中X是列数,Y是行数。最初所有元素都是0。

我需要编写代码,当我通过它的索引(即vect [3] [4])处理向量的元素并更改它的值时,更改所有相邻的元素它在矩阵中(4个元素 - 上,下,左,右)到相同的值,然后继续以相同的方式改变与那些元素相邻的所有元素 - 但只要它们具有与第一个元素相同的初始值解决。我们假设矩阵是9x5。

std::vector<std::vector<char>> vect;
int x,y;
char input;
for (int i = 0; i < n; i++) {
    std::vector<char> temp;
    for (int i = 0; i < m; i++) {
        temp.push_back('0');
    }
    vect.push_back(temp);
} //used to initialize the vector of char vectors and set all the elements to 0
std::cin>>x;
std::cin>>y;
std::cin>>input;
table[y][x] = input; // changes the initial element to the value specified

/*imagine this as a matrix that already had some elements changed beforehand (at some point between the initialization and the code I need to write)
000000A00
000000AAA
000000A00
0A00000AA
0000AAAA0 */

现在如果我输入让我们说x为2,y为3,字母B为char输入,首先元素vect [3] [2]应该变为B,然后是所有与之相邻的因此,直到元素已经变为B,除了那些在输入给定之前不是0的情况,或者与输入结果改变了值的任何0个元素相邻的情况除外。所以矩阵应该是这样的:

/*matrix after x=2, y=3, input=B
BBBBBBA00
BBBBBBAAA
BBBBBBA00
BABBBBBAA
BBBBAAAA0
*/

该计划的目的是什么,我已经找到了大约90%的计划,但我无法解决这个问题。有什么想法吗?

0 个答案:

没有答案