Почему карта представляет собой двунаправленную структуру данных
Как вы думаете, почему карта является"структурой двунаправленных данных"?
Разве C ++ Map не должна быть структурой данных с произвольным доступом
Почему вы думаете, что не ?
Почему вы предполагаете, что "двунаправленный" и " произвольный доступ "являются взаимоисключающими?
Серьезно, какой бы источник ни дал вам эти условия, либо он неверен, либо вы его неправильно поняли. Если вы не скажете, откуда пришли ваши неверные предположения, мы не сможем вам в этом помочь.
Мы можем легко получить доступ к любому элементу, если узнаем его по ключу, так же как массиву, который такое структура данных с произвольным доступом?
Да, std::map
моделей AssociativeContainer , как вы ожидаете.
Тогда карта не должна быть структурой данных произвольного доступа
Вы пытаетесь спросить, почему карта не называется"структурой данных произвольного доступа"? Это потому, что мы называем это AssociativeContainer , но значение схоже.
Вы пытаетесь спросить, почему карта не является произвольным доступом в реальности, даже если она поддерживает поиск по ключу? Затем вы должны сказать нам, что вы подразумеваете под «произвольным доступом» , кроме возможности поиска по ключу.
Операция поиска - логарифмическая c, а не постоянная сложность, если это различие, которое вы хотите провести, потому что карта является отсортированным ассоциативным контейнером.
Тот факт, что итератор карты является двунаправленным, не влияет на то, как вы находите элементы по ключу. Это просто означает, что как только вы нашли (итератор указывает на) элемент, вы можете идти вперед или назад по его соседям в отсортированном порядке.