我正在为一个班级做最后的项目,并且正在尝试使用谷物库对包含另一个类型的结构的向量的向量的结构进行序列化,但是这失败了。另一种(包含在向量中)结构类型具有有效(测试)的序列化功能。尝试序列化和反序列化容器结构时,出现错误“无法从输入流读取8个字节!读取0”
我已经成功地序列化了另一个包含结构向量的结构的结构,所以我知道应该可行。完成此操作后,可以在将输出保存到的文件中看到向量的struct中的所有字符串。但是,当我对该项目的容器结构进行序列化时,结果文件仅包含容器类中向量的第一个子向量中前两个内部结构的字符串。 (例如:包含struct.vec [0] [0] .string和struct.vec [0] [1] .string,但不包含其他14个。)
在包含容器struct的文件的顶部,我有
sessions
它具有以下成员变量(在此重命名)。 Region是具有有效序列化功能的结构。
#include <vector>
#include <string>
#include <random>
#include "region.h"
#include "constants.h"
#include "cereal/archives/binary.hpp"
#include "cereal/types/vector.hpp"
#include "cereal/types/string.hpp"
容器的(国家/地区)序列化功能:
vector<vector<Region>> game_map;
int x;
int y;
这是产生错误的代码:
template<class Archive>
void serialize(Archive &archive) {
archive(game_map, x, y);
}
我希望这个谷物生产的国家与我以后制造的谷物相等,但事实并非如此。它不包含任何变量,并且Catch2提供了错误“无法从输入流读取4个字节!读取0”