ETS установить сохраняющий порядок? - PullRequest
3 голосов
/ 11 ноября 2011

Гарантирует ли ETS, что внутренний порядок кортежей совпадает с порядком, в котором они были вставлены? Например: я веду журнал, вставляя кортеж каждую секунду, метка времени - ключ. В этом примере set гарантирует, что кортежи отсортированы по ключу?

Я понимаю, что order_set будет делать то, что я хочу, но у него есть накладные расходы. Так что если set сохраняет порядок вставки, то использование set будет гораздо более эффективным в моем примере. Так что же? : -)

Спасибо заранее, Nikola

Ответы [ 2 ]

5 голосов
/ 11 ноября 2011

Нет, для типа таблицы set нет никаких гарантий того, в каком порядке отсортированы ключи.Они хэшируются, а затем значение хеш-функции используется для помещения элементов в таблицу.Размер таблицы иногда изменяется, поэтому порядок меняется.Так нет, тебе просто повезло.

2 голосов
/ 11 ноября 2011

Даже если ETS set выполнит ваше предположение сегодня, нет никакой гарантии, что он продолжит делать это в будущем - особенно когда есть ordered_set, который имеет точноесобственность, которая вам нужна.

...