std::vector<std::vector<double>>
が私が望むパフォーマンスを与えていなかったので、私は自分のマトリックスクラスのための単一のスラブを作成しようとしていました。だから私は単一の1dアレイを使うことに決めました。だから私はこれのためにdoubleのshared_ptrを使うことを考えました。特定の場所に何かを割り当てるための要素にアクセスするためにshared_ptrにオフセットを追加するには?
matrix = std::make_shared<double []> (row*col);
:私は宣言共有ポインタにメモリを割り当てるために
std::shared_ptr<double> matrix;
:私は変数を宣言する
マトリックス:
*(matrix + r*col + c) = 0.0;
これは
`エラーと言って私にエラーを与える:私たちは、ポインタに+
を使用すると考えていた '演算子+' の不一致(オペランドの型が 'のstd :: shared_ptrの' と 'size_tの' です)
を。ポインタにスカラー値を追加しないのはなぜですか?
'std :: vector行列(行* col)'を使用しないのはなぜですか? –
NathanOliver
あなた自身の2D数学をすることは 'ベクトル>'より速いとは思いません。 –
'matrix.get()+ ...'を使用します。あるいは、ネイサンが言ったことを実行してください。 –