LINUX.ORG.RU

Повышение квалификации: посоветуйте литературу

 ,


14

6

Добрый день. Умею говнокодить на C++, хочу развиваться и получать больше денег. Иду смотреть вакансии яндекса и вижу вопрос:

Какие из следующих стандартных контейнеров позволяют найти в них элемент (по его значению) за O(ln(n))?

std::vector

std::list

std::deque

std::set

std::multiset

std::hash_set

сортированный std::vector

сортированный std::list

сортированный std::deque

сортированный std::set

сортированный std::multiset

сортированный std::hash_set

Аргументируйте ответ, прокомментируйте правильность постановки вопроса

И понимаю, насколько я еще ничтожен. Что такое O(ln(n)) я еще понимаю, но какие алгоритмы используются в стандартной библиотеке - могу только догадываться. Хотя, возможно, вопрос на самом деле не сложный и я даже знаю как на него ответить, не углубляясь в детали реализации. Но всё равно хочется поднять свой уровень. В связи с этим посоветуйте литературу, чтобы углубить знания стандартной библиотеки C++ и вообще знания алгоритмов и с этими знаниями смочь устроиться в нормальное место.

Пожалуйста, не предлагайте перейти на другой язык, это слишком долго.

Ну и заодно пусть развернется дискуссия по поводу решения задач от яндекса:

Перемещено mono из talks



Последнее исправление: Hrenomoto (всего исправлений: 1)

Ответ на: комментарий от anonymous

HipHop programmatically transforms your PHP source code into highly optimized C++

Твой си++ генерируется из php. Задай себе вопрос почему. Это про фейсбук. Сами они руками веб на сях не пишут, не дураки.

menangen ★★★★★
()
Ответ на: комментарий от slackwarrior

Наверное тебе будет интересно, но я успешно написал простую прогу на обжектив си и скомпилил под виндой. Как .so. Gcc прекрасно собирает objective-c даже под андроид. Открой себе «мармелад» сдк.

menangen ★★★★★
()
Ответ на: комментарий от TrueTsarC

22килостроки на тачку. Ты столько за 2года не осилишь написать.

Ради великой справедливости я взял проект в 23 килостроки по версии SLOCCount и посчитал, сколько реально строк загоняется в компилятор, с учётом всех заголовочных файлов. Получилось 5985673 строки.

i-rinat ★★★★★
()
Ответ на: комментарий от emulek

ВНЕЗАПНО: система сборки нужна для того, что-бы ВСЁ НЕ СОБИРАТЬ.

Причём тут это? Это примитивщина.

Т.е. поправил я один из Over9000 файлов в проекте, нажал F9, запустилась gnu-make, и собрала ОДИН файл.

Зачем ты мне тут рассказываешь всякую херню? Это самое примитивное, что можно только придумать - повторю ещё раз.

Мне вообще это говнище для обезьян не нужно - у меня всё инклюдится в один файл и собирается один файл.

Как долго оно будет ВСЁ собирать — не важно.

Причём тут долго. Тут дело в другом - балаболка мне тут рассказывает, что сишка собирается долго - он обосрался.

В основном ему мифы связаны с тем, что а) крестовая балаболка с одними мифами в башке, б) причём нищая, там серваки за 10бачей, в) нихрена не понимает в теме, поэтому собирается пистон 30секунд - ей кажется, что виновата сишка, а на самом деле конченный econf + однопоточная сборка, ибо руки из жопы. г) Балаболка кукарекает о проектах с мильёна строк, при этом сама за всю свою жалкую жизнь и 10-20к не осилит написать. Зачем кукарекать о проектах совершенно другого уровня?

Это вообще не забота разработчика.

Обезьяны да. Вменяемый человек сделает так, чтобы его проект не пердел в лужу 80% времени сборки.

Если даже собирается он как говно, то и написан как говно 95%.

Тем более честичный всё ровно требуется из-за дебильной системы инклюдов.

TrueTsarC
()
Ответ на: комментарий от menangen

Ты дебил, да? Для уебки есть похапе. Сишка для серьёзных задач.

anonymous
()
Ответ на: комментарий от menangen

Хотстпот на питоне - не проблема.

Очередной эксперт. А почему же пацаны не начали писать хотспот на питоне, либо на жава? Наверное они тупее тебя, я же забыл, что ты эксперт экстра класса.

За меня уже всё сделано.

Вот именно, а т.к. ты ничего не сделал - ты бездарная скриптухо-балаболка.

TrueTsarC
()
Ответ на: комментарий от menangen

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

anonymous
()
Ответ на: комментарий от menangen

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

TrueTsarC
()
Ответ на: комментарий от menangen

вообще-то это был ответ на один из твоих «минусов» сишки (или C++, вообще есть подозрение, что ты их банально считаешь одним и тем же). Конпеляция, да и ненужность в уэбе. А тут, оказывается, что facebook, вполне себе вебня, не только компилит вебню, но и гоняет из php, что как бы не уменьшает время «компиляции». Из чего, как бы, напрашивается крамольный для тебя вывод — нахер не уперлась твоя ява (JS, петон, etc) в серьезных нагрузках. Годится она только там, где можно нанять сотню-другую дешевых индусов и купить «сервер за 10$».

Либо нужно допустить иной вывод: в ФБ сидят полные мудаки, которые не умеют считать свое бабло и время, и не в курсах, что ява - путь к успеху реального посона. Почему-то я думаю, что там далеко не идиоты окопались и уже все посчитали и сделали выводы. Как-то так.

anonymous
()
Ответ на: комментарий от i-rinat

я взял проект в 23 килостроки по версии SLOCCount и посчитал, сколько реально строк загоняется в компилятор, с учётом всех заголовочных файлов. Получилось 5985673 строки.

дай угадаю, boost?

у меня «проект» из ОДНОЙ строки

std::cout << "Hello world!\n";
развернулся на 17 тысяч, чего-же ты хочешь-то?

emulek
()
Ответ на: комментарий от TrueTsarC

Ты там в приступах не бейся, я тебе написал уже всё. Пока ты не выкатишь мне клон slack.com на сях - так и будем считать тебя гадящей си-обезьянкой.

menangen ★★★★★
()
Ответ на: комментарий от anonymous

Да, пора уже анонимусу запустить тесты vert.x против си поделий. И удивиться, что ява сливает в 1.5 раза, но простота и быстрота написания кода рвёт си-мартышкам попки. А уж скорость написания на php или python настолько заоблачная, что сишники даже не в курсе, ибо нихрена не знают ничего нового со школьных времён.

menangen ★★★★★
()
Ответ на: комментарий от anonymous

нахер не уперлась твоя ява (JS, петон, etc) в серьезных нагрузках

Тот же Facebook написан на PHP, Java, Erlang. Это просто для справки.

tailgunner ★★★★★
()
Ответ на: комментарий от TrueTsarC

А почему же пацаны не начали писать хотспот на питоне, либо на жава?

Почему не начали? Начали. И написали. Просто си-обезьянка не в курсе, мозгов у неё мало.

menangen ★★★★★
()
Ответ на: комментарий от menangen

Пруф или не было, ничтожество.

anonymous
()
Ответ на: комментарий от TrueTsarC

Тот же Facebook написан на PHP, Java, Erlang.

Пруфцы

А поищи в гугле. Сможешь?

И что значит написан

Значит «written in».

скриптуха?

Скриптуха там на Python.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

и хацкиле! (на самом деле пока только одна подсистема). И вон датааналитиков, датамайнеров и т.п. для нового проекта чисто на хацкелях набирают.

qnikst ★★★★★
()
Ответ на: комментарий от anonymous

для домашних поделок уже вполне годится.

за это я спокоен и в отношении D :)

slackwarrior ★★★★★
()
Ответ на: комментарий от menangen

но простота и быстрота написания кода рвёт си-мартышкам попки

в C++ есть STL и boost, эти штуки позволяют писать код также быстро, как на php.

Или ты вправду думаешь, что C/C++ программисты для каждого проекта свой MyString с нуля пишут?

emulek
()
Ответ на: комментарий от menangen

Открой себе «мармелад» сдк.

я успешно написал простую прогу на обжектив си и скомпилил под виндой

простую прогу

под виндой (sic!)

А винда тут, конечно, потому, что тебе так захотелось? :)

прибиться к СДК на винде для хеллуворда на обжектив-ц или «написать на нем непростую прогу» под виндой - разница существенная.:)

П.С. «Мармелад» сдк я для себе уже открыл, потыкал... и закрыл :) «Хаб? А зачем? Разработка под виндой? Ну... Ок» (с) Только он так и так слегка не об этом - а об зарабатывании бабла на желании ленивых погромистов прозрачно подтаскивать зависимости (обжектив-ц там именно что «для переноса с iOS на андроид»... «тут есть один нюанс» (с) перенос будет только способом, который заложили создатели «мармелада» - ты упрешься в его ограничения сразу, когда попробуешь сделать что-то нетривиальное...

Заплатил уже за мармелад-то? Нет? :)

(По слухам у них даже есть внутренняя версия мармелада под линукс. Только они ее не покажут, потому что гладиолус) А вот тут они тебе предложат «зоплати-ка за нашу полнофунциональную про-версию» :)).

Аналогичная фигня с C# на андроиде - теоретически можно на основе заброшенной свободной реализации намутить биндинг нужных сборок через жабу... Только усилия будут равны или больше написанию проги заново на сишке или плюсах без C#, а «запиливание биндингов» окупится не быстрее, чем купленная «про-версия готового решения» (на этом построена бизнес-модель «замарина»(свободная версия у них обрезана очень показательным способом) и в «какой-то мере» Unity3D (читал их забавные оправдания, почему для разработки хоть под линукс все-таки нужна винда: «игор под линукс нет, тому що... нету игор под линукс»... Гейб, наверное, не в курсе, занимается фигней).

slackwarrior ★★★★★
()
Ответ на: комментарий от TrueTsarC

Мне вообще это говнище для обезьян не нужно - у меня всё инклюдится в один файл и собирается один файл.

И после этого он ещё что-то вякает на джавистов в стиле:

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

Реально школоло, небось ещё 22.000 строк сводит в файл инклудами самописной приблудой :-D

menangen ★★★★★
()
Ответ на: комментарий от slackwarrior

Ok, на том же D написать .a или .so под линукс/мак/вин - дело часа. Такая кроссплатформа сгодится? А то, что «на них никто не пишет» - это не так. Просто не пишут в вашем окружении. Писать то можно, и никаких проблем с этим нет.

menangen ★★★★★
()
Ответ на: комментарий от emulek

Я сравнивал скорость работы массивов/list в питоне и сишке. Питон медленнее раз в 5-30, в зависимости от ситуации. В моём примере питон отстал в 5 раз. Зато кода на питоне меньше раз в 20. Нафига мне писать в 20 раз больше, если на моей задаче питон слил всего в 5 раз. Тут уже многие тестировали node.js v8 на zlib, так вот zlib на javascript сливает в 1.5 раза сишке. Это что, так много? Почему вы считаете, что питон и жавасрипт такие тормознутые? Это ж мифы. Тестите сами. Даже тормознутосто питона в 30 раз - для меня вообще копейки, мне такая скорость не сдалась для прикладного софта. Какая разница - за 2 секунды выполнится прога, или за 0.5 сек, если её запускают раз в день?

menangen ★★★★★
()
Последнее исправление: menangen (всего исправлений: 1)
Ответ на: комментарий от menangen

Тут уже многие тестировали node.js v8 на zlib, так вот zlib на javascript сливает в 1.5 раза сишке.

А ссылочкой не поделишься? Интересно посмотреть на разные языки. А джава как в сравнении с js?

lazy_aleks
()
Ответ на: комментарий от menangen

не сдалась для прикладного софта

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

anonymous
()
Ответ на: комментарий от menangen

А то, что «на них никто не пишет» - это не так.

А за деньги? :)

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

А то что? Анонимные истерички трахнут белочку?

menangen ★★★★★
()
Ответ на: комментарий от menangen

Почему вы считаете, что питон и жавасрипт такие тормознутые? Это ж мифы. Тестите сами.

ты меня путаешь с кем-то.

emulek
()
Ответ на: комментарий от emulek

Если твоя «сишка» — эталон, то да, многовато.

i-rinat ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.