草庐IT

Serialization

全部标签

C++ 序列化/反序列化 std::map<int,int> 从/到文件

我有一个std::map。我想知道我是否可以使用fwrite将其写入文件(也可以从文件中读取),或者我是否需要分别写入/读取每个值。我希望因为没什么特别的,这可能是可能的。 最佳答案 使用boost::serialization在一行中进行序列化。标题:boost/serialization/map.hpp代码示例#include#include#includ#include#include#includeintmain(){std::mapmap={{1,2},{2,1}};std::stringstreamss;boost::a

c++ - 序列化 OpenCV Mat_<Vec3f>

我正在从事一个机器人研究项目,我需要序列化​​3D点的2D矩阵:基本上每个像素都是一个3vector的float。这些像素保存在OpenCV矩阵中,需要通过进程间通信发送并保存到文件中,以便在多台计算机上处​​理。我想以endian/architecture-independent、space-efficient的方式尽快将它们序列化。cv::imencodehere将是完美的,除了它只适用于8位和16位元素,我们不想失去任何精度。这些文件不需要是人类可读的(尽管我们现在这样做是为了确保数据的可移植性,而且速度非常慢)。有没有这方面的最佳实践,或者优雅的方式来做到这一点?谢谢!

c++ - 序列化 OpenCV Mat_<Vec3f>

我正在从事一个机器人研究项目,我需要序列化​​3D点的2D矩阵:基本上每个像素都是一个3vector的float。这些像素保存在OpenCV矩阵中,需要通过进程间通信发送并保存到文件中,以便在多台计算机上处​​理。我想以endian/architecture-independent、space-efficient的方式尽快将它们序列化。cv::imencodehere将是完美的,除了它只适用于8位和16位元素,我们不想失去任何精度。这些文件不需要是人类可读的(尽管我们现在这样做是为了确保数据的可移植性,而且速度非常慢)。有没有这方面的最佳实践,或者优雅的方式来做到这一点?谢谢!

c++ - 如何将哈希表存储在文件中?

如何将具有单独链接的哈希表存储在磁盘上的文件中?在运行时生成存储在哈希表中的数据很昂贵,如果只从磁盘加载HT会更快...如果我能弄清楚该怎么做的话。编辑:查找是通过加载到内存中的HT完成的。我需要找到一种方法将哈希表(在内存中)以某种二进制格式存储到文件中。这样下次程序运行时,它就可以将HT从磁盘加载到RAM中。我正在使用C++。 最佳答案 您使用什么语言?常用的方法是进行某种二进制序列化。好的,我看到您已编辑添加语言。对于C++,有几个选项。我相信Boost序列化机制是相当不错的。此外,Boost的序列化库页面也描述了替代方案。这

c++ - 如何将哈希表存储在文件中?

如何将具有单独链接的哈希表存储在磁盘上的文件中?在运行时生成存储在哈希表中的数据很昂贵,如果只从磁盘加载HT会更快...如果我能弄清楚该怎么做的话。编辑:查找是通过加载到内存中的HT完成的。我需要找到一种方法将哈希表(在内存中)以某种二进制格式存储到文件中。这样下次程序运行时,它就可以将HT从磁盘加载到RAM中。我正在使用C++。 最佳答案 您使用什么语言?常用的方法是进行某种二进制序列化。好的,我看到您已编辑添加语言。对于C++,有几个选项。我相信Boost序列化机制是相当不错的。此外,Boost的序列化库页面也描述了替代方案。这

c++ - 如何使用 boost::serialization 序列化 std::vector?

classworkflow{private:friendclassboost::serialization::access;templatevoidserialize(Archive&ar,constunsignedintversion){ar&tasks;ar&ID;}vectortasks;intID;如何使用boost库序列化成员“任务”? 最佳答案 #include另请阅读tutorial. 关于c++-如何使用boost::serialization序列化std::vector

c++ - 如何使用 boost::serialization 序列化 std::vector?

classworkflow{private:friendclassboost::serialization::access;templatevoidserialize(Archive&ar,constunsignedintversion){ar&tasks;ar&ID;}vectortasks;intID;如何使用boost库序列化成员“任务”? 最佳答案 #include另请阅读tutorial. 关于c++-如何使用boost::serialization序列化std::vector

c++ - 在 Qt 中序列化我的自定义类

我使用Reading/writingQObjects是真的吗?我用它序列化一个类,但是反序列化它不是原始类!我能做什么?这是我的基类头文件:classBase:publicQObject{Q_OBJECTpublic:explicitBase(QObject*parent=0);};QDataStream&operator>(QDataStream&ds,Base&obj);而.cpp是:Base::Base(QObject*parent):QObject(parent){}QDataStream&operatorpropertyCount();++i){if(obj.metaObje

c++ - 在 Qt 中序列化我的自定义类

我使用Reading/writingQObjects是真的吗?我用它序列化一个类,但是反序列化它不是原始类!我能做什么?这是我的基类头文件:classBase:publicQObject{Q_OBJECTpublic:explicitBase(QObject*parent=0);};QDataStream&operator>(QDataStream&ds,Base&obj);而.cpp是:Base::Base(QObject*parent):QObject(parent){}QDataStream&operatorpropertyCount();++i){if(obj.metaObje

c++ - 关于编码的好例子、文章和书籍

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter寻求指导。关闭11年前.在为基于智能卡的加密狗开发软件保护库时,我意识到我需要在客户端应用程序和加密狗内的代码之间来回传输一些树状数据结构。嗯,当使用Web服务时,XML-RPC或JSON-RPC等技术是合理的考虑方式。但是,对于智能卡等嵌入式设备,情况并非如此。您需要使用一些二进制格式来优化内存使用并获得良好的性能。我想我需要的是实现一些二进制数据编码(marshal)算