2012-05-12 8 views

答えて

2

++、それは同じように簡単です:Cで

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

Cの方法は、C++と同様に動作しますが、あなたはいつでも、プレーンポインタにコンテナを好むべきであると

double *row = Matrix[i]; 

注意されることをあなたはできる。

+0

これらの2つのバージョンはまったく異なるものに注意する必要があります。 –

+0

@CrazyEddieこれは、別のプログラミング言語への参照から完全にはっきりしているはずです(C vs. 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データに覚えている:あなたは行列の行数を知っていると仮定すると、あなたは、次の操作を行うことができます!

関連する問題