【发布时间】:2013-11-04 14:51:55
【问题描述】:
我在互联网上发现了一个问题,但它没有最好的解决方案。我的问题是我有一个二维矩阵,我想在第 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;
}
【问题讨论】:
-
释放
inputMatrix[position]处的内存并将inputMatrix[i] = inputMatrix[i + 1]for i 从position复制到小于2 的大小。此外,您的函数实际上应该得到矩阵的大小。 -
@Shahbaz 更像是将给定列之后的所有元素向左移动一个位置,然后为最后一个元素释放内存。不能释放数组中间的内存。
-
@IvayloStrandjev,哦等等,对。我所做的实际上是删除一行(假设
inputMatrix[i]选择行i)。如果矩阵先在行上选择,然后在列上选择,则除了实际复制数据之外别无他法。 -
“你能帮帮我吗”不是关于编程语言的问题。
-
你可以从这里得到它——“用于科学计算的 C++”(people.maths.ox.ac.uk/richardsonm/cpp.pdf)