uint32_t как тип данных для ключа карты - PullRequest
1 голос
/ 02 февраля 2012

Мой вопрос: если я использую uint32_t в качестве типа данных для ключа в std :: map , создаст ли он огромную структуру с индексами для каждой из 2 ^ 32 комбинаций ? По сути, я хочу создать пару 32-битных чисел, каждое из которых должно быть уникальным. У меня есть числа, но мне интересно, какую структуру / технику использовать, чтобы сохранить их в памяти.

Ответы [ 2 ]

3 голосов
/ 02 февраля 2012

Нет, он будет создавать только те записи, которые вы вставляете.Если у вас есть только небольшое число (вы упоминаете пару), может быть быстрее поместить их в вектор и выполнить линейный поиск.Если число больше небольшого, карта будет быстрее, конечно.

2 голосов
/ 02 февраля 2012

Нет, карта выделяет место только для фактических используемых ключей, а не все пространство ключей. Это было бы плохо в противном случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...