Вопросы программисту С++ на собеседовании. Часть вторая

Здравствуй, дорогой читатель!

Вот и родилась вторая часть моего шедевра девятилетней давности. Только теперь формат статьи поменялся — ответы я буду писать в свободное время в очень ленивом режиме, потому что работу я не ищу и вопросы передо мной стоят совершенно другие (например, хитромудрый рендеринг в текстуру), а свободного времени у меня немного, потому что я во время него обычно сплю и само собой мне лень.

При появлении ответа на какой-нибудь пункт, я буду его прятать под катом. И, разумеется, я не знаю ответов на абсолютно все эти вопросы и меня это нисколько не смущает, потому что я милорд синьор рисёрч инженер, а не Си плюс плюс задрот.

Вопросы по алгоритмам

  • LRU кеш ограниченного размера
  • Что такое хеш таблица
  • Сделать дерево поиска в отсортированном массиве
  • Структура с указателем на parent и надо найти наименьшего общего предка
  • Вывести матрицу по спирали внутрь
  • Убрать элементы нулевые элементы в std::vector
    ответ
    Засунуть все нулевые элементы с помощью std::swap в конец и сделать std::vector::resize
  • Развернуть односвязный список
  • Исходный список содержит цифры, конечный i-й элемент содержит произведение всех элементов кроме i-того в исходном списке
  • Рисование закрашенного треугольника
  • Как нарисовать закруглённые уголки прямоугольника

Вопросы по языку C/C++

  • В чём разница между std::auto_ptr и std::unique_ptr
    ответ
    std::auto_ptr в конструкторе копирования (и операторе присваивания) изменяет источник, в std::unique_ptr конструктор копирования запрещён и можно пользоваться только move семантикой.
  • Бесконечная рекурсивная функция (в какие моменты может произойти, как сделать)
  • Написать свой std::shared_ptr
    ответ
    Код не приведу, но должен содержать два указателя: на данные и счётчик ссылок, должен быть шаблонным и определять конструктор копирования, оператор копирования, конструктор перемещения и оператор перемещения с посчётом количества ссылок. В деструкторе проверяем если --counter==0 то удаляем данные.
  • Отличие структуры от класса
    ответ
    По умолчанию все члены struct имеют видимость public, а classprivate. Наследование от struct по умолчанию public, от classprivate. В остальном никакой разницы.
  • Выравнивание, размер структуры
  • volatile и mutable
  • Что такое pure virtual call
  • Вызов виртуальных функций из конструктора и деструктора
  • Таблица виртуальных функций
  • Как работает dynamic_cast, static_cast, reinterptet_cast, const_cast и C-style cast. Что происходит в случае ошибки приведения типа, работа со ссылкой и указателем
  • В чем отличие ссылки от указателя
  • Многопоточность std::shared_ptr
    ответ
    Всё прекрасно
  • Факториал итеративно, рекурсия, на шаблонах
  • Отличие calloc и malloc
    ответ
    оба выделяют память, но calloc заполняет выделенный блок нулями.
Комментариев нет. Будьте первым!
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Личный блог Евгения Жирнова