C ++(de)序列化项目的向量顺序

时间:2013-12-18 12:55:56

标签: c++ serialization vector

这可能看似微不足道,但我需要确定。

当序列化到文件std :: vector,然后将它从磁盘反序列化到内存时,向量中的项的索引保证是相同的(假设我在内存中没有有意识地改变它)?

简单地说,将

std::vector<int> v = {1, 2, 3, 4};

总是按顺序拥有物品吗?

我正在使用cereal进行(反)序列化,如果它具有任何重要性。

谢谢!

PS:以上是否有例外情况?

1 个答案:

答案 0 :(得分:1)

这取决于您的序列化。通常,反序列化的顺序必须始终相同,因为其他一切都会破坏反序列化的流。

在你的情况下,你应该深入研究麦片文档或询问他们是否保证订单,但我希望这种行为是一致的。

可能的fallpit可能是地图(这里没有提到),因为地图的内部结构不是添加数据的顺序(大部分时间)