Re[10]: Как я завалил собеседование
От: skymaster  
Дата: 21.01.07 15:49
Оценка: -2
Здравствуйте, LuciferMoscow, Вы писали:

LM>Здравствуйте, enzo, Вы писали:


S>>> надо ещё сделать проверку на присваивание самому себе:

E>>Во-первых, эту проверку следует делать всегда, независимо от типа возвращаемого значения.
LM>Тут уже показывали фокус со swap. И никаких проверок не нужнл

T& T::operator = (const T& x)
{
 T tmp(x); // Copy constructor

 this->swap(tmp); // NO EXCEPTIONS !!!

 return *this;
}//T::copy operator


Проверка есть. Она в конструкторе копирования.
Re[10]: Как я завалил собеседование
От: THESERG  
Дата: 21.01.07 16:36
Оценка:
Здравствуйте, LuciferMoscow, Вы писали:

LM>Здравствуйте, Hottabych1, Вы писали:


LM>>>Слив защитан. map всегда отсортирован

H>>Ага, глянул в доку и увидел, что map всегда сортирован, но было поздно — уже ответил :)
LM>Еще один воспрос: даны std::vector<int> и std::list<int>

LM>Как наиболее быстрым способом найти в них число 10? Сколько операций для этого потребуется О?


LM>P.S. В доку не смотреть

LM>P.S.S. Рассмотреть оба случая: контейнеры сортированы\несортированы

так, в доки не смотрим... :)
несортированы: одинаково для vector и list: find (i->start (), i->end (), 10) , O(n)
сортированы:
вектор: O (log_2(n)), методом деления вектора пополам (код очевиден, в стандартных алгоритмах не помню, наверно, есть)
list: O (n), тупым перебором, например, find
Re[2]: А где же квиксорт?...
От: THESERG  
Дата: 21.01.07 16:41
Оценка: :)))
чёта я не понял, если код на яве — причём тут msdn?
Re[3]: А где же квиксорт?...
От: Ушастый Ёж Великобритания  
Дата: 21.01.07 17:26
Оценка: :))) :))) :)
Здравствуйте, THESERG, Вы писали:

THE>чёта я не понял, если код на яве — причём тут msdn?


Следующий!
Re[3]: А где же квиксорт?...
От: LaptevVV Россия  
Дата: 21.01.07 18:08
Оценка:
Здравствуйте, THESERG, Вы писали:

THE>чёта я не понял, если код на яве — причём тут msdn?

Это Додиез...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[11]: Как я завалил собеседование
От: Hottabych1  
Дата: 21.01.07 18:17
Оценка:
Здравствуйте, THESERG, Вы писали:

THE>Здравствуйте, LuciferMoscow, Вы писали:


LM>>Здравствуйте, Hottabych1, Вы писали:


LM>>>>Слив защитан. map всегда отсортирован

H>>>Ага, глянул в доку и увидел, что map всегда сортирован, но было поздно — уже ответил
LM>>Еще один воспрос: даны std::vector<int> и std::list<int>

LM>>Как наиболее быстрым способом найти в них число 10? Сколько операций для этого потребуется О?


LM>>P.S. В доку не смотреть

LM>>P.S.S. Рассмотреть оба случая: контейнеры сортированы\несортированы

THE>так, в доки не смотрим...

THE>несортированы: одинаково для vector и list: find (i->start (), i->end (), 10) , O(n)
THE>сортированы:
THE>вектор: O (log_2(n)), методом деления вектора пополам (код очевиден, в стандартных алгоритмах не помню, наверно, есть)
THE>list: O (n), тупым перебором, например, find
Поддерживаю и в доки тоже не смотрю.
Re: Как я завалил собеседование
От: fmiracle  
Дата: 21.01.07 19:17
Оценка:
Здравствуйте, Hottabych1, Вы писали:

H>Конечно же, виноват и все такое. Но разве так уж важно, что я не могу с ходу написать конструктор копирования? Ведь...


А не напрягайся. Вдиимо — для данной конкретной компании важно. Ибо они тут заказывают музыку.
Если ты считаешь, что это не важно — ищи другую компанию, в которой считают так же как ты. Лучше сработаетесь Меньше шансов взаимонепонимания в дальнейшей работе
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как я завалил собеседование
От: Sni4ok  
Дата: 21.01.07 19:18
Оценка: -3
да ты просто неудачник — если на такой вопрос ответить не смог.
Re[2]: Как я завалил собеседование
От: Hottabych1  
Дата: 21.01.07 19:33
Оценка:
Здравствуйте, Sni4ok, Вы писали:

S>да ты просто неудачник — если на такой вопрос ответить не смог.

Вовка, я знаю — это ты
Re[4]: Как я завалил собеседование
От: McSeem2 США http://www.antigrain.com
Дата: 21.01.07 19:41
Оценка: +1 :)
Здравствуйте, jazzer, Вы писали:

J>Конструктор копирования — это конструктор с одним параметром-ссылкой на тот же самый класс.

J>Константная это ссылка или нет — не важно.

Более того, передача по значению в конструкторе — это по сингнатуре тоже конструктор копирования! Просто так уж получилось в результате всех этих извилистых путей дизайна языка, что он приводит к бесконечной рекурсии. Типичный случай наступания себе на хвост.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Как я завалил собеседование
От: branco  
Дата: 21.01.07 20:19
Оценка: +1
Здравствуйте, Hottabych1, Вы писали:

H>В пятницу был в одной очень солидной фирме. Когда шел — меня предупреждали, что собеседование длится по несколько часов. Однако я умудрился его завалить за 10 минут . Как? Очень просто — нервы + забыл элементарную вещь.

H>Первый вопрос был написать класс и наследуемый от него. Сделал. Второй вопрос — про приведение типов. Ответил. Третий вопрос был фатальным. Угадайте, какой... написать для данного класса конструктор копирования. Ну забыл я, забыл!
H>Написал дрожащими руками вот такое:

H>
H>A::A(A a)
H>{
H>...
H>}
H>

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

Базовые моменты: написание конструктора копирования, перегрузку операций, etc
конечно надо знать и главное — понимать.Но ИМХО — работодателю стоит ещё и оценить, как человек
мыслит, подходит к решению задачи.Может быть в одном и проиграет, зато выиграет в другом.
Re[5]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 21.01.07 20:25
Оценка:
Почему воторой вариант лучше и что делает функция swap ?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Как я завалил собеседование
От: LuciferMoscow Россия  
Дата: 21.01.07 20:26
Оценка:
Здравствуйте, branco, Вы писали:

B>Базовые моменты: написание конструктора копирования, перегрузку операций, etc

B>конечно надо знать и главное — понимать.Но ИМХО — работодателю стоит ещё и оценить, как человек
B>мыслит, подходит к решению задачи.Может быть в одном и проиграет, зато выиграет в другом.
А если нужен senior?
... << RSDN@Home 1.1.4 beta 4 rev. 358>>
Re[2]: Как я завалил собеседование
От: kost-BebiX Украина http://fedorastones.blogspot.com
Дата: 21.01.07 23:42
Оценка: :)
Здравствуйте, Sni4ok, Вы писали:

S>да ты просто неудачник — если на такой вопрос ответить не смог.


И подпись, Такой-то Такой-то, главный прогер yandex'а
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Если программист в рабочее время играет, значит —
либо у него мало работы и большая зарплата,
либо у него много работы и маленькая зарплата.
Re[9]: Как я завалил собеседование
От: egor83 Голландия  
Дата: 22.01.07 06:02
Оценка: :))
Здравствуйте, enzo, Вы писали:
E>следует проверять равенство ссылок.
E>
E>A& A::operator=(const A &a)
E>{
E>   if (this != &a)
E>      ....
E>}

Но это — проверка равенства адресов, не ссылок?
Re[6]: Как я завалил собеседование
От: Коваленко Дмитрий Россия http://www.ibprovider.com
Дата: 22.01.07 06:42
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Почему воторой вариант лучше


Курите тему исключений и атомарного перевода объекта из одного состояния в другое.

M>и что делает функция swap ?


Обмен состояний объектов. Типа std::swap, но в рамках конкретного класса.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
Re[5]: Как я завалил собеседование
От: egaron http://127.0.0.1
Дата: 22.01.07 07:35
Оценка: -1
Здравствуйте, DKM_MSFT, Вы писали:

DKM>Здравствуйте, 0xd34df00d, Вы писали:


0>>>>А по-моему, есть вещи, которые нельзя забывать никогда, как таблицу умножения... А еще есть вещи, говорящие о непонимании практически базовых концепций и принципов. И соискатель, может быть, прав в данной ситуации — ему нужно получить наиболее хорошо знающего работника.


DKM>У меня как-то был период, когда мне, в силу специфики проекта, приходилось писать код на 5 разных языках. Так я иногда синтаксис цикла for забывал для какого-нибудь языка, не говоря уже про более сложные вещи. Цикл for — это, вроде как, базовая концепция. Говорит ли это о том, что я ее не понимаю и мне пора на свалку?


Как сказал коллега — есть 2 типа программистов — одни знают всю теорию, другие ничего не помнят, смотрят как написано другими (или собой же ранее) и адаптируют конструкцию. Не факт, что вторые не имеют права на существование.

Любой язык забывается очень быстро при неиспользовании. Для второй категории написать что-нибудь внятное вне привычной среды (на бумажке) вообще пытке подобно (еще + нервы)- и выходят неуклюжие .... класс А фигурная скобка — молчание — ерзание ручкой — и какой нафиг конструктор копирования.
Зато механическая память (открывание файла предыдущего проекта, где был использован данный прием, контрол-пробел в "студии", позвлояющий дописать оператор, мастеры-визарда вполне позволяют им творить.

Естественно, на теоретических собеседованиях вторая группа бракуется и идет в отстой.
Re[4]: А где же квиксорт?...
От: THESERG  
Дата: 22.01.07 07:56
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, THESERG, Вы писали:


THE>>чёта я не понял, если код на яве — причём тут msdn?

LVV>Это Додиез...

aa! семён семёныч!
Re: Как я завалил собеседование
От: fGordon Земля  
Дата: 22.01.07 08:33
Оценка:
сабж.

а я както завалил (один из провальных ответов) по другой причине связаной с ООП. я совсем забыл, что по умолчанию не только деструктор и конструктор без параметров создаются. просто вот както в жизни привык не доверять таким вот "по умолчанию" методам. привык описывать, если они нужны, "ручками".
..за привычку поплатился как говорится

ЗЫ: конечно, порой выводит из себя, что собеседуют по таким вещам, которые применяешь, но теорию по ним рассказать толком не можешь только на пальцах.. но сие похоже только моя проблема.
in c/c++ we trust!
Re[7]: Как я завалил собеседование
От: minorlogic Украина  
Дата: 22.01.07 08:47
Оценка:
Здравствуйте, Коваленко Дмитрий, Вы писали:

КД>Здравствуйте, minorlogic, Вы писали:


M>>Почему воторой вариант лучше


КД>Курите тему исключений и атомарного перевода объекта из одного состояния в другое.


Это вы мне решили викторину организовать ? при чем тут атомарность , при чем тут исключения ? Вопрос был довольно конкретным.

M>>и что делает функция swap ?


КД>Обмен состояний объектов. Типа std::swap, но в рамках конкретного класса.


ясно.
Ищу работу, 3D, SLAM, computer graphics/vision.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.