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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • std::ranges‑алгоритмы

    C++ SELF
    62 уровень,0 лекция
    Разбираем, зачем в C++20/23 появились ranges‑алгоритмы и чем они удобнее классических вызовов через begin()/ end(): контейнер целиком в std::ranges::sort, поиск через std::ranges::find_if, составные результаты у std::ranges::copy и проекции вроде & Task::priority. На мини‑модели TodoLite тренируем чтение кода «как фразы» и фиксируем типичные ошибки (проверка на end(), заголовки, ожидания про «копирование контейнера»).
    Открыта
  • std::views::filter / transform / take

    C++ SELF
    62 уровень,1 лекция
    Разбираем базовые адаптеры представлений в C++23 ranges: как устроен view, зачем нужен пайплайн-оператор |, как применять std::views::filter, std::views::transform и std::views::take, почему вычисления ленивые и происходят только при обходе, и какие типичные ошибки подстерегают при работе с представлениями (копирование элементов, ожидание “нового вектора”, путаница std::views vs std::ranges).
    Открыта
  • Dangling views/ranges: что это и почему опасно

    C++ SELF
    62 уровень,2 лекция
    Разбираем, что означает «dangling» в контексте C++ ranges/ views: почему view легко превращается в «висячее окно» в память, какие сценарии приводят к UB (временный контейнер, возврат view из функции, модификации std::vector, захват по ссылке в лямбде), и как читать подсказки стандарта вроде std::ranges::dangling. В конце — практический пример «TaskBoard» и типичные ошибки.
    Открыта
  • Материализация результата: std::ranges::to и std::ranges::copy

    C++ SELF
    62 уровень,3 лекция
    Разбираем, что такое «материализация» в C++23 ranges: зачем иногда превращать ленивый view в владеющий контейнер ( std::vector, std::string), где ставить «точку стабилизации», и как это делать двумя практичными способами — через std::ranges::to (красиво, но зависит от поддержки в stdlib) и через связку std::ranges::copy + std::back_inserter (переносимо и надёжно). Плюс: пример на TaskPlanner, хелпер to_vector и разбор типичных ошибок.
    Открыта
  • Производительность и читаемость

    C++ SELF
    62 уровень,4 лекция
    Разбираем практический компромисс в C++23 ranges: почему views «почти бесплатны» за счёт ленивости, когда ленивость начинает «кусать» из‑за повторных проходов, чем материализация в std::vector платит (копии/аллокации), и как писать пайплайны так, чтобы они читались как рецепт. На примере мини‑проекта TaskBook строим витрину «топ‑ 3 срочных незавершённых задач» через std::views::filter + std::views::take и показываем, когда стоит перейти к std::ranges::copy в отдельный контейнер.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush