не могу понять чем лучше пользоваться
А c какой точки зрения вы их сравнивать пытаетесь?
Это разные вещи для разных вещей
Я просто пытаюсь понять. Говорится что O(log) используется в pair, но в unorder_map используется O(1). Так же говорят что если значений всего 2 то предпочтительнее pair, но почему нельзя и unorder_map использовать? Вообще тогда не могу понять зачем нужен pair
вот прям в pair, а не в векторе pair'ов хотя бы?
> O(log) используется в pair где именно говорится, если не секрет?
Возможно, вы пытаетесь сравнить std::map и std::unordered_map? Сложность добавления в map, действительно, логарифмическая std::pair - не контейнер в классическом понимании, он просто хранит два элемента за раз, не предоставляя ничего, кроме обычного доступа к ним
Просто unorder_map же тоже хранит два элемента. Тогда в чем разница?
она хранит не два элемента, а N пар ключ-значение, предоставляя доступ к ним по ключам
Вам надо книжку для чайников почитать, главу про контейнеры
разница в том, что pair хранит МАКСИМУМ 2 элемента, а unordered_map хранит в текущий момент два элемента, но может быть расширена до нужного количества
даже не про контейнеры, а введение в структуры данных вообще в принципе
Это не плохо?
Что именно плохо-то? Любую задачу, как правило, можно решить более, чем одним способом. Платформы с автоматизированной проверкой решения обычно показывают и количество использованной памяти и время выполнения решения. Это позволяет сравнить разные варианты, без написания бенчмарка самому
всегда есть как минимум два способа: один быстрый, а второй правильный 🤡
Я имел ввиду «смотреть готовые решения к задаче» с точки зрения изучения программирования это не плохо?
плохо, что вы не прочли ничего про язык
Учиться читая чужой код - нормально. Но желательно это делать после того, как получили, пускай и корявое, но свое решение. Тогда от этого будет больше толку. Ну и, конечно, желательно иметь определенную базу
std::unordered_map содержит в себе какое-то количество std::pair
ну так посмотри на cppreference что такое std::vector, std::pair и std::map (все мапы)
и Кормена тоже, но тут явно человек совсем начинающий, надо сначала какое-то введение на пальцах чтобы пару и хешмапу мог отличить
тогда поймёшь, чем они отличаются и зачем их используют в тех решениях
уйды ты с cppreference, человек ещё буквы не все выучил, а ты уже справочник по сопромату суёшь
Буду сейчас читать
Ну а вдруг кто-то сможет выучиться по нему
pair - это пара и ничего более.
Обсуждают сегодня