C/C++ | Вопросы собесов
Открыть в Telegram
Cайт easyoffer.ru Реклама @easyoffer_adv ВП @easyoffer_vp Тесты t.me/+zYofcX2VLTM3MGMy Задачи t.me/+9WeVk7cGswkzNTIy Вакансии t.me/+za2mJYs4riAzMzFi
Больше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.
Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно.
Можно перенести рабочие чаты и файлы из Telegram в Битрикс24.
Начните работать на бесплатном тарифе уже сейчас.
Узнать больше
#реклама 16+
bitrix24.ru
О рекламодателе | 407 |
| 4 | 🤔 Как работает priority_queue?
priority_queue управляет элементами на основе их приоритетов, используя бинарную кучу: на вершине всегда элемент с наивысшим приоритетом, а операции добавления и удаления имеют сложность O(log n).
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚Базу знаний | 411 |
| 5 | Аренда 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-х классов и СПО. Освой графический, 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-х ваших близких.
Кинопоиск и Яндекс Книги тоже в подписке.
Попробуйте бесплатно❤️
Слушать
#реклама 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 в $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.
Личные и групповые чаты, видеозвонки, каналы и нейросеть. Всё привычно и удобно.
Начните работать на бесплатном тарифе уже сейчас.
Узнать больше
#реклама 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 |
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
