深度C++:遍历Unordered_map顺序问题

网站建设4年前发布
93 0 0

unordered_map 是关联容器,含有带唯一键的键-值对。搜索、插入和元素移除拥有平均常数时间复杂度。元素在内部不以任何特定顺序排序,而是组织进桶中。元素放进哪个桶完全依赖于其键的哈希。这允许对单独元素的快速访问,因为一旦计算哈希,则它准确指代元素所放进的桶。,原系统基于GCC4.8.5,使用C++11标准开发,内部基于unordered_map存储数据,新系统先在升级GCC为7.3.0,仍然使用C++11标准开发。新旧系统都基于一份持久化文件恢复数据,并按照同一顺序插入unordered_map,并遍历unordered_map组包对外发送,通过对比新旧系统对外发包内容一致性,来验证新旧系统的正确性。,但验证的现象是新旧系统发包顺序不一致。,20230307013738375ad4571c0670350e7651c9b2ded1783e3607608,20230307014037e861d398192aa43cc433992e5a66b3dc6cdad9516,根本原因:初始桶大小和每次插入时桶大小要保持一致,20230307013740812b4c864dd1a9baa099971b2e0f9c2e2664c4318,在线验证,https://godbolt.org/z/x3v36YaKc,

© 版权声明

相关文章