2

コードで行列演算とベクトル演算にブーストを使用していますが、使用しているライブラリの 1 つ (CGNS) には引数として配列があります。ブーストの「方法」でベクトルを double[] にコピーするにはどうすればよいですか?

私はC ++に少し慣れていないので、ブーストを始めたばかりです。この情報とともに読むべきガイドはありますか?

4

2 に答える 2

3

任意の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;
}
于 2010-10-08T16:41:30.497 に答える
0

関係するタイプによって異なります。std::vectorあなたはそれが空でないことを確認してください、そしてあなたは合格することができます&v[0]。ほとんどの場合、使用しているBoostタイプにも同じことが当てはまります。

于 2010-10-08T16:42:55.533 に答える