我试图解决与操纵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%的计划,但我无法解决这个问题。有什么想法吗?