Обновить

Комментарии 2

Интересный эксперимент! Но, кажется, практическая ценность близка к нулю: стандарт не гарантирует порядок в unordered_map, и полагаться на порядок не стоит

Вы продемонстрировали пример хорошего инженерного мышления: эмпирически исследовали "черный ящик" и сделали выводы о реализации его в clang

Но в чужих статьях подробно разобрано, как именно устроены реализации в Clang, GCC и MSVC, откуда можно узнать исчерпывающую информацию для вопроса в начале этой статьи

Например, в MSVC бакеты хранятся иначе, в глобальном списке, и «обратный порядок» при rehash там не воспроизводится -- так что наблюдения из статьи применимы только к libc++

Так и в чём смысл? В чем образовательная ценность? Показать, что можно угадать устройство библиотеки по косвенным признакам, вместо того чтобы прочитать её код?

Текст носит развлекательный характер

Не думаю что у кого то возникнет мысль "о, теперь буду два раза перекладывать" тем более что конкретно для данной реализации это просто так не сделать - ибо нет метода легко вычислить размер, на который надо сделать reserve

Действительно, в выводы можно добавить что ни на какую связь порядков в двух таблицах в практическом смысле рассчитывать нельзя

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации