我正在尝试序列化Eigen的矩阵.这样我就可以序列化一个更复杂的对象.我使用Matrix作为基类,并在派生类中包含序列化.我很困惑如何处理Matrix.data(),它返回一个c风格的数组(如果我是正确的).这是我的尝试:
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
template < class TEigenMatrix>
class VariableType : public TEigenMatrix {
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & this.data();
}
public:
};
Run Code Online (Sandbox Code Playgroud)
我想用它作为"包装器":
VariableType<Matrix<double,3,1>> serializableVector;
Run Code Online (Sandbox Code Playgroud)
代替
Matrix<double,3,1> vector;
Run Code Online (Sandbox Code Playgroud) 您好我有一个代码实现libeigen2来计算特征向量.现在我想使用boost :: serialization来保存稍后检索的信息.从示例教程中我得出以下代码!
class RandomNode {
private:
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & is_leaf_;
ar & depth_;
ar & num_classes_;
ar & num_features_;
// Split node members
ar & random_feature_indices_;
ar & random_feature_weights_;
ar & threshold_;
ar & leftChild_;
ar & rightChild_;
}
bool is_leaf_;
int depth_;
int num_classes_;
int num_features_;
// Split node members
VectorXi random_feature_indices_;
VectorXd random_feature_weights_;
double threshold_;
RandomNode* leftChild_;
RandomNode* rightChild_;
// Methods and …Run Code Online (Sandbox Code Playgroud)