2012-05-10 13 views
1

私は自分の.hファイル内のベクトルを定義することによってublasベクトルに値を割り当てる/初期化しようとしています:ublasベクトルポインタ

someClass{ 
    ublas::vector<double> *L; 
} ; 

その後、私の.cppファイルに:

someClass::someClass() 
{ 
    L = new ublas::vector<double>[4]; 
    L->data()[0] = 1; 
} 

コードは正常にコンパイルされますが、実行すると.cppファイルの最後の行にエラーが発生します。おそらく何か非常にシンプルな私は行方不明ですが、私は何を把握することはできません...

事前に多くのありがとう! :)

答えて

1

あなたは4つのubas :: vectorの配列を作成しました。サイズはそれぞれゼロです。空のベクトルの最初の要素に代入すると例外がスローされます。

あなたの代わりに

L = new ublas::vector<double>(4); 

を書くことを意味していましたか?新しいポインタの使用は疑問であることは言うまでもありません

は、ほとんどの用途のために、メンバーの目的は、より適切です:

class someClass { 
    ublas::vector<double> L; 
public: 
    someClass() : L(4) { 
      L[0] = 1; 
    } 
}; 
+0

'工ass():L(4)...'エラーがスローされます'L = new ublas :: vector (4)'が動作します。メンバーオブジェクトをさらに見て、それを動作させることができるかどうかを見ていきます。ありがとう! –

+0

@chocobo_ffは私のためにエラーを投げません:http://ideone.com/V5YlS – Cubbi

+0

OK私は今何を間違っていたのか分かります。 –

関連する問題