2012-05-12 81 views

回答

2

在C++中,它也同樣簡單:

vector<vector<double> > matrix; 
vector<double> &row = matrix[i]; 

在C,這將是

double *row = Matrix[i]; 

注意,在C方式C工作++爲好,但你應該更喜歡集裝箱普通指針,只要您可以。

+0

應該注意的是這兩個版本完全不同的東西。 –

+0

@CrazyEddie對於不同的編程語言(C和C++)的引用應該完全清楚。 – dasblinkenlight

+0

超越了這一點。 C++版本創建該行的副本。 C版本指向它。這是一個非常顯着的差異,與不同的語言無關。 –

0

爲了得到一排,很簡單,就像@dasblinkenlight說的那樣。但是,要獲得專欄,則涉及更多。假設你知道在矩陣的行數,你可以做到以下幾點:

int *copyColumn(int **matrix, int column, int rows) 
{ 
    int *data = new int[rows]; 

    for (int i = 0; i < rows; i++) 
     data[i] = matrix[i][column]; 

    return data; 
} 

只記得delete數據,當你用它做!