我有一個問題,我在互聯網上發現,但它不是最好的解決方案。我的問題是我有一個2D矩陣,我想刪除第i個位置的一列。例如矩陣可以表示爲A [2] [3] = {1,2,3,4,5,6}。我想刪除位置2的列。所以輸出是B = {1,3,4,6}。你能幫我嗎?從C++的2D數組中刪除列
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]'處釋放內存並將i的'inputMatrix [i] = inputMatrix [i + 1]'從'位置'複製到小於2的大小。另外,你的函數實際上應該得到矩陣的大小。 – Shahbaz
@Shahbaz它更像是將給定列之後的所有元素移到左邊一個位置,然後爲最後一個元素釋放內存。您不能釋放數組中間的內存。 –
@IvayloStrandjev,哦,等等,對。我所做的實際上是刪除一行(假設'inputMatrix [i]'選擇行'i')。如果矩陣選擇第一行,然後選擇顏色,則無法實際複製數據。 – Shahbaz