• ベストアンサー

「vector< vector<double>>からdouble*への

「vector< vector<double>>からdouble*への変換につきまして」 C++の行列計算のライブラリとして以下の関数を使うことになったのですが、 //matA*vecB=vecX void CalcMatrix(int rows, double* matA, double* vecB, double* vecX); この引数として vector< vector<double>> で定義した変数を渡す方法はありますでしょうか? もし御座いましたらご教授御願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

じゃあ無理. 「1つの vector の中」なら要素のアドレスが連続することを保証しているが, 「複数の vector の中で要素がひとつながりになる」ことはだれも保証しない.

sankaku156
質問者

お礼

vectorがそれぞれのvectorを格納しているのではなく、 vector<vector<double>>という中に二次元配列があると勘違いしておりました。 ご回答ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

一見では不可能だと思います. もちろん, なぜかあなたが書いてくれない CalcMatrix の仕様によってはできるのかもしれませんが.... しかし, まともな関数名をつけようとは思わなかったのかねぇ.

sankaku156
質問者

補足

本来の引数としては double* matA = new double(rows*cols)//rows:行の数, cols:列の数 で用意したものを先ほどの関数に入れるよう指定されているのですが、 vector<vector<double> > matA; matA.assign(rows, vector<double>(cols)); で代用できないかと考え質問させていただきました。 質問させていただく身でありながら、情報が不足してしまい申し訳ありません。

すると、全ての回答が全文表示されます。

関連するQ&A