私はstd::vector
大量の を保持するために に依存していEigen::MatrixXd
ます。C++ の専門家ではない私は、このタイプの構造体でメモリ割り当てを適切に管理するにはどうすればよいか疑問に思っています。特に、私の質問は、それをクラスメンバーとして使用して、クラスデストラクタで割り当てられたメモリを解放するにはどうすればよいですか?
std::vector を使用します。Eigen::MatrixXd を使用します。
Class myClass{
//...
vector<MatrixXd> container;
//...
myClass();
~myClass();
}
のコンストラクタとデストラクタmyClass
:
myClass::myClass(){
//...
container=vector<MatrixXd>(100);
for (int i=0; i<container.size(); i++) container[i]=MatrixXd::Zero(100,100);
//...
}
myClass::-myClass(){
//...
for (int i=0; i<container.size(); i++) container[i].resize(0,0);
container.clear();
//...
}
すでに固有行列のサイズを (0,0) に変更しているので、 を呼び出すだけで十分ですかclear()
、それとも を使用する必要がありdelete
ますか? vector<MatriXd*>
代わりに使用する利点はありますか?