如何组织二进制文件中的数据?

时间:2017-07-14 16:40:46

标签: c++ arrays binaryfiles

我正在尝试在二进制文件中组织矩阵,我不太清楚如何去做。我已成功地将二维数组写入二进制文件,然后读取该数据,但我担心我只是在我的二进制文件中写了一个长行,然后将其读回到二维数组中。但是,再说一次,我不完全确定二进制文件是如何工作的,所以我可能错了。 我想将我的二进制文件组织成一个数组图表。这可能吗? 如果我解释得不好,我道歉。如果是这样,请发表评论,以便我可以尝试更好地说明我想要做的事情。

谢谢!

1 个答案:

答案 0 :(得分:0)

这里有一些关于如何简化序列化的建议。

  1. 对于矩阵,请使用普通数组。
  2. 将数组封装在一个类中,并为其提供一个看起来像矩阵的接口。
  3. 轻松序列化/反序列化普通数组。
  4. 要点:

    class MyMatrix {
    private:
        std::vector<T> myData;
    public:
        MyMatrix(int nelems);
        T & operator()(int row, int col);
        T & operator()(int row, int col) const;
    

    };

    用法:

    MyMatrix<int> m(200);
    m(row, col) = 27;
    ...
    serialize(m);
    

    序列化只是序列化std :: vector(实际上是指向类型T的n个elems的指针)。如果需要,您还可以使用普通T *new,并且您的Matrix无法调整大小。