2016-04-05 6 views
0

を割り当てる:VectorXdがあるので、動的に次のように固有で無作為化VectorXdが行われているの割り振りランダム固有VectorXd

VectorXd* z = new VectorXd::Random(10000); // error: expected type-specifier 

:しかし

VectorXd z = VectorXd::Random(10000); 

が、私は動的に同じベクトルを割り当てる方法を確認していませんa typedef。しかし私は私は、これがuncessaryかつ非効率的であると思われる、別のコンストラクタを使用することができます。

VectorXd* z = new VectorXd(VectorXd::Random(10000)); // compiles 

答えて

2

Eigen::VectorXdが動的に独自コンテンツ(素子アレイ)に必要なメモリを割り当てます容器であるので、以下の全て動作します:

VectorXd* z1 = new VectorXd(VectorXd::Random(10)); // compiles 
std::cout << "z1:\n" << z1->transpose() << "\n\n"; 

VectorXd* z2 = new VectorXd(); // also compiles 
z2->setRandom(10); 
std::cout << "z2:\n" << z2->transpose() << "\n\n"; 

VectorXd* z3 = new VectorXd(); // compiles as well 
*z3 = VectorXd::Random(10); 
std::cout << "z3:\n" << z3->transpose() << "\n\n"; 

固有のほとんどは、サイズが動的ではないのそれらの例外(例えばEigen::Vector3d)を持つオブジェクトのためにこれは本当です。

関連する問題