使用std::unordered_set(或std::unordered_map)的相同代码是否可以在两台不同的计算机上运行并使用完全相同的g++版本进行编译,从而给出相同的迭代顺序?
相关但略有不同的问题
我在这里添加一些评论,以更好地解释我要理解的内容。
在这种情况下,就迭代顺序而言,为了达到相同的行为而修复编译器版本是否足够?还是取决于其他一些东西?
感谢您指出该标准不施加任何行为。但是,必须明确定义实现。最后,它是计算机代码,因此是确定性的和定义明确的。我想到的唯一替代方法是,某些疯狂的实现可能会使用某些真正的随机来源,但我认为这种可能性很小。
最佳答案
C++标准中没有什么可以建议的。
在该特定主题上,g++似乎没有任何标准规定的文档。
完全笼统地说,我不会说。
关于c++ - std::unordered_set的迭代顺序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63227856/