c++ - 将对象 vector 保存到文件 C++

标签 c++ file object vector save

我有一个对象,它代表我正在编程的游戏中的各个地面 block 。我还有一个保存对象实例的 vector 。将此列表保存到文件的最佳方法是什么?我可以循环遍历 vector 并保存每个 x,y 坐标以及对象使用的图像,但这似乎有点粗糙。我可以使用 boost 头文件,但目前当我尝试构建和使用 boost 的其余部分时遇到一些主要问题。有什么建议吗?

最佳答案

C++ 没有内置的序列化功能,所以无论你做什么都会有点“粗糙”,通常,如果你保存的对象需要很少或现在的构造(例如 int、float 等),那么你可以简单地编写一次性输出整个 vector ,如下所示:

std::vector <int> data(16, 0);
std::ofstream output("binary.data");
output.write(static_cast<char *>(&(data[0])), data.size()*sizeof(int));

但是,如果您的数据类型需要多步构造函数(例如 std::string),那么您必须循环每个元素,并使用足够的信息单独写出它们从磁盘读取时重建对象。

关于c++ - 将对象 vector 保存到文件 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274751/

相关文章:

javascript - 比较两个对象并获取共同值 JavaScript

c++ - 用于泄漏检测的 Appverifier 和 Visual Studio

c++ - 带有 boost ublas 的常数矩阵

c++ - 如何编译 Hinnant 的 short_alloc 分配器

javascript - 读取文本文件的一部分,并将值以 ","分隔插入到数组中

python - 统计word文件中出现的后缀数

javascript - 如何将循环的每次迭代包装在单独的 div 容器中

c++ - C++ Qt-读取文本文件的特定部分

javascript - html 或 java 脚本代码在硬盘中创建文本文件

Javascript:通过组合先前定义的键来设置对象上的键