Вернуться в видеотеку

Собеседование Middle C++

Лайв-кодинг собеседования на Middle C++ Developer: модифицированный бинарный поиск, семантика копирования и паттерн Singleton. В конце интервьюер разбирает ошибки и рекомендует изучить Singleton Майерса и вопросы многопоточности.

Источник: Ambushed Raccoon

Открыть на YouTube

Таймлайн

Коротко о видео

Запись учебного собеседования Владимира на позицию Middle C++ Developer с преобладанием лайв-кодинга. Участники разбирают поиск первого вхождения в отсортированном массиве за логарифмическое время, затем конструктор копирования и оператор копирующего присваивания. В заключительной задаче кандидат реализует Singleton, а интервьюер объясняет преимущества Singleton Майерса со статическим локальным объектом в C++11 и даёт развёрнутый фидбэк.

Затронутые темы

Что взять на заметку

  • Для поиска первого вхождения ключа в отсортированном массиве недостаточно найти любое совпадение: при равенстве нужно сохранить результат и продолжать бинарный поиск в левой половине.
  • Линейный проход влево после обычного бинарного поиска ухудшает худшую сложность до O(n), если одинаковым ключом заполнен большой участок массива.
  • Для модификаций бинарного поиска интервьюер рекомендует итеративный цикл: в нём проще хранить найденный индекс и менять границы, чем в рекурсивной версии.
  • Конструктор копирования создаёт новый объект из существующего, а оператор копирующего присваивания работает с уже созданным объектом и обычно возвращает ссылку на левый операнд.
  • Для Singleton нужно закрыть публичное создание экземпляров и запретить как минимум копирование и копирующее присваивание.
  • По мнению интервьюера, в C++11 предпочтителен Singleton Майерса: локальная static-переменная в функции доступа с возвратом ссылки обеспечивает потокобезопасную инициализацию.

Рекомендуем посмотреть