Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или подписчиков Проверить канал на накрутку
Прикрепить Телеграм-аккаунт Прикрепить Телеграм-аккаунт

Телеграм канал «Библиотека собеса по C++ | вопросы с собеседований»

Библиотека собеса по C++ | вопросы с собеседований
1.2K
427
819
124
1.8K
Вопросы с собеседований по C++ и ответы на них.

Как запустить своего ии-агента: https://clc.to/tvpmDQ

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9ccf302b

Для обратной связи: @proglibrary_feeedback_bot
Подписчики
Всего
4 601
Сегодня
-1
Просмотров на пост
Всего
378
ER
Общий
8.21%
Суточный
6.72%
Динамика публикаций
Telemetr - сервис глубокой аналитики
телеграм-каналов
Получите подробную информацию о каждом канале
Отберите самые эффективные каналы для
рекламных размещений, по приросту подписчиков,
ER, количеству просмотров на пост и другим метрикам
Анализируйте рекламные посты
и креативы
Узнайте какие посты лучше сработали,
а какие хуже, даже если их давно удалили
Оценивайте эффективность тематики и контента
Узнайте, какую тематику лучше не рекламировать
на канале, а какая зайдет на ура
Попробовать бесплатно
Показано 7 из 1 197 постов
Смотреть все посты
Пост от 26.10.2026 15:02
1
0
0
Чем make_shared отличается от shared_ptr, созданного через new?

Ответ: При std::make_shared<T>(args...) объект и служебный блок управления обычно размещаются в одном выделенном блоке памяти. При std::shared_ptr<T>(new T(args...)) память под объект выделяется отдельно от блока управления.

Объединённое выделение уменьшает накладные расходы. Но формулировка «make_shared всегда делает ровно одно выделение» слишком категорична: стандарт рекомендует реализации обходиться не более чем одним.

Есть и нюанс с weak_ptr. Объект уничтожается, когда исчезает последний сильный владелец. Однако при объединённом размещении память общего блока может оставаться занятой, пока существуют слабые указатели. Это не означает, что сам объект продолжает жить.

Ещё одно отличие: конструктору shared_ptr можно передать собственную функцию удаления. У make_shared такого параметра нет.

Подробнее в проекте стандарта C++

🐸 Библиотека собеса по C++
Пост от 25.10.2026 20:31
77
0
0
📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.

В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.

Например, можно совместить два направления по работе с ИИ:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.

📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета.

А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.

Акция действует до 31 октября включительно ⏳

⏮️ Пора прокачать свой стек
Пост от 25.10.2026 15:04
82
0
0
Какие требования должен выполнять пользовательский ключ std::unordered_map?

Ответ: Для ключа нужны согласованные хеш-функция и проверка эквивалентности.

По умолчанию контейнер использует std::hash<Key> и std::equal_to<Key>. Для собственного типа можно передать свои функциональные объекты в параметрах шаблона: специализировать std::hash необязательно.

Главное правило: если два ключа считаются эквивалентными, их хеши обязаны совпадать. Обратное неверно — одинаковые хеши у разных ключей допустимы, это коллизия.

Например, если строки сравниваются без учёта регистра, хеширование тоже должно игнорировать регистр. Иначе равные для контейнера ключи могут попасть в разные корзины.

Проверка эквивалентности должна быть согласованной, а результаты сравнения и хеширования ключей — оставаться стабильными, пока ключи находятся в контейнере.

Подробнее в проекте стандарта C++

🐸 Библиотека собеса по C++
Пост от 24.10.2026 15:01
180
0
1
Когда push_back делает итераторы std::vector недействительными?

Ответ: Если при добавлении произошла реаллокация, недействительными становятся все прежние итераторы, указатели и ссылки на элементы, а также старый end().

Реаллокация требуется, когда новый размер превышает прежнюю ёмкость capacity(). Вектор получает другое хранилище, поэтому сохранённые адреса элементов больше использовать нельзя.

Если свободной ёмкости хватило, итераторы, указатели и ссылки на уже существовавшие элементы сохраняются. Однако старый end() всё равно становится недействительным: конец последовательности изменился.

Поэтому ответ «push_back всегда ломает итераторы» неверен. Но и проверять только указатель на первый элемент недостаточно: сохранённый end() требует отдельного внимания.

Подробнее в проекте стандарта C++

🐸 Библиотека собеса по C++
Пост от 23.10.2026 15:05
101
0
1
Что именно потокобезопасно в std::shared_ptr?

Ответ: Безопасность совместного владения не означает безопасность любых действий с указателем и объектом.

Разные экземпляры shared_ptr, которые владеют одним объектом, можно копировать, сбрасывать и уничтожать в разных потоках: управление общим счётчиком владельцев согласовано библиотекой.

Но если несколько потоков обращаются к одному и тому же экземпляру shared_ptr и хотя бы один меняет его, нужна синхронизация. Например, нельзя без неё выполнять reset() в одном потоке и копировать этот же указатель в другом. С C++20 для такого сценария есть std::atomic<std::shared_ptr<T>>.

Отдельный вопрос — сам объект T. Умный указатель не защищает его поля от гонки данных: для совместного изменения объекта нужны собственные меры синхронизации.

Подробнее в проекте стандарта C++

🐸 Библиотека собеса по C++
Пост от 22.10.2026 20:29
40
0
0
😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!

До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.

Например, можно совместить:

💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.

💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.


Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥

Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога.

Акция действует до 31 октября включительно ⏳

⏬ Собрать свой учебный билд
Пост от 22.10.2026 15:05
25
0
0
Можно ли передать std::unique_ptr в функцию по значению?

Ответ: Да, но именованный std::unique_ptr нужно передать с перемещением: consume(std::move(ptr)).

Копирование у unique_ptr запрещено. При передаче по значению параметр функции получает владение объектом, а исходный указатель после успешного перемещения становится пустым. Сам объект при этом не обязан перемещаться в памяти: меняется его владелец.

Важно: один лишь вызов std::move(ptr) ничего не передаёт. Он позволяет выбрать перемещающий конструктор, который и выполняет передачу владения.

Если функция должна только поработать с объектом, обычно достаточно передать T& или const T&. Принимать unique_ptr по значению стоит, когда функция действительно забирает владение.

Подробнее в проекте стандарта C++

🐸 Библиотека собеса по C++
Смотреть все посты