从 2D 数组中删除列C++

Delete column from 2D array in C++

本文关键字:删除列 C++ 数组 2D      更新时间:2023-10-16

我有一个在互联网上找到的问题,但它没有最好的解决方案。我的问题是我有一个 2D 矩阵,我想删除第 i 个位置的一列。示例,矩阵可以表示为 A[2][3]={1,2,3,4,5,6}。我想删除位置 2 的列。所以输出是 B={1,3,4,6}。你能帮我吗?

A=[1 2 3
   4 5 6]

输出

   B=[1 3
      4 6]

函数是

int** delete_column(int** inputMatrix,int position)
{
  //The size of outMatrix must be smaller than inputMatrix
  return outMatrix;
}

你不能在 c++ 中使用静态数组就地执行此操作。您将需要创建另一个数组并在那里复制数据。但是,如果使用指向动态数组的指针数组,则可以就地移动元素,然后调用realloc来缩小数组。您还可以使用向量的向量并对其调用 remove 。