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

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

Алгоритмы

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

Программирование

  • Бесконечная рекурсивная функция (в какие моменты может произойти, как сделать)
  • Написать свой std::shared_ptr
  • Отличие структуры от класса
    Ответ
    По умолчанию все члены struct имеют видимость public, а classprivate. Наследование от struct по умолчанию public, от classprivate. В остальном никакой разницы.
  • Выравнивание, размер структуры
  • volatile и mutable
  • Что такое pure virtual call
  • Вызов виртуальных функций из конструктора и деструктора
  • Таблица виртуальных функций
  • Как работает dynamic_cast, static_cast, reinterptet_cast, const_cast. Что происходит в случае ошибки приведения типа, работа со ссылкой и указателем
  • В чем отличие ссылки от указателя
  • Многопоточность std::shared_ptr
  • Факториал итеративно, рекурсия, на шаблонах
Youtube каналы про реставрацию старых вещей

Пока мыслей для блога особых нет, решил поделиться каналами Youtube, где рукастый народ реставрирует старые инструменты и устройства.

Примерно два года назад, бродя по просторам Youtube, наткнулся на ролик, где человек реставрировал плоскогубцы. Был в полном восторге. Вот сейчас они ржавые, а через двадцать минут — новенькие, как будто из магазина. Почитал ради интереса комментарии и выяснилось, что автор ролика знатный брехун. Комментаторы заметили, что губки отреставрированных плоскогубцев идеально смыкаются без зазоров, что невозможно, если плоскогубцам много лет, ими долго пользовались по назначению и они пролежали в луже не один год.

Оказывается, некоторые уроды берут хорошую вещь, снимают с ней финальный результат, затем искуственно эту вещь старят и героически её реставрируют. Не одного меня с этого бомбит, так что вот вам ролик про таких «рестораторов» (осторожно — много мата, но исключительно по делу):

А теперь к делу!

LADB Restoration

Человек живёт во Франции, если я правильно понял, и реставрирует в основном инструменты и устройства. А что самое важное — этими вещами потом сам и пользуется. Решил написать про него в первую очередь, потому что, смотря на его работу, на мгновение возникает мысль «О! Я так тоже смогу!», на самом деле — нет. Это не может не радовать, поскольку набор инструментов у него практически стандартный, который вы сможете найти в своём ящике с инструментами, если он у вас, конечно, есть. Если ящика с инструментами у вас нет, то нажмите Ctrl-W.

Ссылка на канал: LADB Restoration

TysyTube Restoration

Человек реставрирует всё подряд, причём до идеального состояния. Чувствуется перфекционизм и золотые руки. Рекомендую для просмотра и вызывания чувства зависти.

Ссылка на канал: TysyTube Restoration

my mechanics

У меня есть подозрение, что этот канал и предыдущий ведёт один и тот же человек, потому что стиль и инструменты очень похожи. Человек живёт в Швейцарии. Казалось бы, кушай швейцарский сыр, живи в шоколаде, пей молоко альпийских гор, ан нет!

Ссылка на канал: my mechanics

P.S. И напоследок пару слов. Если в названии ролика есть слова «Шок», «Этот ролик взорвал интернет» и «Cрочно смотреть всем, пока не удалили», то автор ролика считает вас дебилом. Будьте бдительны! Также, если текстовая заметка заканчивается словами «Узнали?», «Согласны?», «Знакомо?» это значит, что вас разводят на комментарии, как деревенского дурачка. Не ведитесь! Зря, что ли, наши предки слезали с деревьев, осваивали прямохождение и с большим трудом выращивали мозг, чтобы вы велись, как тупая обезьянка. Согласны? Знакомо?

Забористая анестезия или плавное съезжание кукушки в реанимации

Угораздило меня опять попасть в больницу, но в этот раз с геморрагическим инсультом с последующей трепанацией черепа. В реанимации после этого я провёл две недели. Это бесконечно долгий срок, учитывая «дружелюбность» медсестёр в реанимации Елизаветинской больницы с их скотским отношением к пациентам реанимации. Окрики и хамство — это именно то, чего не хватает пациенту с гематомой в голове для скорейшего выздоровления. Но Бог им судья, статья вообще не про это, а про то, что мне чудилось в тех местах. Начну с простого случая — как у меня украли тело.
Когда меня перевели из реанимации в палату, я был уверен, что у меня спиздили одно тело, потому что в той версии были специальные крутилки на коленях, которыми можно регулировать давление. И подарили их мне протоссы, чувствуете накал идиотии? Я был настолько возмущён очевидным воровством имущества, что хотел жаловаться главврачу. Так же после перевода в палату, я был на сто процентов уверен, что нахожусь в США. Как такое возможно — поступить в Санкт-Петербурге в Елизаветинскую больницу, а оказаться в США — не знаю, но мне это было совершено очевидно! Я даже спрашивал медсестёр:
— Где я нахожусь?
— Елизаветинская больница
— А город какой?
— Санкт-Петербург!
— А страна какая?
— Россия!( и тут я чувствую, что врёт медсестра!)
Мои подозрения подпитывали некоторые «странные» вещи:
— на розетках написано 220V (зачем?!)
— на постельном белье синими буквами напечатано «РИКВЭСТ» (request англ. запрос)
Риквэст
— на бейджиках персонала написано сначала имя, потом отчество, затем фамилия. По-русски так не пишут!!
— пейзаж за окном явно не питерский, а какой-то приятный и промышленный.
Вид из окна Елизаветинской больницы
Отдельно стояло здание с отсеками для космических истребителей, но его я в расчёт почему-то не принял. Между прочим, мой лечащий врач был уверен, что я в адеквате. Это он просто не спросил в какой стране мы находимся. А ещё в моей палате примерно две недели после перевода находился Зератул (Zeratul) из Темных храмовников, но ничего не предпринимал.

Окончательно в том, что мы в России меня убедило включение мобильника со встроенным GPS.
Дальше был прикол со временем и пространством. В реанимации какое-то время у меня были привязаны руки, потому что я люблю спать на боку. Но повязок на руках я не видел, просто руки не пошевелить и всё. Тогда от скуки я начинал стучать ногтями по железной части кровати. Мне отвечали «кончай шуметь, три часа ночи, люди спят!» и в этот момент я переносился в другое измерение где чотко видел повязку на руках. Это была Англия 1920-х годов. Как и почему я был в этом уверен — не имею ни малейшего понятия. Кстати, в самой реанимации большую часть я провёл в Алжире в 1980-х годах и там была война с участием Франции. Здорово, правда?!
Вообще, после операции на сердце, психика у меня относительно крепкая, относительно большинства людей, потому что не всякий сможет морально принять, что технически один раз уже был полностью мёртв.
Наверно, именно это помогло мне сохранить рассудок после перенесенных переживаний, но, откровенно говоря, балансировал я на грани. Кстати, первый признак, что у вас едет крыша — вы ни на секунду ни в чём не сомневаетесь. На кровати сидит говорящий драгун (dragooon) протоссов размером с котёнка? Так и надо, это нормально, у всех так.
Драгун протоссов
В палате стоит Зератул, ненуачо потолки в больнице по три метра, значит заранее рассчитали.
Зератул
Хвала Аллаху, это было временным явлением, через пару недель после перевода в палату всё пришло в норму.

Пользуясь случаем, хочу поблагодарить нейрохирургов Ивана Геннадьевича Захматова и Щербинина Антона Владимировича за блестяще проведенную операцию!

Youtube каналы про выживание в каменном веке

Один мой коллега (привет, Алекс) однажды в командировке сказал умную вещь — не надо бояться писать обо всём. Мысль пришла — записал в блог. Не одобрил мысль читатель — да насрать (это уже от меня) — мой блог, что хочу, то и пишу. Не нравится — скатертью по жопе, проваливай, смотри, чтоб дверью на выходе не прищемило.

В этой заметке хочу поделиться Youtube каналами про выживание в каменном веке. Все каналы объединяет одна тема — выживание в дикой природе.

Primitive Technology

Этот канал наиболее близок простому обывателю — плетение неказистых корзин и лепка глиняной посуды без претензий на красоту, поэтому он первый в моём списке. Съёмки происходили в Австралии ради написания книги. Как пишет автор — опыта армейской службы он не имеет. Большинство роликов имеют русские субтитры, в отличие от остальных каналов.

Ссылка на канал: Primitive Technology Channel

Primitive Life

На этом канале похожий вариант, но автор делает всё более монументально, с упором на комфорт и внешний вид. Если в Primitive Technology автор строит временную хижину на пару месяцев, чтобы выжить, иметь убежище от дождя и немножко еды, то здесь целый участок, с бассейном с рыбками, курятником, свинарником и почти каменным домом. Между делом, автор изготавливает железный нож.

Ссылка на канал: Primitive Life

Primitive Skills

Автор этого канала умеет удивительно красиво плести. Ну и заодно добывать огонь, делать продвинутые железные инструменты, выращивать и готовить рис, разводить рыбу, строить дом и делать глиняную посуду.

Ссылка на канал: Primitive Skills

Приятного просмотра!

Ну и в завершении этой подборки я хотел бы послать лучи ненависти владельцам Youtube, которые до такой степени оборзели, что клянчат деньги на премиум подписку в мобильном приложении за то, чтоб не переключаться на главный экран при сворачивании приложения в трей на Андроиде. Гореть вам в аду! Вам мало показа двух, сука, рекламных вставок в начале десятиминутного ролика?! Уже Ярмольник до такой степени остоепиздел в совершенно убогой рекламе МТС с Нагиевым, что сил моих нет. Ярмольник такой же техногик и программист, как я, блять, звезда порнхаба.

Вторая командировка в Германию

Вторая командировка в Германию получилась гораздо насыщеннее и интереснее первой.

Суровая немецкая зима встретила нас температурой плюс восемь-десять градусов Цельсия. Хорошо, что я взял с собой тёплые штаны, курточку и сапоги.

Прилетели в Берлин, затем на местном метро доехали из аэропорта до центрального вокзала, купили билеты до Вольфсбурга и побежали на поезд, который отходил через четыре минуты.

Центральный вокзал Берлина

Поезд из Берлина до Вольфсбурга несётся со скоростью 250 километров в час, поэтому поездка занимает около часа. В прошлый раз ездили это же расстояние на машине, потратили гораздо больше времени, даже учитывая то, что на местных хайвеях иногда не было ограничения вообще.

В поезде есть два типа мест: забронированные заранее и обычные. Мы, конечно, по незнанию, сели на чьи-то забронированные места возле окошка. Через пару остановок зашла тётенька и попросила нас освободить места.

Поселились в отеле City Journal Hotel. Я не сильно разбираюсь в отелях, но мне понравилось. Место в центре города, недалеко находится улочка с барами. Нормальный завтрак: булочка, колбаса, сыр, масло, яйца, йогурт, кофе, сок — а чего ещё надо с ранья? До работы пешком минут пятнадцать всего.

Гостиница "City Hotel Journal"

Работали на заводе Volkswagen, что мы там делали — не скажу, потому что забыл секрет. Могу лишь сказать, что наши пропуска были с максимальным уровнем доступа и то, чем мы там занимались было бы ОЧЕНЬ интересно любому человеку.

Завод VW

Завод настолько большой, что по нему хотят три типа автобусов: Golf Line, Tiguan Line и Tuareg Line. На второй день мы сели не в тот автобус и он нас отвёз в неизведанные дали. До выхода пришлось идти минут двадцать по тёмным улочкам. Зато мы видели, как работают трёхметровые роборуки. Они собирали очередную машину на конвейере. Выглядит фантастично, звуки прямо из Звездных Войн. Там где джедаи, Йода и, мать его, император Палпатин. Зрелище того, как одна рука хватает деталь, а другая приваривает эту деталь к машине — незабываемо.

Завод VW

Всю командировку было очень жаль, что фотографировать запрещено, а обе камеры заклеены стикером. Поверьте, там есть на что посмотреть.

Кстати, очень странно, что на заводе в стране, которая заботится об экологии и вторичной переработке, в туалете бумажные полотенца, которые заканчиваются к середине дня и все пользуются туалетной бумагой для вытирания рук. Одна-две электрические сушилки для рук сэкономили бы кучу бумаги.

На третий день ходили с корейскими коллегами потреблять суши в китайский ресторанчик. Корейцы рассказали, что они начиная с детского сада, учатся есть палочками, поэтому палочки для них самый привычный столовый прибор. Ну мы с коллегой покушали палочками кое-как, я даже доел все рисинки с помощью палочек, корейцы одобрительно охали и ахали от мастерства. Потом я взял палочки в другую руку и проделал тоже самое с рисинками. А из двух корейцев повторить за мной смог только один. Так что, корейский товарищ, будь бдителен, когда выделываешься с помощью одной руки, возможно перед тобой сидит амбидекстр, йопт.

Перед командировкой, сразу после Нового Года, седьмого января посетил стоматолога, где мне неудачно поставили больнющий укол с анестезией в щеку и у меня перестала работать лучшая правая половина языка. С нерабочей половиной языка — открою секрет — очень сложно дотянуться языком до кончика носа, а я ведь, по сути, больше ничего и не умею. А ещё моя и так херовая дикция упала до полного нуля. Но на уроке английского учитель не заметила изменений, когда я рассказал про этот случай на чистейшем американском английском языке (привет, Джесс!). Рассказал, короче, про свой язык на другом языке носителю языка. Вот такой я молодец!

И минутка полезной информации про поезда и железную дорогу в Германии.

Билеты покупают в автоматах. Билет из аэропорта Шонефёльд до центрального вокзала стоит примерно 3.6€, его надо пробить перед посадкой в поезд в автомате на платформе или по пути к поезду. На междугородних поездах билеты приобретаются в таких же автоматах и на эти поезда можно забронировать сидячее место с номером за 4€. Если доступных мест нет и автомат отказывает вам в резервировании, то проходим в вагон своего класса и садимся на места с надписью frei-что-то-там. Если на табло над местом другая надпись, значит оно зарезервировано и вас могут прогнать в любой момент. Пробивать билеты на междугородние поезда не надо, это сделает контролёр. Во внутригородских поездах, если вы не пробили билет, придётся заплатить штраф контролёру.

Работа контролёра

Будьте внимательны, лучше спросите у дежурного на вокзале — надо пробивать билет или нет. Заодно он подскажет вам — в какую часть поезда садиться. Билет из Берлина в Вольфсбург стоит 44€, поезд едет со скоростью 250 километров в час, но это совершенно незаметно.

Поезда могут состоят из двух составов: один состав идёт на центральный вокзал Берлина, второй захватывать Польшу на восточный вокзал. Обычно на платформе на электронном табло есть пояснения за 5-10 минут до прибытия поезда — в какую часть садиться.

P.S. Внезапно обнаружил, что мой блог недоступен с публичного WiFi вокзала в Вольфсбурге, потому что он нарушает «правила защиты несовершеннолетних». Что могу сказать на эту тему: не пускайте несовершеннолетних в Интернет, Интернет от них тупеет!

Тестирование markdown

—>

Блог Евгения Жирнова