Какая разница в размерах служебной и дополнительной памяти из-за этого между std::map и boost::unordered_map?
Прежде всего, я задаю этот вопрос, потому что я не уверен, как рассчитать разницу в размерах между ними, поскольку я храню указатели на объекты классов, хранящиеся на основе std:: string, в качестве ключей. Я знаю, что дополнительное пространство связано, прежде всего, с хранением в boost::unordered_map (слышал, что он поддерживает длинный массив, я не уверен, почему, может кто-нибудь объяснить, почему это поддерживается). Я думал, что std:: map не будет нуждаться в домашнем хозяйстве (пожалуйста, поправьте меня, если я ошибаюсь).
Я думал, что std:: map хранится в виде двоичного дерева или красно-черного дерева, а boost::unordered_map преобразует ваши ключи в десятичные числа и хэширует на основе этого.
Пожалуйста, очистите мое понимание на обоих.
TIA -R