std::unordered_set的迭代顺序



使用std::unordered_set(或std::unrdered_map(在两台不同的机器上运行并使用相同的g++版本编译的相同代码是否具有相同的迭代顺序?

相关但略有不同的问题

  • 两个相同的无序映射的顺序相同吗

我在这里添加了一些评论,以更好地解释我试图理解的内容。

在这种情况下,根据迭代顺序,修复编译器版本以获得相同的行为是否足够?还是取决于其他因素?

感谢您指出,该标准没有强加任何行为。但是,必须明确规定执行情况。最后,它是计算机代码,因此它是确定性的和定义明确的。我想到的唯一替代方案是,一些疯狂的实现可能会使用一些真正的随机化来源,但我认为这是非常不可能的。

C++标准中没有任何内容表明它应该这样做。

g++似乎没有任何文档说明标准对这个特定主题的要求。

那么,我会笼统地说不。

最新更新