这可能看似微不足道,但我需要确定。
当序列化到文件std :: vector,然后将它从磁盘反序列化到内存时,向量中的项的索引保证是相同的(假设我在内存中没有有意识地改变它)?
简单地说,将
std::vector<int> v = {1, 2, 3, 4};
总是按顺序拥有物品吗?
我正在使用cereal进行(反)序列化,如果它具有任何重要性。
谢谢!
PS:以上是否有例外情况?
答案 0 :(得分:1)
这取决于您的序列化。通常,反序列化的顺序必须始终相同,因为其他一切都会破坏反序列化的流。
在你的情况下,你应该深入研究麦片文档或询问他们是否保证订单,但我希望这种行为是一致的。
可能的fallpit可能是地图(这里没有提到),因为地图的内部结构不是添加数据的顺序(大部分时间)