如何在单个文件中序列化 QHash 和 QMap?
How to serialize a QHash and a QMap in a single file?
我有一个 QHash 和一个单独的 QMap。我可以单独连载它们。但我想将它们序列化在一个文件中:
QMap<int,QString> myMap;
QHash<QString,MyCalss> myHash;
// .. fill: both have 4 (key,value) pairs.
// write here
QDataStream out (&myFile);
out<<myMap;
out<<myHash;
// read written
QDataStream in (&myFile);
in>>myMap>>myHash;
最后一次读取(这里是myHash)总是空的。当我切换顺序时
QDataStream out (&myFile);
out<<myHash;
out<<myMap;
// read written
QDataStream in (&myFile);
in>>myHash>>myMap;
所以这里 myMap 是空的。
如何同时序列化两者?
有什么问题
QDataStream out (&myFile);
out<<myMap;
out<<myHash;
// read written
QDataStream in (&myFile);
in>>myMap;
in>>myHash;
将 'in' 序列化到 Hash 中并将 Hash 序列化到 Map 中不会产生预期的结果。
我有一个 QHash 和一个单独的 QMap。我可以单独连载它们。但我想将它们序列化在一个文件中:
QMap<int,QString> myMap;
QHash<QString,MyCalss> myHash;
// .. fill: both have 4 (key,value) pairs.
// write here
QDataStream out (&myFile);
out<<myMap;
out<<myHash;
// read written
QDataStream in (&myFile);
in>>myMap>>myHash;
最后一次读取(这里是myHash)总是空的。当我切换顺序时
QDataStream out (&myFile);
out<<myHash;
out<<myMap;
// read written
QDataStream in (&myFile);
in>>myHash>>myMap;
所以这里 myMap 是空的。
如何同时序列化两者?
有什么问题
QDataStream out (&myFile);
out<<myMap;
out<<myHash;
// read written
QDataStream in (&myFile);
in>>myMap;
in>>myHash;
将 'in' 序列化到 Hash 中并将 Hash 序列化到 Map 中不会产生预期的结果。