Инициализация статического элемента STD::Map<название типа int, int> В С++

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

У вас есть несколько очень хороших ответов здесь, но я для меня, похоже, случай “когда все знаешь-это молоток”…

Самый простой ответ почему не существует стандартного способа инициализации статического карту, там нет никаких оснований, чтобы когда-либо использовать статические карты…

Карта-это структура, предназначенная для быстрого поиска, неизвестного набора элементов. Если вы знаете элементы, прежде чем руки, просто использовать Си-массив. Введите значения в отсортированном порядке, или выполнить сортировку по ним, если Вы не можете этого сделать. Затем вы можете получить журнал(N) высокая производительность при использовании библиотеки STL::функции цикл записи, lower_bound/upper_bound. Когда я испытал это раньше они обычно выполняют по меньшей мере в 4 раза быстрее, чем карта.

Достоинств много раза… – более высокую производительность (*4, я измерила на многих типах процессоров, она всегда рядом 4) – проще отладка. Это просто легче увидеть, что происходит с линейной планировкой. – Тривиальных реализаций операций копирования, если в этом возникнет необходимость. – Он не выделяет память во время выполнения, так никогда не будет бросать исключение. – Это стандартный интерфейс, и поэтому очень прост в общий доступ, dll файлы, или языки и др.

Я мог бы продолжать, но если вы хотите большего, почему бы не посмотреть на Страуструп много блогов на эту тему.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*