Библиотека собеса по C++ | вопросы с собеседований
前往频道在 Telegram
Вопросы с собеседований по C++ и ответы на них. Как запустить своего ии-агента: https://clc.to/tvpmDQ По рекламе: @tproger_sales_bot Учиться у нас: https://proglib.io/w/9ccf302b Для обратной связи: @proglibrary_feeedback_bot
显示更多4 601
订阅者
-324 小时
-27 天
-930 天
正在加载数据
相似频道
标签云
进出提及
---
---
---
---
---
---
吸引订阅者
十月 '2610月 '26
十月 '26
+36
在3个频道中
九月 '26
+55
在0个频道中
Get PRO
八月 '26
+21
在1个频道中
Get PRO
七月 '26
+27
在3个频道中
Get PRO
六月 '26
+46
在3个频道中
Get PRO
五月 '26
+48
在2个频道中
Get PRO
四月 '26
+15 071
在2个频道中
Get PRO
三月 '26
+44
在2个频道中
Get PRO
二月 '26
+82
在4个频道中
Get PRO
一月 '26
+71
在2个频道中
Get PRO
十二月 '25
+52
在1个频道中
Get PRO
十一月 '25
+66
在2个频道中
Get PRO
十月 '25
+75
在2个频道中
Get PRO
九月 '25
+51
在2个频道中
Get PRO
八月 '25
+57
在4个频道中
Get PRO
七月 '25
+63
在0个频道中
Get PRO
六月 '25
+66
在1个频道中
Get PRO
五月 '25
+63
在1个频道中
Get PRO
四月 '25
+72
在1个频道中
Get PRO
三月 '25
+142
在52个频道中
Get PRO
二月 '25
+130
在31个频道中
Get PRO
一月 '25
+129
在35个频道中
Get PRO
十二月 '24
+132
在35个频道中
Get PRO
十一月 '24
+304
在37个频道中
Get PRO
十月 '24
+225
在35个频道中
Get PRO
九月 '24
+225
在35个频道中
Get PRO
八月 '24
+179
在36个频道中
Get PRO
七月 '24
+174
在36个频道中
Get PRO
六月 '24
+167
在29个频道中
Get PRO
五月 '24
+234
在35个频道中
Get PRO
四月 '24
+254
在35个频道中
Get PRO
三月 '24
+248
在29个频道中
Get PRO
二月 '24
+229
在29个频道中
Get PRO
一月 '24
+242
在24个频道中
Get PRO
十二月 '23
+11 478
在45个频道中
Get PRO
十一月 '23
+630
在9个频道中
Get PRO
十月 '23
+1 413
在22个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 26 十月 | +1 | |||
| 25 十月 | 0 | |||
| 24 十月 | +3 | |||
| 23 十月 | +1 | |||
| 22 十月 | +2 | |||
| 21 十月 | 0 | |||
| 20 十月 | +1 | |||
| 19 十月 | +4 | |||
| 18 十月 | 0 | |||
| 17 十月 | +1 | |||
| 16 十月 | 0 | |||
| 15 十月 | +2 | |||
| 14 十月 | +2 | |||
| 13 十月 | 0 | |||
| 12 十月 | +9 | |||
| 11 十月 | +1 | |||
| 10 十月 | 0 | |||
| 09 十月 | +3 | |||
| 08 十月 | +3 | |||
| 07 十月 | 0 | |||
| 06 十月 | +1 | |||
| 05 十月 | +1 | |||
| 04 十月 | +1 | |||
| 03 十月 | 0 | |||
| 02 十月 | 0 | |||
| 01 十月 | 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++
| 2 | 📌 Один курс — хорошее вложение в себя. Два по той же цене — ещё лучше.
В Proglib Academy действует акция: покупаешь один курс, а второй получаешь в подарок.
Например, можно совместить два направления по работе с ИИ:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.
💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
📍 Разница в цене — почти 50 тысяч рублей. Можно освоить больше, не выходя за рамки запланированного бюджета.
А если тебе интереснее Python, алгоритмы, backend или DevOps — выбирай другую пару курсов из каталога.
Акция действует до 31 октября включительно ⏳
⏮️ Пора прокачать свой стек | 311 |
| 3 | Какие требования должен выполнять пользовательский ключ std::unordered_map?
Ответ: Для ключа нужны согласованные хеш-функция и проверка эквивалентности.
По умолчанию контейнер использует std::hash<Key> и std::equal_to<Key>. Для собственного типа можно передать свои функциональные объекты в параметрах шаблона: специализировать std::hash необязательно.
Главное правило: если два ключа считаются эквивалентными, их хеши обязаны совпадать. Обратное неверно — одинаковые хеши у разных ключей допустимы, это коллизия.
Например, если строки сравниваются без учёта регистра, хеширование тоже должно игнорировать регистр. Иначе равные для контейнера ключи могут попасть в разные корзины.
Проверка эквивалентности должна быть согласованной, а результаты сравнения и хеширования ключей — оставаться стабильными, пока ключи находятся в контейнере.
Подробнее в проекте стандарта C++
🐸 Библиотека собеса по C++ | 348 |
| 4 | Когда push_back делает итераторы std::vector недействительными?
Ответ: Если при добавлении произошла реаллокация, недействительными становятся все прежние итераторы, указатели и ссылки на элементы, а также старый end().
Реаллокация требуется, когда новый размер превышает прежнюю ёмкость capacity(). Вектор получает другое хранилище, поэтому сохранённые адреса элементов больше использовать нельзя.
Если свободной ёмкости хватило, итераторы, указатели и ссылки на уже существовавшие элементы сохраняются. Однако старый end() всё равно становится недействительным: конец последовательности изменился.
Поэтому ответ «push_back всегда ломает итераторы» неверен. Но и проверять только указатель на первый элемент недостаточно: сохранённый end() требует отдельного внимания.
Подробнее в проекте стандарта C++
🐸 Библиотека собеса по C++ | 406 |
| 5 | Что именно потокобезопасно в std::shared_ptr?
Ответ: Безопасность совместного владения не означает безопасность любых действий с указателем и объектом.
Разные экземпляры shared_ptr, которые владеют одним объектом, можно копировать, сбрасывать и уничтожать в разных потоках: управление общим счётчиком владельцев согласовано библиотекой.
Но если несколько потоков обращаются к одному и тому же экземпляру shared_ptr и хотя бы один меняет его, нужна синхронизация. Например, нельзя без неё выполнять reset() в одном потоке и копировать этот же указатель в другом. С C++20 для такого сценария есть std::atomic<std::shared_ptr<T>>.
Отдельный вопрос — сам объект T. Умный указатель не защищает его поля от гонки данных: для совместного изменения объекта нужны собственные меры синхронизации.
Подробнее в проекте стандарта C++
🐸 Библиотека собеса по C++ | 441 |
| 6 | 😎 Выбираешь один курс, второй получаешь бесплатно. Баг? Нет, акция!
До 31 октября в Proglib Academy можно выбрать два курса и заплатить только за один.
Например, можно совместить:
💥 ИИ для разработчиков — применение нейросетей в повседневной разработке: работа с кодом, тестирование и ревью.
💥 Разработка ИИ-агентов — архитектура агентов и создание собственных AI-решений.
Вместе курсы стоят 108 000 ₽, но по акции оба обойдутся в 59 000 ₽. Экономия — 49 000 ₽ 🔥
Интересуют Python и ИИ или алгоритмы и архитектура? Можно выбрать любые два курса из каталога.
Акция действует до 31 октября включительно ⏳
⏬ Собрать свой учебный билд | 462 |
| 7 | Можно ли передать std::unique_ptr в функцию по значению?
Ответ: Да, но именованный std::unique_ptr нужно передать с перемещением: consume(std::move(ptr)).
Копирование у unique_ptr запрещено. При передаче по значению параметр функции получает владение объектом, а исходный указатель после успешного перемещения становится пустым. Сам объект при этом не обязан перемещаться в памяти: меняется его владелец.
Важно: один лишь вызов std::move(ptr) ничего не передаёт. Он позволяет выбрать перемещающий конструктор, который и выполняет передачу владения.
Если функция должна только поработать с объектом, обычно достаточно передать T& или const T&. Принимать unique_ptr по значению стоит, когда функция действительно забирает владение.
Подробнее в проекте стандарта C++
🐸 Библиотека собеса по C++ | 486 |
| 8 | 没有文字... | 656 |
| 9 | 没有文字... | 770 |
| 10 | 👀 Как вы смотрите видео?
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
🕰️ Опрос займёт около 3 минут.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
🔗 Поделиться опытом
🐸 Библиотека программиста | 427 |
| 11 | Приложение собрано, но при запуске .NET всё ещё компилирует код. Почему так происходит и что изменится, если подготовить машинный код заранее?
1 октября в 20:00 на открытом уроке курса «C# разработчик. Экспертный уровень» разберёте JIT и AOT в .NET и попробуете ReadyToRun и NativeAOT на практике.
Проследите путь от C# до IL и машинного кода. Узнаете, какую работу JIT выполняет во время исполнения приложения, и сравните обычную JIT-компиляцию с ReadyToRun и NativeAOT. Рассмотрите, что каждый подход меняет на этапе сборки и запуска.
На практике соберёте одно приложение в нескольких режимах. Сравните получившиеся файлы, размер приложения и время запуска, а затем разберёте результаты. Отдельно обсудите ограничения NativeAOT и сценарии, в которых его применение оправдано.
Урок проведёт Виктор Дзицкий.
Зарегистрироваться: https://otus.pw/Vi1t/?erid=2W5zFJ4cMgM
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. | 33 |
| 12 | 🩹 Задача: const-итерация по Range
#include <ranges>
#include <vector>
void process(const auto& view) {
for (auto x : view) { (void)x; }
}
int main() {
std::vector<int> data = { 1, 2, 3, 4, 5 };
auto pred = [](int x) {
return x % 2 == 0;
};
auto filtered = data | std::views::filter(pred);
process(filtered); // ❌ не компилируется
}
Объясни механизм: почему begin() const невозможен в принципе, а не по недосмотру комитета. | 792 |
| 13 | 😭 Как не потратить недельный лимит AI-кодинга за три дня?
Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода.
🔘 Поговорим о том:
— когда дорогая модель действительно нужна, а когда хватит дешёвой;
— сколько стоит один прогон и куда уходят токены;
— какие задачи можно отдавать субагентам;
— как настроить маршрутизацию моделей;
— что проверять в AI-коде перед merge.
✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после.
⬇️ 18 сентября, 19:00 МСК
⬇️ 1,5 часа · бесплатно
⬇️ Арсений Харланов и Олег Лайок
💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре.
🔗 Зарегистрироваться на вебинар | 694 |
| 14 | Какая сложность у std::map::insert? | 494 |
| 15 | 👅 Самое сложное — выбрать не курс, а направление
Сегодня хочется разобраться в AI-агентах. Через пару недель появляется задача, где нужны алгоритмы. Потом понимаешь, что неплохо бы освежить Python или математику для Data Science.
🔜 Именно поэтому подписка на обучение многим оказывается удобнее отдельных курсов. Можно спокойно переключаться между темами, когда меняются задачи, а не покупать новую программу каждый раз.
В подписку Proglib Academy входят все основные направления — AI, ML, Python, алгоритмы, математика для DS и другие курсы, а ещё закрытый видеохаб с вебинарами практиков.
Начать можно с пробного месяца. Если решите остаться, его стоимость зачтётся при оформлении подписки 😎
🔗 Узнать подробнее
🏃♀️ Proglib Academy | 327 |
| 16 | Покупать новый курс каждый раз, когда меняется рабочая задача, — довольно странная механика. Нашли альтернативу 👇 | 447 |
| 17 | Какая ошибка возникнет при попытке использовать std::ranges::to для конвертации range в контейнер, не поддерживающий требуемый интерфейс? | 467 |
| 18 | 🎯 У разработчика, DevOps-инженера и техлида разные причины задуматься о системной работе с AI-агентами
Но цель одна: перейти от случайных удачных запусков к управляемому процессу на реальном проекте — с понятными правилами, ревью, контролем расходов и безопасности ✔️
На курсе «ИИ для разработчиков» участники выстраивают такой процесс на практике: подключают инструменты, задают границы для агента и учатся понимать, где ему можно доверять работу, а где требуется проверка.
⚡️ Предзапись на осенний поток уже открыта
🏃♀️ Proglib Academy | 535 |
| 19 | Разработчик, DevOps-инженер или техлид — у каждого своя причина навести порядок в работе с AI-агентами.
Разбираем, чем отличаются их задачи 😊 | 513 |
| 20 | Где по умолчанию размещается кадр (frame) корутины? | 576 |
