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

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Владение vs представление: std::string и std::string_view

    C++ SELF
    18 уровень,0 лекция
    Разбираем, кто «владеет» символами строки в C++ и кто только «смотрит» на них: чем отличаются std::string и std::string_view, когда передача строки означает копирование, как устроен лёгкий view (указатель + длина), почему он не гарантирует время жизни данных, и какие ошибки чаще всего возникают из-за неверных ожиданий про владение и нуль-терминацию.
    Открыта
  • std::string_view как параметр

    C++ SELF
    18 уровень,1 лекция
    Разбираем, как выбирать тип параметра для «текстовых» функций в C++: почему передача std::string по значению может создавать скрытые копии, чем const std::string & отличается от std::string_view, почему std::string_view обычно передают по значению и какие операции удобны для чтения/парсинга без выделения памяти. В конце — практический разбор команды без копий и список типичных ошибок с string_view.
    Открыта
  • std::span как view на непрерывные данные

    C++ SELF
    18 уровень,2 лекция
    Разбираем std::span в C++23 как «view» на непрерывный блок памяти: чем он отличается от владеющих контейнеров, как работает const-контракт через std::span<const T>, откуда безопасно брать span (массивы, std::array, std::vector, строка через data()/ size()), какие повседневные операции нужны чаще всего и как удобно резать данные через subspan() без копирования. В конце — список типичных ошибок и как их избежать.
    Открыта
  • Правило времени жизни: view

    C++ SELF
    18 уровень,3 лекция
    Разбираем ключевую технику безопасности для view-типов в C++23: почему std::string_view и std::span не владеют памятью, где заканчивается время жизни объектов, какие ловушки создают локальные и временные объекты, и как проектировать интерфейсы функций (возвращать view или std::string/ std::vector) так, чтобы не получить висячие ссылки.
    Открыта
  • Проектирование сигнатур: string_view vs const std::string&

    C++ SELF
    18 уровень,4 лекция
    Разбираем, как сигнатура функции в C++ задаёт контракт на владение и изменение данных: когда выбирать std::string_view, а когда честнее принимать const std::string &, как использовать std::span<const T> для алгоритмов по диапазонам и какие типичные ошибки времени жизни подстерегают view-типы. В конце соберём мини-каркас командника и проведём маленький рефакторинг «по контракту».
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush