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

时间:2013-11-04 14:51:56

标签: c++ c

我有一个问题,我在互联网上发现,但它没有最好的解决方案。我的问题是我有一个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;
}

1 个答案:

答案 0 :(得分:0)

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