我是靠着一个std::vector
来持有大量的Eigen::MatrixXd
。不是 C++ 专家,我发现自己想知道使用这种结构正确管理内存分配的最佳方法是什么。特别是,我的问题是,将它用作类成员,如何释放类析构函数中分配的内存?
使用标准::向量;使用 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();
//...
}
仅仅调用就足够了clear()
,因为我已经将特征矩阵调整为(0,0),还是需要使用delete
?使用它有什么好处vector<MatriXd*>
吗?