Итератор выполняет итерацию через boost::unordered_set
или boost::unordered_map
в том же порядке, если набор или карта не изменились?Выполняет ли итератор итерацию через boost :: unordered_set или boost :: unordered_map в том же порядке, пока набор не изменяется?
9
A
ответ
5
Некоторые реализации хэш-карты будут переупорядочивать элементы хэш в один и тот же бит, помещая последний доступный элемент в начале списка в качестве оптимизации. Это изменит порядок. Я не знаю, что boost::unordered_map
делает это, но в будущем вы можете заменить std::unordered_map
, и все это будет зависеть от реализации вашего компилятора.
1
Это должно быть детерминированным, но до тех пор, пока они так называются неупорядоченным, вы не должны полагаться на это, чтобы перебирать ваши элементы.