【发布时间】:2020-07-05 18:02:30
【问题描述】:
我有一个chars 的多维vector,我希望能够根据命令删除特定的列或行。例如,如果我有这个矩阵:
A B C D
L K T M
A M T N
删除第二列会将矩阵更改为
A C D
L T M
A T N
然后,删除第三行会将矩阵更改为
ACD
LTM
我为此目的编写的代码目前在删除行和列时都返回错误:
void verticalSearch(vector< vector<char> >matrix, int startIndex, int lengthWord, string word)
{
for(int k = 0; k < matrix[0].size() ; k++) // iterating for each column
{
for (int i = 0; i < matrix.size() - lengthWord + 1; i++) // for each row
{
char c;
string s = "";
for (int j = startIndex; j < startIndex + lengthWord; j++) // this startIndex is always 0
{ // but this for loop stands for iterating in a length of given word
c = matrix[i + j][k]; // adding given index of matrix to character c
s += c;
}
if (s == word) // if a specific word is founded
{
matrix[0].erase(matrix[0].begin() + k); // delete this column but not working correctly
cout << "Word is founded" << endl;
printMatrix(matrix); // And print it
}
}
}
}
谁能告诉我怎么了?
【问题讨论】:
标签: c++ matrix search vector erase