Здравствуйте, i-maverick, Вы писали:
IM>Здравствуйте, superman, Вы писали:
S>>вещью, сделанной таким образом что бы ей легко мог воспользоваться даже самый глупый человек, будет легче и приятней пользоваться и самому умному.
IM>"Создайте систему, которой сможет пользоваться каждый дурак, и только дурак захочет ей пользоваться". (с) Закон Мерфи.
Здравствуйте, superman, Вы писали:
S>>>вещью, сделанной таким образом что бы ей легко мог воспользоваться даже самый глупый человек, будет легче и приятней пользоваться и самому умному.
IM>>"Создайте систему, которой сможет пользоваться каждый дурак, и только дурак захочет ей пользоваться". (с) Закон Мерфи.
S>Хм.. а вы этим, вордом пользуетесь? а виндовсом?
Да, пользуюсь. А вы считаете, что ими может пользоваться каждый дурак?
Здравствуйте, i-maverick, Вы писали:
IM>Здравствуйте, superman, Вы писали:
S>>>>вещью, сделанной таким образом что бы ей легко мог воспользоваться даже самый глупый человек, будет легче и приятней пользоваться и самому умному.
IM>>>"Создайте систему, которой сможет пользоваться каждый дурак, и только дурак захочет ей пользоваться". (с) Закон Мерфи.
S>>Хм.. а вы этим, вордом пользуетесь? а виндовсом?
IM>Да, пользуюсь. А вы считаете, что ими может пользоваться каждый дурак?
ИМХО да.. именно в этом и заключалась идея, и получилось по моему действительно неплохо..
ещё когда-то я слышал про такой проэкт как "компьютер для безграмотных"
Здравствуйте, skeptik_, Вы писали:
_>Здравствуйте, Hottabych1, Вы писали:
H>>Но я над ними долго и внимательно корпел, с компилятором и документацией, а также книжкой Кернигана. H>>Вот, к примеру, мой ответ на второй вопрос (там, где галочки проставлять):
H>>2) Сортированный vector позволяет, при использовании бинарного поиска, на каждом шаге отсеивать половину элементов, т.е. его сложность будет O(log2(n)) -- логарифм по снованию 2 от n (а не O(ln(n))).
_>Что такое временная сложность ты очевидно тоже плохо понимаешь. Константным множителям там делать нечего, а основание логарифма это ничто иное как константный множитель.
За каждый раз алгоритм отсеивает половину вариантов при чем тут логарифм с основанием 2,7? Ясно, что будет просто двойка в основании. Если не прав — поправляйте.
Здравствуйте, 0rc, Вы писали:
0rc>Здравствуйте, Hottabych1, Вы писали:
H>>И еще хочу искренне поблагодарить за честность.
0rc>Пожалуйста не оверквотте!
Здравствуйте, TMU, Вы писали:
S>>>Яндексу +1 раз он так быстро тебя забраковал. Я видел компании где за неимением лучьших брали и таких, но это совсем не "солидные компании" H>>Напротив, очень зря меня Яндекс не взял . Да, многого не знаю, но главное, что голова есть на плечах и в сильной команде я, уверен, быстро дорасту до соответствующего уровня. А если не давать никому шанс, то скоро просто неоткуда будет брать хороших специалистов. Так как, чтобы стать таким надо пройти определенную школу, работая с сильными коллегами. А потом самому привлекать новичков, передавая им знания.
TMU>Молодой человек!(если такое обращение коробит — извиняюсь сразу)
TMU>Я за свою жизнь не написал ни строчки на плюсах (по работе, для себя кропал когда-то что-то). TMU>В плюсах я не смыслю ни бельмеса. Я довольно слабо понимаю умные вещи, которые в этой ветке обсуждают умные люди. TMU>Но! Мне и то понятно, что не взяли Вас правильно. Не обижайтесь, но мне кажется, что Вы делаете довольно типичную ошибку — TMU>не усвоив и не осознав базовые концепции, видите проблему в частностях. Человек способен заучить огромный объем материала, но без понимания это мертвый груз. Практический совет — изучая что-то(собственно, неважно что именно) регулярно задавайте себе вопрос — а почему это именно так, а не иначе и что будет если сделать по другому. Помогает пониманию, знаю по опыту TMU>В целом — удачи, уверенности в себе Вам, похоже, хватает
Вы абсолютно правы. Но понимай ты или не понимай концепции, а экзаменатор возьми да и спроси "какого цвета левый задний бит в тридцать шестом байте MSIL-кода скомпилированной сборки ?" И пойдешь ты гадать со своими концепциями и пониманиями . И будешь изгнан прямым и честным Анатоликсом прямо с собеседования. Или тебе будет сказано "подождать две недели, пока мы подумаем" непрямым и нечестным Гугликсом.
Здравствуйте, minorlogic, Вы писали:
M>Я понимаю , но какое именно метафизическое свойство нам гарантирует что своп не выкинет исключения ? У кого считается ?
Ну вот, например:
23.1/10 (Container requirements)
— no swap() function throws an exception unless that exception is thrown by the copy constructor or assignment operator of the container’s Compare object (if any; see 23.1.2).
Соответственно все контейнеры стандартной библиотеки это гарантируют (если ты, конечно, не засунул в него невменяемый Compare), причем независимо от типа элементов.
M>Какой механизм нам позволит делать своп для произвольных мемберов ?
Механизм сознательного следования правилу написания функций swap не бросающими исключений.
P.S. К сожалению, алгоритм swap из стандартной библиотеки этому правилу в общем виде не удовлетворяет
Так что надо писать его специализации для всех классов, которые не могут быть созданы/скопированы с гарантией отсутствия исключений.
S>раз уж вы так гордитесь своей головой-на-плечах постарайтесь обосновать полезность и принцыпы построенения такой структуры как несортированное (в общем случае неупорядоченное) дерево
Вот примеры несортированных деревьев, которые сразу в голову пришли: Выражение 2+2*2 можно выарзить в виде бинарного дерева: (+ 2 (* 2 2)). Это дерево можно уже редуцировать в конкретное значение.
XML можно представить в виде дерева — оно упорядоченно, но не отсортированно.
Здравствуйте, jazzer, Вы писали:
J>Здравствуйте, minorlogic, Вы писали:
M>>Я понимаю , но какое именно метафизическое свойство нам гарантирует что своп не выкинет исключения ? У кого считается ? J>Ну вот, например: J>
23.1/10 (Container requirements)
J>— no swap() function throws an exception unless that exception is thrown by the copy constructor or assignment operator of the container’s Compare object (if any; see 23.1.2).
J>Соответственно все контейнеры стандартной библиотеки это гарантируют (если ты, конечно, не засунул в него невменяемый Compare), причем независимо от типа элементов.
M>>Какой механизм нам позволит делать своп для произвольных мемберов ? J>Механизм сознательного следования правилу написания функций swap не бросающими исключений.
J>P.S. К сожалению, алгоритм swap из стандартной библиотеки этому правилу в общем виде не удовлетворяет J>Так что надо писать его специализации для всех классов, которые не могут быть созданы/скопированы с гарантией отсутствия исключений.
Ну наконецто вы озвучили то что я пытался сказать , для применения описанного трюка , все участвующие классы должны нести соответствующую нагрузку. И данный трюк не подходит для general случая.
Здравствуйте, egaron, Вы писали:
E>Вы абсолютно правы. Но понимай ты или не понимай концепции, а экзаменатор возьми да и спроси "какого цвета левый задний бит в тридцать шестом байте MSIL-кода скомпилированной сборки ?"
Четные левые задние байты всегда красные. Это знает каждый школьник.
-- Пользователи не приняли программу. Всех пришлось уничтожить. --
E>Вы абсолютно правы. Но понимай ты или не понимай концепции, а экзаменатор возьми да и спроси "какого цвета левый задний бит в тридцать шестом байте MSIL-кода скомпилированной сборки ?" И пойдешь ты гадать со своими концепциями и пониманиями . И будешь изгнан прямым и честным Анатоликсом прямо с собеседования. Или тебе будет сказано "подождать две недели, пока мы подумаем" непрямым и нечестным Гугликсом.
У меня сложилось впечатление, что Анатоликс такого вопроса не задаст. А в места, где на основе ответов на такие вопросы, делают какие-то выводы, по-моему и ходить незачем.
Здравствуйте, Hottabych1, Вы писали:
_>>Что такое временная сложность ты очевидно тоже плохо понимаешь. Константным множителям там делать нечего, а основание логарифма это ничто иное как константный множитель.
H>За каждый раз алгоритм отсеивает половину вариантов при чем тут логарифм с основанием 2,7? Ясно, что будет просто двойка в основании. Если не прав — поправляйте.
f(n)=O(log(n)) означает, что существует число С, такое, что для каждого N f(N) <= C*log(N) + C. Или попросту, что наша функция при больших N растёт не быстрее, чем логафмическая функция, если не принимать во внимание константные множители. Поэтому основание логарифма не указывается в большом О вообще.
Кроме того, кто сказал, что дерево бинарное? Кто сказал, что это вообще дерево? Хотя все известные мне имплементации STL и используют red-black tree, но стандарт требует только логарифмического поиска и вставки, предоставляя имплементаторам самим решать, как они этого добьются.
Здравствуйте, i-maverick, Вы писали:
IM>>>3. Ф-ия main — void -> несоответствие стандарту. IM>Да, забыл добавить. В задаче же не указан компилятор. Вот VC++ нормально скушает void main(), а g++ подавится.
CodeWarrior тоже скушает. И вообще, имхо, это дефект в стандарте. Зачем спрашивается было вводить в язык как special case возможность для функции main не возвращать явно результат, вместо того чтобы узаконить void main?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, AndrewJD, Вы писали:
AJD>CodeWarrior тоже скушает. И вообще, имхо, это дефект в стандарте. Зачем спрашивается было вводить в язык как special case возможность для функции main не возвращать явно результат, вместо того чтобы узаконить void main?
Затем, что у многих программ (например, консольных) должен быть код возврата.
Тогда уж надо было запретить void.
Здравствуйте, i-maverick, Вы писали:
AJD>>И вообще, имхо, это дефект в стандарте. Зачем спрашивается было вводить в язык как special case возможность для функции main не возвращать явно результат, вместо того чтобы узаконить void main?
IM>Затем, что у многих программ (например, консольных) должен быть код возврата. IM>Тогда уж надо было запретить void.
Зачем? Было бы два варианта, в чем проблема?
"For every complex problem, there is a solution that is simple, neat,
and wrong."
Здравствуйте, Коваленко Дмитрий, Вы писали:
КД>Здравствуйте, egaron, Вы писали:
E>>Вы абсолютно правы. Но понимай ты или не понимай концепции, а экзаменатор возьми да и спроси "какого цвета левый задний бит в тридцать шестом байте MSIL-кода скомпилированной сборки ?"
КД>Четные левые задние байты всегда красные. Это знает каждый школьник.
Да, а вдруг экзаменатор думает что они зеленые. Дальтоник может он....
КД>У меня сложилось впечатление, что Анатоликс такого вопроса не задаст. А в места, где на основе ответов на такие вопросы, делают какие-то выводы, по-моему и ходить незачем.
Это пример не для ув. Анатоликса, а для коллеги (забыл, проситие, ник), который "на сях писал только для себя и лабы" (как и Ваш покорный слуга), утверждающему, что главное — понимание концепции.
Здравствуйте, AndrewJD, Вы писали:
AJD>>>И вообще, имхо, это дефект в стандарте. Зачем спрашивается было вводить в язык как special case возможность для функции main не возвращать явно результат, вместо того чтобы узаконить void main?
IM>>Затем, что у многих программ (например, консольных) должен быть код возврата. IM>>Тогда уж надо было запретить void. AJD>Зачем? Было бы два варианта, в чем проблема?
Тогда к чему вообще твое предложение? Сейчас и есть два варианта. А можно и три сделать, т.к. "its type is implementation-defined".
Теперь ясно, чем занимаются в Яндексе! Концепцией константных классов и корректным вложением классов в STL-контейнеры!
Вы действительно даже не успели подойти к программированию
Вывод: в каждой компании свои заморочки...
Но не это главное!
Главное: а что Вы будете делать, Анатоликс, когда выйдет следующий стандарт C++? Переписывать весь код Яндекса?
Что, Вы будете спрашивать на собеседованиях устаревшие знания (когда STL и ссылки (&) окончательно устареют)? А если нет — то кто будет саппортить всё то, что Вы уже накодили?
Впрочем, думаю, к тому времени Вы или уволитесь, или пойдёте в большой менеджмент
А пока сообщаю: большинству компаний ни то что концепция констанных классов не нужна, им даже STL не нужен! Во как! А где-то и на ANSI C пишут! Так что нет ничего удивительного, что приходящие к Вам программисты не знают как написать конструктор копирования. И эту фигню даже не стоит спрашивать на собеседовании, ага