Does an iterator iterate through boost::unordered_set
or boost::unordered_map
in the same order as long as the set or the map is unchanged?
Asked
Active
Viewed 506 times
9

Tianyang Li
- 1,755
- 5
- 26
- 42
2 Answers
5
Some implementations of a hash map will reorder the items that hash to the same bin, putting the most recently accessed item at the front of a list, as an optimization. This would change the order. I'm not aware that boost::unordered_map
does this, but in the future you might end up substituting std::unordered_map
and it will all depend on your compiler's implementation.

Mark Ransom
- 299,747
- 42
- 398
- 622
1
It should be deterministic but as long as they are so-called unordered, you should not rely on this to iterate over your elements.

mister why
- 1,967
- 11
- 33