gpt4 book ai didi

c++ - Qt 的 QHash 的迭代顺序是否可以在程序的多次相同运行中重复?

转载 作者:行者123 更新时间:2023-11-30 03:10:21 24 4
gpt4 key购买 nike

假设一个程序以相同的方式运行多次。在每次运行中,相同的一组对象以相同的插入顺序插入到 QHash 中;然后迭代 QHash 中的对象。问题是在程序的每次运行中对象是否会以相同的顺序迭代?

最佳答案

可能,但你不能绝对依赖它。

QHashQSet 要求用作键的任何类型提供 qHash 函数的重载,该函数将对象转换为哈希码.在散列内部,项目按散列码排序。通常,这种到散列码的转换是稳定和确定的,因此对象将接收相同的散列码,因此即使在运行之间也会以相同的顺序排列。

但是,没有什么可以阻止某人创建一个类型,其中输出 qHash 取决于某个值(例如,对象中保存的指针地址),该值对于特定运行来说是常量,但不是运行之间一致。

关于c++ - Qt 的 QHash 的迭代顺序是否可以在程序的多次相同运行中重复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com