uk
Feedback
C/C++ | Вопросы собесов

C/C++ | Вопросы собесов

Відкрити в Telegram
4 255
Підписники
-124 години
-97 днів
-530 день

Триває завантаження даних...

Залучення підписників
червень '26
червень '26
+15
в 0 каналах
травень '26
+54
в 0 каналах
Get PRO
квітень '26
+43
в 0 каналах
Get PRO
березень '26
+58
в 0 каналах
Get PRO
лютий '26
+69
в 0 каналах
Get PRO
січень '26
+84
в 0 каналах
Get PRO
грудень '25
+42
в 0 каналах
Get PRO
листопад '25
+100
в 0 каналах
Get PRO
жовтень '25
+54
в 0 каналах
Get PRO
вересень '25
+47
в 0 каналах
Get PRO
серпень '25
+77
в 0 каналах
Get PRO
липень '25
+72
в 0 каналах
Get PRO
червень '25
+83
в 0 каналах
Get PRO
травень '25
+83
в 0 каналах
Get PRO
квітень '25
+99
в 3 каналах
Get PRO
березень '25
+88
в 2 каналах
Get PRO
лютий '25
+187
в 3 каналах
Get PRO
січень '25
+129
в 53 каналах
Get PRO
грудень '24
+148
в 0 каналах
Get PRO
листопад '24
+123
в 0 каналах
Get PRO
жовтень '24
+448
в 43 каналах
Get PRO
вересень '24
+643
в 252 каналах
Get PRO
серпень '24
+127
в 0 каналах
Get PRO
липень '24
+191
в 54 каналах
Get PRO
червень '24
+1 110
в 244 каналах
Get PRO
травень '24
+1 483
в 192 каналах
Get PRO
квітень '24
+706
в 22 каналах
Дата
Залучення підписників
Згадування
Канали
10 червня+2
09 червня+2
08 червня+1
07 червня0
06 червня+2
05 червня+1
04 червня+2
03 червня+2
02 червня0
01 червня+3
Дописи каналу
Как усилить вовлечение коллег в корпоративное обучение 📚Сотрудники включают обучающие вебинары фоном, пролистывают курсы и п
Как усилить вовлечение коллег в корпоративное обучение 📚Сотрудники включают обучающие вебинары фоном, пролистывают курсы и проходят тесты с помощью ИИ? 18 июня на вебинаре эксперты МТС Линк и ProctorEdu разберут, как выстроить онлайн-обучение с контролем знаний, вовлечением слушателей и достоверной проверкой результатов. ✅Вы узнаете, как: • организовать эффективное асинхронное обучение с использованием ИИ; • заменить «говорящую голову» на более вовлекающие форматы; • контролировать использование ИИ, переключение на другие вкладки и смартфоны для прохождения тестирований; • использовать онлайн-оценки для управленческих и кадровых решений. 💻 Вебинар будет полезен: — директорам по персоналу; — менеджерам по обучению и развитию сотрудников; — руководителям корпоративных университетов. Регистрируйтесь по ссылке Зарегистрироваться #реклама 16+ my.mts-link.ru О рекламодателе

2
🤔 В unordered_set поиск — константа? Поиск в unordered_set имеет среднюю сложность O(1), но в худшем случае при хеш-коллизиях может быть O(n). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
323
3
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Можно перенести рабочие чаты и файлы из Telegram в Битрикс24. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе
407
4
🤔 Как работает priority_queue? priority_queue управляет элементами на основе их приоритетов, используя бинарную кучу: на вершине всегда элемент с наивысшим приоритетом, а операции добавления и удаления имеют сложность O(log n). Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
411
5
Аренда VPS/VDS-сервера. Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес.
Аренда VPS/VDS-сервера. Виртуальные выделенные серверы в дата-центрах уровня Tier III — 7 готовых конфигураций от 200 ₽/мес. Преимущества аренды: - Выделенные ресурсы без переплаты; - KVM-виртуализация; - Быстрые NVMe SSD; - Соответствие 152-ФЗ, PCI DSS; - Бесплатная защита от DDoS; - Управление через панель, API и Terraform; - Техподдержка 24/7. Запустите сервер за несколько минут! Попробовать #реклама 16+ selectel.ru О рекламодателе
427
6
🤔 Выбрасывание исключения из конструктора — это нормально? Да, выбрасывание исключения из конструктора допустимо, если объект не может быть корректно инициализирован. Однако необходимо учитывать возможные последствия, такие как утечка памяти. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
455
7
🤔 Как проверять равенство двух float? Равенство двух float проверяется с учётом допустимой разницы (эпсилон), чтобы избежать ошибок из-за неточности представления: ∣a−b∣<ϵ, где ϵ — небольшое значение, например 10−610^{-6}. Такой подход помогает корректно сравнивать близкие числа, которые могут отличаться в пределах допустимой погрешности. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
502
8
🤔 Когда начинают жить и умирают глобальные и локальные переменные в С++? Глобальные переменные живут на протяжении всей программы, начиная с инициализации до завершения. Локальные переменные живут с момента входа в блок кода до выхода из него. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
546
9
Получи грант до 3,48 млн на обучение дизайну Поступай на дизайн в Центральный университет с грантом. Для учеников 10–11-х кла
Получи грант до 3,48 млн на обучение дизайну Поступай на дизайн в Центральный университет с грантом. Для учеников 10–11-х классов и СПО. Освой графический, UI/UX и продуктовый дизайн. Создавай визуальные концепты будущего. На программе студенты получают фундаментальную базу, развивают прикладные навыки, приобретают опыт работы над реальными проектами, собирают портфолио и строят связи внутри дизайн-сообщества Подать заявку #реклама 16+ cu.ru О рекламодателе
370
10
🤔 Как работает new? Оператор new в C++ выделяет память из кучи (heap) для хранения объекта и возвращает указатель на эту область памяти. Помимо выделения памяти, new также вызывает конструктор объекта, если он определен. В случае, если не хватает памяти для выделения, new выбрасывает исключение std::bad_alloc. Для освобождения памяти, выделенной через new, необходимо использовать оператор delete. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
568
11
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по
Запустите рекламу в телеграм-каналах через Яндекс Директ Перфоманс-реклама в мессенджере продолжает работать: • Таргетинг по тематикам и регионам • Умный подбор каналов • Гибкие модели оплаты (CPC и CPV) Яндекс Директ знает, как привлечь целевую аудиторию 💰👌 Попробовать #реклама yandex.ru О рекламодателе
339
12
🤔 Как убедиться что нет багов в коде? Чтобы убедиться, что в коде нет багов, используют различные методы и инструменты проверки. Рассмотрим основные подходы: 🟠Внимательная проверка кода (Code Review) Перед тем как запускать код, полезно просмотреть его вручную или с коллегами. Это помогает: Найти логические ошибки Улучшить читаемость кода Проверить соответствие код-стайлу // Опытный разработчик может заметить, что деление на 0 возможно int divide(int a, int b) { return a / b; // Потенциальная ошибка, если b == 0 } Лучше добавить проверку int divide(int a, int b) { if (b == 0) { throw std::runtime_error("Деление на ноль!"); } return a / b; } 🟠Юнит-тестирование (Unit Testing) Тесты проверяют каждую функцию отдельно, чтобы убедиться, что она работает правильно. В C++ используют Google Test (gtest), Catch2 или Boost.Test. #include <gtest/gtest.h> #include "math_utils.h" TEST(DivideFunctionTest, HandlesZeroDenominator) { EXPECT_THROW(divide(10, 0), std::runtime_error); } TEST(DivideFunctionTest, NormalCase) { EXPECT_EQ(divide(10, 2), 5); } 🟠Отладка (Debugging) Если код работает не так, как ожидалось, используют отладчики (GDB, LLDB, Visual Studio Debugger). Они позволяют пошагово исполнять код и смотреть, где происходит ошибка. g++ -g main.cpp -o program # Компилируем с отладочной информацией gdb ./program # Запускаем отладчик 🟠Статический анализ кода Используются специальные инструменты, которые автоматически ищут ошибки в коде: Clang-Tidy Cppcheck SonarQube cppcheck --enable=all my_code.cpp 🟠Динамический анализ (Sanitizers, Valgrind) Эти инструменты помогают находить утечки памяти, переполнения буфера и другие ошибки. g++ -fsanitize=address -g main.cpp -o program ./program # Если есть проблемы, они будут найдены 🟠Интеграционное и системное тестирование Когда код протестирован отдельно, его проверяют в реальной среде. Это включает тестирование работы программы с базами данных, сетевыми запросами и другими модулями. Ставь 👍 и забирай 📚 Базу знаний
530
13
🤔 Может ли быть проблема со вставкой ста элементов через push_back? Проблема может возникнуть, если память vector переполнена, что требует перераспределения и копирования всех существующих элементов в новый массив, увеличивая временные затраты. Для большого количества вставок рекомендуется заранее вызвать reserve, чтобы выделить необходимую память и избежать перераспределений. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
483
14
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попр
Яндекс Музыка до 360 дней бесплатно Яндекс Музыка для вас и 3-х ваших близких. Кинопоиск и Яндекс Книги тоже в подписке. Попробуйте бесплатно❤️ Слушать #реклама 18+ music.yandex.ru О рекламодателе
390
15
🤔 Какая сложность операции вставки у list? Вставка в list имеет сложность O(1), так как требуется лишь обновление ссылок соседних узлов. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
522
16
🤔 Когда при вызове exception не зовутся деструкторы? В C++ деструкторы объектов вызываются автоматически при выходе из области видимости, даже если выход происходит из-за исключения. Однако есть ситуации, когда деструкторы могут не вызваться, что может привести к утечке ресурсов. 🟠Динамически выделенные объекты (`new`) Если объект был создан с помощью new, но перед его удалением произошло исключение, деструктор не вызовется автоматически. #include <iostream> class A { public: A() { std::cout << "Конструктор A\n"; } ~A() { std::cout << "Деструктор A\n"; } }; void func() { A* obj = new A(); // Создаем объект динамически throw std::runtime_error("Ошибка!"); // Исключение, объект утечет delete obj; // Никогда не выполнится } int main() { try { func(); } catch (...) { std::cout << "Исключение поймано\n"; } } Как исправить? Использовать std::unique_ptr, который автоматически удаляет объект #include <memory> void func() { std::unique_ptr<A> obj = std::make_unique<A>(); throw std::runtime_error("Ошибка!"); // Деструктор вызовется автоматически } 🟠Локальные объекты, созданные `new` внутри `try`, но `catch` не обработал исключение Если объект выделяется внутри try, но исключение не ловится в catch, программа завершится (std::terminate), и деструкторы не вызовутся. void func() { A* obj = new A(); throw std::runtime_error("Ошибка!"); // std::terminate() delete obj; } int main() { func(); // Исключение не ловится => программа аварийно завершится } Как исправить? Нужно обрабатывать исключение на верхнем уровне int main() { try { func(); } catch (...) { std::cout << "Ошибка обработана\n"; } } 🟠Исключение в конструкторе Если исключение возникает в конструкторе, деструктор этого объекта не вызывается, но деструкторы уже созданных объектов будут вызваны. class B { public: B() { std::cout << "Конструктор B\n"; } ~B() { std::cout << "Деструктор B\n"; } }; class A { public: A() { std::cout << "Конструктор A\n"; throw std::runtime_error("Ошибка в конструкторе A"); } ~A() { std::cout << "Деструктор A\n"; } // Никогда не вызовется! }; int main() { try { B b; A a; // Исключение в конструкторе A } catch (...) { std::cout << "Исключение обработано\n"; } } Вывод Конструктор B Конструктор A Исключение обработано Деструктор B Как исправить? - Использовать концепцию "умные указатели" (std::unique_ptr), чтобы ресурсы очищались автоматически. - Переносить ресурсоемкие операции в отдельный метод (init()), который можно вызывать после конструктора. 🟠Исключение в деструкторе Если деструктор объекта бросает исключение, это опасно, особенно если исключение возникло в момент обработки другого исключения. class A { public: ~A() { std::cout << "Деструктор A\n"; throw std::runtime_error("Ошибка в деструкторе!"); // Ошибка } }; int main() { try { A a; throw std::runtime_error("Основное исключение"); } catch (...) { std::cout << "Исключение обработано\n"; } } Как исправить? Деструкторы не должны выбрасывать исключения. Если исключение возможно, его следует перехватывать внутри деструктора class A { public: ~A() { try { throw std::runtime_error("Ошибка в деструкторе!"); } catch (...) { std::cout << "Ошибка подавлена в деструкторе\n"; } } }; Ставь 👍 и забирай 📚 Базу знаний
488
17
SpaceX: инвестиции в космос и глобальный интернет ⚡ SpaceX — самый дорогой «единорог» мира с потенциальной оценкой на IPO в $
SpaceX: инвестиции в космос и глобальный интернет ⚡ SpaceX — самый дорогой «единорог» мира с потенциальной оценкой на IPO в $1,75 трлн. Объединив космос и ИИ, компания Илона Маска готовится к рекордному размещению акций к лету 2026 года. ✅ Параметры IPO: • Оценка: более $1,75 трлн • Объем: $75 млрд • Дата: июнь 2026 • Вход: от $1 000 Почему SpaceX? • Монополист рынка многоразовых ракет и спутников • Синергия с ИИ-технологиями xAI • Взрывной рост выручки сети Starlink 💻 Как участвовать? Заявка: Оставьте контакты на сайте, чтобы не пропустить старт Счет: Откройте счет в «Финаме» онлайн за 3 минуты Статус: Подтвердите квалификацию (нужна для иностранных IPO) Сделка: Подайте заявку в личном кабинете Не упустите шанс стать частью истории — подайте заявку на участие в IPO заранее! Подать заявку Финансовые услуги оказывает: АО «Инвестиционная компания «ФИНАМ». #реклама broker.finam.ru О рекламодателе
379
18
🤔 Что будет если в функции помеченной как noexcept бросить исключение? Если функция, помеченная как `noexcept`, выбросит исключение, программа вызовет `std::terminate()`, что приведёт к немедленному завершению выполнения. Это связано с тем, что `noexcept` гарантирует, что функция не выбросит исключений, и нарушение этого обещания считается критической ошибкой. Использование `noexcept` позволяет оптимизировать код, так как компилятор может делать определённые оптимизации, полагаясь на то, что исключения не будут выбрасываться. Следует избегать выбрасывания исключений в таких функциях. Ставь 👍 если знал ответ, 🔥 если нет Забирай 📚Базу знаний
527
19
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и н
Не грузится? Понимаем. Бесплатный мессенджер для вашей компании - Битрикс24. Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно. Начните работать на бесплатном тарифе уже сейчас. Узнать больше #реклама 16+ bitrix24.ru О рекламодателе
375
20
🤔 Расскажи про константные методы? Это методы класса, которые гарантируют, что они не будут изменять состояние объекта, для которого вызываются. Эти методы можно вызывать на константных объектах и через константные ссылки или указатели. Ключевое слово const после объявления метода указывает, что метод является константным. 🚩Объявление и определение константного метода Чтобы объявить метод как константный, нужно добавить ключевое слово const после списка параметров метода: class MyClass { public: int getValue() const; // Константный метод void setValue(int newValue); // Неконстантный метод private: int value; }; // Определение константного метода int MyClass::getValue() const { return value; // Допустимо: метод не изменяет состояние объекта } // Определение неконстантного метода void MyClass::setValue(int newValue) { value = newValue; // Допустимо: метод изменяет состояние объекта } 🚩Пример использования константных методов #include <iostream> class MyClass { public: MyClass(int v) : value(v) {} int getValue() const { // Константный метод return value; } void setValue(int newValue) { // Неконстантный метод value = newValue; } private: int value; }; int main() { MyClass obj(10); std::cout << "Value: " << obj.getValue() << std::endl; // Вывод: 10 obj.setValue(20); std::cout << "New value: " << obj.getValue() << std::endl; // Вывод: 20 // Константный объект const MyClass constObj(30); std::cout << "Const object value: " << constObj.getValue() << std::endl; // Вывод: 30 // constObj.setValue(40); // Ошибка: setValue не может быть вызван для константного объекта return 0; } 🚩Почему и когда использовать константные методы 🟠Гарантия неизменности Константные методы гарантируют, что состояние объекта не будет изменено. Это полезно для методов, которые предназначены только для чтения данных объекта, например, методы доступа (геттеры). 🟠Безопасность и семантика Константные методы помогают лучше понимать код и повышают его безопасность, так как ясно видно, какие методы могут изменять состояние объекта, а какие нет. 🟠Работа с константными объектами Константные методы можно вызывать на константных объектах и через константные ссылки или указатели. Это позволяет использовать объекты в контексте, где важно гарантировать их неизменность. 🚩Вызов константных методов на константных объектах const MyClass constObj(30); constObj.getValue(); // Допустимо: getValue — константный метод // constObj.setValue(40); // Ошибка: setValue — неконстантный метод Ставь 👍 и забирай 📚 Базу знаний
501