如何删除C ++中给定矩阵中的特定行和列?

时间:2020-07-05 18:02:30

标签: c++ matrix search vector erase

我有一个unsigned int的多维unsigned long long int,并且希望能够在命令中删除特定的列或行。例如,如果我有这个矩阵:

0 to 18,446,744,073,709,551,615

删除第二列会将矩阵更改为

BigNums

然后,删除第三行会将矩阵更改为

vector

为此目的我编写的代码目前针对行和列删除均返回错误:

chars

有人可以告诉我怎么了吗?

1 个答案:

答案 0 :(得分:3)

您有一个行向量,因此要删除一列,必须从每行中删除一个字符。您可以编写一个循环来做到这一点。例如

for (int row = 0; row < matrix.size(); ++row)
    matrix[row].erase(matrix[row].begin() + k);

编辑

所以您的代码应该最终看起来像这样

if (s == word) // if a specific word is founded
{
    // delete a column            
    for (int row = 0; row < matrix.size(); ++row)
        matrix[row].erase(matrix[row].begin() + k);
    cout << "Word is founded" << endl;
    printMatrix(matrix); // And print it 
}