Главная
Кто я
Обучение
Стоимость
Услуги
Python-разработчик
Rust-разработчик
Получить оффер заграницу
Проверь свои знания, ответь на 20 вопросов с реальных собеседований по
C++
В конце дам полный список вопросов
Начать
Какой оператор приведения используется для снятия константности?
Типы кастов
static_cast = 0
dynamic_cast = 0
reinterpret_cast = 0
const_cast = 1
implicit_cast = 0
Чем std::map отличается от std::unordered_map
Контейнеры
map использует хеш-таблицу, unordered_map — дерево = 0
unordered_map не поддерживает итераторы = 0
map хранит элементы отсортированными = 1
map работает только с числовыми ключами = 0
Разницы нет, это синонимы = 0
Какова сложность поиска элемента в std::unordered_map в среднем?
Сложность операций
O(1) = 1
O(log n) = 0
O(n) = 0
O(n log n) = 0
O(n²) = 0
Что происходит при push_back, когда capacity исчерпана?
Vector
Выбрасывается исключение = 0
Элемент добавляется в связный список = 0
Программа завершается с ошибкой = 0
Элемент игнорируется = 0
Выделяется новая память и элементы копируются = 1
Когда лучше использовать std::list вместо std::vector?
Vector vs List
Когда нужен быстрый доступ по индексу = 0
Когда важна компактность в памяти = 0
Когда часто вставляем/удаляем в середине = 1
Когда нужна сортировка = 0
list всегда лучше vector = 0
Какое минимальное требование к типу для помещения в std::set?
std::set
Реализовать оператор знак (два равно) = 0
Реализовать оператор < = 1
Реализовать метод hash() = 0
Наследоваться от std::comparable = 0
Иметь конструктор по умолчанию = 0
Что такое this в C++?
this
Ключевое слово для вызова конструктора = 0
Указатель на текущий объект = 1
Ссылка на базовый класс = 0
Макрос препроцессора = 0
Синоним для self = 0
Что такое vtable?
vtable
Таблица указателей на виртуальные функции = 1
Таблица всех переменных класса = 0
Список всех экземпляров класса = 0
Хеш-таблица для хранения методов = 0
Таблица типов шаблонов = 0
Зачем используется ключевое слово explicit?
explicit
Для объявления виртуальных функций = 0
Для экспорта функций из DLL = 0
Для объявления констант = 0
Для указания inline-подстановки = 0
Для запрета неявных преобразований = 1
Какие умные указатели есть в стандартной библиотеке C++?
Умные указател
auto_ptr, raw_ptr, ref_ptr = 0
smart_ptr, safe_ptr, auto_ptr = 0
unique_ptr, shared_ptr, weak_ptr = 1
managed_ptr, tracked_ptr, ref_ptr = 0
gc_ptr, ref_ptr, weak_ptr = 0
Зачем нужен std::weak_ptr?
weak_ptr
Для ускорения работы с памятью = 0
Для работы с массивами = 0
Для многопоточного доступа = 0
Для разрыва циклических ссылок = 1
Для замены raw-указателей = 0
Как std::shared_ptr отслеживает количество владельцев?
shared_ptr
Через глобальную таблицу указателей = 0
Через сборщик мусора = 0
Через счётчик ссылок в контрольном блоке = 1
Через статическую переменную класса = 0
Не отслеживает, это делает программист = 0
Что такое static метод класса?
static метод
Метод, который нельзя переопределить = 0
Метод, не имеющий доступа к this = 1
Метод, вызываемый только из конструктора = 0
Метод с фиксированным числом аргументов = 0
Метод, доступный только внутри класса = 0
Почему std::make_unique лучше, чем new?
make_unique
make_unique работает быстрее = 0
make_unique безопаснее при исключениях = 1
new не работает с умными указателями = 0
make_unique выделяет память в стеке = 0
Разницы нет, это вопрос стиля = 0
Что такое deadlock?
Многопоточность
Взаимная блокировка потоков = 1
Ошибка компиляции многопоточного кода = 0
Утечка памяти в многопоточной программе = 0
Завершение потока с ошибкой = 0
Превышение лимита потоков = 0
Что такое mutex?
Mutex
Тип данных для хранения потоков = 0
Функция для создания потоков = 0
Контейнер для синхронизации данных = 0
Примитив для эксклюзивного доступа к ресурсу = 1
Аналог семафора со счётчиком = 0
Что такое атомарные операции?
Атомики
Операции, выполняемые в отдельном потоке = 0
Операции над указателями = 0
Операции, неделимые для других потоков = 1
Операции с плавающей точкой = 0
Операции, требующие mutex = 0
Для чего нужен std::condition_variable?
condition_variable
Для проверки условий в if-выражениях = 0
Для ожидания и уведомления между потоками = 1
Для хранения булевых значений = 0
Для замены mutex в простых случаях = 0
Для отладки многопоточного кода = 0
Что такое лямбда-функция в C++?
Лямбды
Анонимная функция в месте использования = 1
Функция без возвращаемого значения = 0
Функция с переменным числом аргументов = 0
Виртуальная функция базового класса = 0
Шаблонная функция = 0
Что означает ключевое слово constexpr?
constexpr
Переменная не может быть изменена = 0
Функция является чистой = 0
Значение вычисляется во время компиляции = 1
Объект размещается в статической памяти = 0
Синоним для const = 0
Результаты теста
Ты знаешь ответ на
0
% вопросов
Даааа, тебе точно есть, что подтянуть
Жми кнопку ниже, чтобы получить полный файл с вопросами
Начать заново
Получить файл
Не идеально, но уже что-то!
Жми кнопку ниже, чтобы получить полный файл с вопросами
Начать заново
Получить файл
Хорошо, но есть к чему стремиться
Жми кнопку ниже, чтобы получить полный файл с вопросами
Начать заново
Получить файл
Ого, это уже неплохо
Жми кнопку ниже, чтобы получить полный файл с вопросами
Начать заново
Получить файл
Мощно! Держись в том же духе
Жми кнопку ниже, чтобы получить полный файл с вопросами
Начать заново
Получить файл
Нарекаю тебя "монстр собесов"
Жми кнопку ниже, чтобы получить полный файл с вопросами
Начать заново
Получить файл
Далее
Отправить
Введи почту и я отправлю полный файл с вопросами
Получить файл