コードで行列演算とベクトル演算にブーストを使用していますが、使用しているライブラリの 1 つ (CGNS) には引数として配列があります。ブーストの「方法」でベクトルを double[] にコピーするにはどうすればよいですか?
私はC ++に少し慣れていないので、ブーストを始めたばかりです。この情報とともに読むべきガイドはありますか?
任意の2つの入力イテレータ間の内容は、アルゴリズムを使用してcopy
出力イテレータにコピーできます。と配列の両方ublas::vector
にイテレータインターフェイスがあるため、次を使用できます。
#include <boost/numeric/ublas/vector.hpp>
#include <algorithm>
#include <cstdio>
int main () {
boost::numeric::ublas::vector<double> v (3);
v(0) = 2;
v(1) = 4.5;
v(2) = 3.15;
double p[3];
std::copy(v.begin(), v.end(), p); // <--
printf("%g %g %g\n", p[0], p[1], p[2]);
return 0;
}
関係するタイプによって異なります。std::vector
あなたはそれが空でないことを確認してください、そしてあなたは合格することができます&v[0]
。ほとんどの場合、使用しているBoostタイプにも同じことが当てはまります。