JavaRush
Акция
Университет
Java FullStack
Python FullStack
AI Native Developer
new
Web FullStack
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Хеш‑таблица vs дерево

    C++ SELF
    25 уровень,0 лекция
    Разбираем ассоциативные контейнеры C++: чем отличается упорядоченный std::map (дерево и O(log N)) от std::unordered_map (хеш‑таблица и среднее O(1)), когда важен порядок ключей, как безопасно читать через find/ contains, почему operator [] может «незаметно» создавать элементы, и какие типичные ошибки встречаются на практике (на примере индекса id → Task для мини‑проекта TaskBook).
    Открыта
  • set / unordered_set

    C++ SELF
    25 уровень,1 лекция
    Разбираем контейнеры множеств в C++: чем отличается std::set<T> (упорядочивает элементы) от std::unordered_set<T> (хеш-таблица), как пользоваться базовыми операциями insert, contains/ find, erase, как быстро убирать дубликаты из std::vector, и почему элементы set нельзя менять «на месте». В конце — практический мини-кейс (теги в TaskBox) и типичные ошибки.
    Открыта
  • Контракты ключей: operator< для map, hash + == для unordered_map

    C++ SELF
    25 уровень,2 лекция
    Разбираем «контракт ключа» для ассоциативных контейнеров C++: почему std::map/ std::set живут в мире строгого порядка (компаратор и operator<), а std::unordered_map/ std::unordered_set — в мире хеша и равенства ( std::hash + ==). Увидим, как контейнер решает «одинаковые ключи или нет», почему компаратор нельзя писать через <=, и что ломается, если изменить равенство и забыть согласовать хеш.
    Открыта
  • Пользовательский ключ: struct Key, operator== и std::hash<Key>

    C++ SELF
    25 уровень,3 лекция
    Разбираем, как сделать составной ключ для std::unordered_map: проектируем struct-ключ по нужным полям, пишем корректный operator==, соблюдаем контракт std::hash (если a == b, то и хеши обязаны совпасть), смешиваем хеши полей и подключаем хешер либо третьим шаблонным параметром контейнера, либо через специализацию std::hash<Key>.
    Открыта
  • Индексация данных: id → объект, тег → список

    C++ SELF
    25 уровень,4 лекция
    Разбираем, как ускорять типичные запросы к данным с помощью индексов: первичный индекс id → объект на базе std::unordered_map, и вторичный индекс tag → набор id на базе std::unordered_map + std::unordered_set. Показываем дисциплину «один источник правды», согласованные операции добавления/удаления/обновления, запросы по id и тегу, а также простую валидацию инвариантов, которая помогает ловить рассинхронизацию.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush