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

C++ (de) serializing a vector order of items

本文关键字:向量 顺序 序列化 de C++      更新时间:2023-10-16

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

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

简单地说,威尔

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

总是按该顺序排列项目?

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

谢谢!

PS:以上有例外吗?

这取决于您的序列化。通常,反序列化的序列化顺序必须始终相同,因为其他所有内容都会损坏从中反序列化内容的流。

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

一个可能的瀑布可能是地图(您在此处未提及),因为地图的内部结构不是添加数据的顺序(大多数情况下)