从C ++中的文件中读取包含std :: vector的对象

时间:2017-11-19 09:40:27

标签: c++ c++11 fstream ifstream

namespace sd {
class frag_meta{
private:
    std::vector<std::vector<unsigned long long>> pos;
    std::vector<std::vector<size_t>> size;
    size_t meta_size = 0;

public:
    void extend(unsigned long long pos, size_t size);
    size_t get_meta_size();
};

上面的代码是我在标题中提到的对象类。

此类作为单个文件中碎片数据的元数据存在。 该类的对象意味着位于文件的末尾。

我想读取这个元数据来读取文件中的数据,但我不知道如何。由于此类包括std :: vector&lt;&gt;对象,我不知道我应该为frag_meta对象读取多少数据。

我真的需要帮助。

1 个答案:

答案 0 :(得分:1)

有很多选择:

  1. 为您的班级编写自己的序列化(例如,覆盖operator<<()operator>>()
  2. 您可以使用现有的库,例如https://github.com/USCiLab/cereal