Мне недавно нужно было ответить на этот вопрос для себя, и я просто написал небольшую тестовую программу, используя std :: map, которую я скомпилировал в MSVC 2012 в 64-битном режиме.
Карта с 150 миллионами узлов, пропитанными ~ 15 ГБ, что подразумевает 8-байтовый L, 8-байтовый R, 8-байтовый ключ int и 8-байтовый набор данных, всего 32 байта, впитавший около 2/3 память карты для внутренних узлов, оставляя 1/3 для листьев.
Лично я обнаружил, что это удивительно плохая эффективность памяти, но это то, что есть.
Надеюсь, это пригодится для практического использования.
PS: издержки std :: map - это размер AFAICT одного узла.