>>1914169 (OP) Вопрос со звёздочкой, для экспертов B{} X:B {} Y:B { fy(B*) } Я компилирую (X, B) => x.dll, потом (Y, B) => y.dll, загружаю и то и другое завожу себе X ix; будет ли работать по понятиям fy(&ix)?
>>1914233 Потому что ты в седьмой строке кода пытаешься объявить статический массив на стэке, размер которого должен быть известен во время компиляции. Почитай о том, как функции выглядят в ассемблерном листинге и вообще пойми что есть стэковый фрейм, размер которого тоже предопределен заранее, то бишь во время компиляции.
Господа крестовики, учите ассемблер, тогда подобные вопросы вообще не будут возникать.
>>1914169 (OP) Вопрос номер 2, для волшебников Есть class X соурс которого доступен, он компилируется в dll и загружается в программу. Как вычислить все адреса инстансов X?
>>1914751 Никак. Если все инстансы на куче, то можно как-то затрейсить через LD_PRELOAD и свою реализацию маллока (найти все аллокации величиной с этот класс), но это скорее верный способ отстрелить себе не то что ногу, а пах.
>>1914855 Класс можно модифицировать, можно ли в его начале поставить поле с каким нибудь уникальным значением, а потом искать по всей куче все такие значения если нашёл значит следующие sizeof байт сам класс?
>>1914833 Проблема в том, что ты можешь изменить значение этой переменной в рантайме, а это нарушает все вышенаписанное. Объяви x константой и это заработает.
>>1914767 Блять, ты рофлишь? Еще бы попросил реализовать калькулятор, который умеет только в сложение и вычитание. Это умеет делать любой обоссаный даун, который неделю знаком с программированием.
>>1914910 Вообще, по-сути, ты можешь эти апи использовать для реализации, если очень хочется офк, но по сути, dx, vulnan opengl, всё это лишь функции передающие точки/шейдеры на граф ускоритель и в данном случае логичнее использовать апихи которые под это уже прям конкретно заточены https://www.youtube.com/watch?v=bgckX62f4EA вот тут достаточное описание пайплайна
>>1915373 >структуры и алгоритмы Что это значит? Знать, какие контейнеры в стл есть, на чем они реализованы и какая сложность у операций? >с++17 Ничего не значит. Нормальный разраб может у тебя бесконечно глубоко что-то спрашивать, пока ты не обосрешься.
>>1914754 Всё зависит от предметной области, но знать как работают сокеты и как сделать простой беспонтовый чатик используя select/poll/epoll почти везде полезно.
1. Хочу вернуть из метода или функции список или массив каких-нибудь значений, как правильно возвращать? Обязательно ли использовать темплейты, или можно вернуть условно std::vector<MyObject>? 2. Хочу передать массив, список и т.д. в функцию или метод, как правильно передавать? Раньше принимал итераторы, но там геморроя как-то многовато, нужно использовать темплейты. Принимать std::vector<MyObject> не стоит, вдруг пользователь захочет передать вещи из другого контейнера.
>>1915798 > или можно вернуть условно std::vector<MyObject>? Да >Принимать std::vector<MyObject> не стоит, вдруг пользователь захочет передать вещи из другого контейнера. Итераторы
Ананасы, как в QT рисовать в цикле? Задача проста, у меня есть массив, в который из другого треда поступают данные, я написал функцию которая в while цикле проверяет длину массива, и если она больше 0 то рисует. Но Если ее запустить в основном треде, то она его блокирует, а из других нельзя рисовать. Как быть?
Вопрос qt-водам, что производительнее для 2д игры: qtwidget, qraphicsscene, qtquick? Сцена это надстройка над виджетом и вряд ли даст бафф в фреймрейте. Кьюик где то читал по умолчанию open gl использует но можно ли в нем кодить как виджет. QML вряд ли даст возможности реализовать толком всякие анимации итд.
>>1915908 В том что он вызывается только когда просиходит какая то интеракция с гуем, например ты навел мышкой на окно. Если Убрать с гуя фокус и ничего не делать, то апдейт не происходит, видимо в целях экономии. Я по аналогии с игровыми движками пытался найти fixedUpdate, который вызывается каждый кадр например или еще как то привязан, но такого нет. С другой стороны таймер через сигнал позволяет вызывать функцию с жесткой привзякой к времени и из основного треда, что в общем то мне и надо.
>>1915919 Не пробовал, честно говоря, судя по описанию воможно он бы и сработал. С другой стороны, > Warning: If you call repaint() in a function which may itself be called from paintEvent(), you may get infinite recursion. если какой нибудь addLine вызовет ее сам, то получим трудноуловимый дедлок, что тоже нахуй не надо.
>>1915926 Таймер с нужным разрешением и вызываешь update c timerevent другого способа я не знаю. Алсо на вин 7 вроде как при сворачивании таймер останавливается. На 10 и линуксах продолжает работать.
Хочу любой (существующий) путь разбирать на путь до файла и сам файл, соответственно. C++, <filesystem>, жизнь должна быть прекрасна. [code]std::filesystem::path fullpath;[/code] [code]std::cout << fullpath.relative_path().remove_filename();[/code] // здесь по моим ожиданиям должен быть путь до директории [code]std::cout << fullpath.filename();[/code] // тут я ожидаю увидеть только имя файла.
Но когда я делаю [code]filepath = std::filesystem::current_path();[/code] fullpath.relative_path().remove_filename() возвращает мне путь к родительской папке моего рабочего каталога вместо пути к рабочему каталогу, а fullpath.filename() вместо пустой строки возвращает мне название моего рабочего каталога.
Я неправильно пользуюсь <filesystem>? Чего я не осознаю?
>>1916239 Что c++ не для тебя Что filename это то, что написано после последнего /\ Т.е. папка d:\laba считается файлом и после remove_filename останется d:\
>>1916277 > Что ты имеешь ввиду под заставлял? Медленно продвигаюсь в обучении, приходится себя буквально заставлять прочитать какой-то урок или главу. Приятнее писать что-то своё, что интересно, а не реализовывать класс для общественного туалета из книги с методами среньк и пук. В итоге в очередной раз пишу что-то уровня змейки на sdl, пропуская теорию, получается говнокод, незнание синтаксиса (до сих пор не понял многих квалификаторов), стандартной библиотеки и ещё много всего. Как бы есть понимание, что нужно сначала всю базу освоить, Майерса там навернуть и потом уже садиться своё писать что-то, но невтерпёж это всё.
>>1916303 >В итоге в очередной раз пишу что-то уровня змейки на sdl, пропуская теорию, получается говнокод, незнание синтаксиса (до сих пор не понял многих квалификаторов), стандартной библиотеки и ещё много всего. Нормальная тема, я первую книгу прочитал после 5 лет опыта коммерческой разработки
Вот вводится у меня граф в програму. Индексы вершин могут быть до 10^9 по величине, хотя самих вершин до 10^4. Чтобы не хранить огромную матрицу смежности я решил с помощью map индексы вершин конвертировать. Например пусть у меня подаются на вход вершины с индексами 1 10 1342232, а станут 1 2 3. Но map ужасно долгий. Прям ужас. Как это сделать быстрее?
>>1916308 Рассказал про свои поделия, скромненько так, описал, что умею пока мало, но стремлюсь. На следующие работы конечно уже более красиво попадал.
>>1916303 змейку написал - прочитал книжку - написал змейку с классами, в чём проблема? Читая только книжку не научишся. Пять лет в разработке без книжек тоже не самый умный вариант, конечно. Опенсорс пытайся, чужой код читать очень надо.
>>1916321 Просто рассказываешь про курсачи. У меня был сапёр -> приложуха для расчёта стоимости перевозок (смесь задачи о коммивояжёре и о назначениях) -> приложуха для расчёта портфеля ценных бумаг (линейное и квадратичное программирование). Писал не на плюсах. Когда на работу взяли, учил язык с нуля (мейерса, страуса и прочих читал уже потом, причём по диагонали).
>>1916321 Попытки в собственный высоконагруженный udp-сервер, наброски game-engine, всякие хуки для игр, чтоб рендерить дополнительную информацию поверх игрового окна (на основе прочитанной памяти процесса), ну плюс пытался в реверсинг по мелочи. Ну и змейки с крестиками-ноликами (с мультиплеером) и тетрисом тоже писал.
В принципе всё это тогда было говнокодом, но всё равно опыт, о котором можно было рассказывать. Любой опыт подойдет.
Есть ли те, кто совмещает C++ и Android? Или в одном проекте, или и в нескольких небольших в рамках одного. Как это выглядит, где применяется, какие навыки нужны, какие плюсы и минусы? Имею опыт и плюсов (Qt, сеть), разработки приложения на Android, думаю, стоит ли пытаться совмещать или лучше забросить что-то из этого.
>>1916513 > минусы Те, кто пробовал, пишут про скудность крестов на андроиде, мол, как только требуется хоть малейшая кастомизация, выходящая за рамки стандартного, сразу приходится возвращаться к джава-мирку.
>>1916513 Qt как по мне лучший фреймворк для кроссплатформенных мобильных приложений. Но лучше не потому что крутой, а потому что остальные хуже и нативка тащит
>>1916701 >>1916714 >>1916719 мне нужно подсунуть mingwу чужой код с модификацией. уже нашёл что -l, просто я его не в том порядке подавал. это странно, здесь в папке лежит name.lib который IDA воспринимает как AR [archldr_zip64.dll] и выдаёт мне какой то список COFF ов. По идее эта name.lib должна экспортировать методы, но компилятор их не находит. Зато находит в name.dll из другой папки. Что это за AR?
>>1916726 Я нихуя не понял, но видимо тебе нужно скомпилить dll как static link library и потом полученный lib файл передать с ключом -l. Сейчас у тебя lib файл это не сама либа, а её бинарный интерфейс.
>>1916726 Либо линковщик не может найти определения из-за того, что у тебя в либе экспорт делается без extern "C". Если так, то гугли как сделать demangle (вроде какими-то ключами компилятора можно убрать декорирование из определений).
Насколько сложно вкатиться в программиста рендера/графического программиста? Из тех историй что я нагуглил, люди сначала работают обычными C++ девами, потом идут в геймдев работать над геймплеем или движком, и только после этого уже заходят в такую максимально узкую сферу как рендеринг. Это так?
>>1917044 Вакансий на рендер мало, желающих много, особенно среди школоты и студентоты. Простые задачи рендера уже давно никому не интересны - написана куча движков. А для решения сложных задач тебе придётся копить опыт начиная с с++ тугосерьки или через макакинг на других языках.
>>1917044 Вообще никак практически. В российских реалиях - это такой мем. У нас буквально есть пара компаний, кто разрабатывает собственные движки. И даже там - разрабатывают хуету полную и никаким ресерчем там не пахнет. А из-за таких вот вкатывальщиков наивных, у тебя еще и зп будет ниже, чем по рынку и будешь половину времени тесты писать. Максимально безблагодатное дело с пидорашкинским отношением, жалею, что потратил время на такую парашу.
>>1914246 Ребята, сделайте себе одолжение, не начинайте учить плюсы не ознакомившись на хорошем уровне с сишечкой. Огромное количество проблем и недопониманий связаны с тем, что вы кидаетесь в сложные дебри, не разобравшись как все это работает на базовом уровне. C Primer Plus (Prata): Note VLAs Do Not Change Size The term variable in variable-length array does not mean that you can modify the length of the array after you create it. Once created, a VLA keeps the same size. What the term variable does mean is that you can use a variable when specifying the array dimensions when first creating the array.
>>1916698 >>1916538 >>1916518 А по поводу NDK, переписывания частей кода на плюсах и сишке для оптимизации мультимедии или игр что-нибудь знаете? Как часто это используется?
>>1917277 >А до сишечки нужно изучить ассемблер? Нет. Си достаточно низкоуровневый чтобы разобраться с базовыми понятиями, и вместе с тем, достаточно высокоуровневый чтобы собирать программы из концептуальных блоков. Идеален для обучения программированию.
>>1917277 >Какие ещё дебри С++. Это сложный язык, оперирующий сложными понятиями. По вопросу выше о массивах можно с достаточной точностью предположить, что вопрошающий слегка не шарит в базовых понятиях. С++ не лучший выбор для изучения базовых понятий, блоков и структур ЭВМ. Так понятно?
>>1917206 > не ознакомившись на хорошем уровне с сишечкой Путь адекватного человека выглядит так: пишем пару лет на машинном коде, ещё пару лет на ассемблере, полгода сишечку и можно свой первый класс идти реализовывать. Конечно же перед этим всем не забываем подтянуть устройство ОС, архитектуру ЭВМ, элементарную компьютерную, цифровую и аналоговые схемотехники, ну и конечно же теорию электрических цепей и теорию передачи информации, ведь как можно что-то писать, если мы даже не знаем как этот бит формируется. По пути желательно повторить кодирование информации и при желании шифрование. Перед ассемблером ещё нужно алгоритмы и структуры данных тоже повторить, без них никак. Конечно, если ты не заканчивал вуз по специальности прикладная математика, то и все дисциплины оттуда тоже захвати. Без этого в такие дебри как плюсы лезть не советую.
>>1917313 >Кнут с тобой не согласен. Ты скозал Пиздец. Просто пиздец. > Алсо ИТТ Ты прав, я случайно сюда зашел. Я начал с программирования, а потом перешел к крестам.
>>1917314 Вот этот прав. Это мотивация уровня: >А ЧТО БУДЕТ ЕСЛИ Я НАПИШУ ВОТ ТАКУЮ ВОТ ХУИТУ? >Зачем ты хочешь написать хуету? >НЕ НУ ПРОСТО А ЧО БУДЕТ-ТО ЕСЛИ НАПИСАТЬ ХУЕТУ? ЧО НЕ ЗНАЕШЬ? НУ ТАК ТЫ БЫДЛО ИДИ НА ГОДБОЛТ ДРОЧИ АССЕМБЛЕР
>>1917317 Ну я то, в отличии от тебя, книги Кнута по программированию читал и не заметил там ни С ни C++. Если брать вузовское академическое образование, где обучают программированию, то там преподы тоже стараются рассказывать на каком-нибудь псевдоязыке. И только на практических занятиях, которые нацелены на изучения языка, уже да, можно увидеть код. Причём язык зависит от предметной области, на которую ты учишься.
Нихао епты,есть одна лаба, есть ли тут желающие заработать копеечку и сделать её мне. Вот условие,напишите сразу свою цену P.S похуй кто сделает,супер кодер или такой же студент,главное чтобы зачли
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия:
1 ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN;
2 записи должны быть упорядочены по времени отправления поезда;
3 вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры;
4 если таких поездов нет, выдать на дисплей соответствующее сообщение
>>1917347 https://pastebin.com/giAWbvW5 Сортировать по формату времени осилишь? Остальное это красивости при выводе, там понятно должно быть даже по такому говнокоду.
>>1917568 Notes Unlike std::basic_string::data() and string literals, data() may return a pointer to a buffer that is not null-terminated. Therefore it is typically a mistake to pass data() to a routine that takes just a const CharT* and expects a null-terminated string.
Константные ссылки используются где-нибудь или они просто есть, чтобы были? Ссылка же единожды биндится и изменить её нельзя int k = 2; int& const ref = k;
>>1917580 В общем случае компилятор ничего не определяет, потому что ты создаёшь объект в рантайме. Если в конструктор передаётся указатель на строку без /0 в конце, то поведение не определено.
Есть ли возможность отследить, что мув вернул левую ссылку вместо правой? Например от конст референса. Тру стори, нашел копирование вместо мува из priority_queue.top(). Хотелось бы узнать где еще такое в коде может быть.
>>1917619 c) тоже валидно и эквивалентно b). Константная ссылка нужна для инстанцирования шаблонов, при этому самостоятельно руками её писать не нужно.
стасян, нераздуплю какая сигнатура будет у функции, которая аргументом бы получала референс array произвольной длины, и возвращала бы такой/тот же array обратно.
>>1917758 Ну хз. Они раньше ресерчем занимались и всё-равно народ валил стремительно, а сейчас вообще вакансии выкладывают с каким-то фулл-стак вебом и разработчиками тулзов и гуишек. Ты знаешь кого-то, кто там работал/работает не очень давно?
>>1917767 я там работаю лул. Тулзы и гуишки в тегру набирают, а веб - во все на свете. Офис за 3 года вырос в 2 раза по headcount'у, хз кто там валит откуда
>>1917897 Расскажи, там рейтрейсингом каким-нибудь занимаются? Так, что не байты дрочат на gpu, а прям алгоритмами занимаются? Ресерч вообще какой-то есть или нет?
>>1918009 Числа умножаешь как 64х64 в 128 бит. Это три умножения. Редукцию по модулю сможешь ускорить, если модуль красивый (степень двойки - маленькое число). Иначе хз.
>>1918009 решение частной проблемы требует общего решения в данном случае нужно воспользоваться средствами (способами либо готовыми библиотеками) для длинной арифметики
>>1917897 >я там работаю лул предположу что ты тот самый "вкатыш" будь честен на анонимной доске - ведь у тебя нет ни профильного образования, ни опыта работы до этой позиции
>>1918172 >ведь у тебя нет ни профильного образования, ни опыта работы до этой позиции Ты так говоришь, как будто это что-то значит Если ты особенный, как я, то важно только желание и мозги
Анон давай совет. Изучаю С-плюсы, вообщем, все по кайфу. Может пойду в С# потом, может нет. Так вот, вопрос у меня следующий: 1)Нашел годный курс по С++ и по итогу там идет создание игры-приложения(same game) на ебаном MFC. Начал гуглить эту, смотрю инфы мало и на форумах пишут - что MFC это неповоротливый устаревший зверь, не еби себе мозг написанием приложений с помощью этих библиотек. Но я хочу реализовать на С++ какую-нибудь простенькую игру или приложение. Так что мне делать? идти сразу в C# так там проще и быстрее. Или есть какие еще варианты?
>>1918206 Либо готовый 2д движок, либо qt, где ты просто в изображение рендерить будешь всё. Во всякие opengl даже не пытайся, если ты там на уровне днищекурсов каких-то.
>>1918225 Какой ты хочешь функционал? В qt ты можешь просто взять натянуть изображение на формочку и хуячить туда змейку или что-то еще, просто с руки меняя пиксели. Если ты хочешь 3д, то opengl, но для этого нужно на с++ уже хорошо писать. Если ты какие-то там курсы смотришь, то ты скорее всего пока что слишком слаб для opengl. Ну и вообще это сомнительный карьерный путь - дрочить opengl.
>>1918234 >Ну и вообще это сомнительный карьерный путь - дрочить opengl почему? ты про то, что если меня интересует работа с графикой, то opengl не самый лучший вариант? или ты другое имеешь ввиду да я с++ в целом то нормально знаю, сложностей для меня тут нет.
>>1918252 >если меня интересует работа с графикой, то opengl не самый лучший вариант Нет, для графики opengl/directx норм. Но вкатиться в такое суперсложно, особенно без образования. Если ты не восторженный начинающий чел, а уже точно решил, что будешь заниматься графоном, то окей, хуячь opengl. Иначе - подумай дважды.
>>1918267 >особенно без образования какое тут еще образование то надо? кодинга не достатчно чтоли? что там еще емое знать надо. понятно, что математику и тому подобное я знаю
>>1917924 400к оклад и пачка акцией ежегодно, которые в среднем капают по 300к в месяц на руки
>>1917944 Да, есть команда которая занимается именно рейтрейсингом, но, вестимо, это небольшой кусок штатовской команды
>>1918172 >будь честен на анонимной доске - ведь у тебя нет ни профильного образования, ни опыта работы до этой позиции Опыт был (иначе как бы меня взяли сениором), а образование не нужно. Ну послушал бы я 5 лет, как старые пердуны меня паскалю учат, что бы изменилось, кроме проебанных 5 лет.
>>1918225 Анон, попробуй SFML лучше, можешь даже исходники почитать и разобраться, там сверхсложного ничего нет и в случае чего можешь свои хедеры типу вектора2д писать, конкретно под свои задачи. Для базового GUI можешь ImGUI взять, тоже легко достаточно встраивается в SFML и с ним работает отлично. Вот тебе и готовый набор для грейда своих скиллов, где ты будешь реализовывать исключительно логику, а свой GUI тебе в любом случае пилить придётся немного, если меню будешь делать. Параллельно ещё шейдеры зацепишь точно, а через них в OpenGL на базовом уровне разберёшься и успеешь даже распареллить это всё. НО, если тебе нужно конкретно приложение, с выпадающими меню там, списками, текстовыми полями и прочим говном, то бери Qt. Но конкретно изучать его как-то смысла нет, там формошлёпка в основном через хорошо описанную документацию, где примеры покрывают 90% задач.
Сап двач, работаю на госпомойку, пишу говнокод на Qt. Есть ли смысл продолжать изучать Qt или лучше учить чистые плюсы (в т.ч. буст)? Смотрел год назад по hh в Москве, большинство вакансий было в таких же госпомойках с пределом в 80к рублей.
>>1918496 Ну вот при изучении STL и новых стандартов плюсов я сталкиваюсь с тем, что в Qt это уже все давно реализовано, в некоторых случаях даже удобнее. Приведу тривиальный пример: зачем мне знать, как работает std::vector, если у меня есть более удобный QVector (или QList, если похер на расположение элементов в памяти)?
>>1918496 Тут чел выше советует SFML. С ним реально закреплять знание чистых плюсов или лучше дальше задачки с выводом в консоль решать? Что-то с графикой должно интересней быть.
>>1918481 спасибо тебе няшка, держи печеньку. можешь тогда дашь еще совет, после того как я грубо говоря изучу базовый курс С++ (а я его уже изучил, сейчас повторяю основыне моменты) так что мне следует начать изучать дальше? у меня по курсу дальше идут: 1)OpenGL 2)CFML 3)Qt5 4)RegExp и т.д. Если ты меня спросишь, а чего я сам хочу?. я не знаю, ну наверное отвечу банально - какие-нибудь игры. я не могу точно сказать, так как я ничего сложного и серьзного еще не кодил, а всякие сортировки массивов, рекурсии и т.д., вещи конечно полезные но...
>>1918577 > базовый курс С++ Для начала, что такое базовый курс?
> что мне следует начать изучать дальше? C++, C++ и C++. Поверь, тем для изучения там много. А что делать параллельно уже сам решай, ниже подробно опишу.
> 1)OpenGL Заходишь на learnopengl.com, проходишь пару туториалов - зашло, продолжаешь, нет - дропаешь. > 2)CFML Берёшь и сразу пишешь по примерам, там всё максимально просто описано в документации. Можешь ещё туториалы глянуть. Если не знаешь как лучше всю эту дрянь в ООП-стиле оформлять, заходи на гитхаб и читай чужой код. > 3)Qt5 Будешь как анон выше -> "зачем мне знать, как работает std::vector, если у меня есть более удобный QVector". > 4)RegExp и т.д. Сразу нахуй и даже не вспоминай.
Анонче, если тебе нужно изучать чтобы да кабы, то душные темы тебя только к дропу подвинут поближе. Вот прямо сейчас скачай UE4 и сделай что-то на блюпринтах по туториалам, потом тоже самое перепиши на крестах. Сами кресты не забрасывай только, попиши всякого на SFML или SDL2 (лучше первое), задачки на алгоритмы порешай, Мейерса почитай, развлекайся с пользой в общем, вариантов много, зазубрить книгу на 1300 страниц с первого раза никому не удавалось, а оно в принципе и не надо.
Если хочешь писать именно простенькую игру, а не приложение, к qt лучше не прикасайся. SMFL, что тебе советовали, норм тема. Если хочешь еще больше фана, то попробуй raylib, правда либка сишная, но это не сильно страшно.
А это точно удобно? Это на полном серьёзе асм-инструкция выдаёт результат как си-код в 3/4 столбцах и умные дяди разрабатывающие процессоры решили именно такую логику в области нуля сделать?
Есть адекватный способ получить равномерные 0-1-2-0-.. в остатках без особых костылей вроде приведённого мной?
>>1918684 А это нормально что-то брать из туториалов и доделывать? Хочу запилить свои шахматы, нашёл на ютубе видео на эту тему с кодом, который можно ещё с десяток раз улучшить и на классы разбить. Или прям с нуля нужно пытаться делать?
>>1918707 a%b == r <=> a == (a/b)*b+r Отсюда и отрицательный r при отрицательном a. То есть это просто побочный результат выполнения целочисленного деления, который решили сделать оператором языка. >А это точно удобно? Я и не помню, когда приходилась делать modulo от отрицательных чисел, так что это вообще не проблема.
>>1918746 Но для питоновских результатов указанные тобой правила соблюдаются тоже. >когда приходилась делать modulo от отрицательных чисел Да по идее постоянно, намного чаще вот эта фигня, где mod выдаёт 5 нулей, а выше и ниже по 1 единицы. Я рисую сетку координатную, и нужно каждую десятую линию нарисовать жёлтым. Так там из-за этой фигни клетки на 1 съезжают с другой стороны координатной оси, нужно abs лишний ставить.
Иначе говоря, ты сможешь назвать хоть одну задачу, где требуется си-поведение, а питон-поведение не подойдёт? Мне что-то ничего в голову не приходит.
>так что это вообще не проблема Да понятно что можно свою функцию поставить и хуй с ним со стандартом языка, но цикличные остатки от 0 до n-1 были бы в разы логичнее и не ясно почему хотя бы на уровне асм-инструкции так не сделали.
>>1918360 >Опыт был (иначе как бы меня взяли сениором), а образование не нужно. Ну послушал бы я 5 лет, как старые пердуны меня паскалю учат, что бы изменилось, кроме проебанных 5 лет.
Блять, вот ты разговариваешь ирл с людьми, кто там работал - и все говорят, что оттуда съебали в ужасе и работают сейчас в сильно менее престижных компаниях, что как-бы намекает на то, что они не пиздят. Люди с топовым образованием, которые годами жестко дрочат предметную область. Которые несмотря на это рассказывают, что там супер сложные собесы, где нужно знать всякие детали нвидевских архитектур и что почти нереально вообще туда прийти просто так с хедхантера. Рассказывают, что это жесткая галера, с постоянными жесткими переработками, где люди на управляющих позициях специально перекидывают тебя с проекта на проект, чтобы ты в их технологиях очень сильно не разбирался и так далее.
А потом приходишь на двач, в тред, где 95% постеров - это студенты, спрашивающие хуету и отвечающие хуету И ВДРУГ читаешь охуительные истории, диаметрально противоположные тому, что слышал. >ряяя абразавании нинужна ряя нвидия нвидийа где работаешь так нвидия же 700к палучайу лучшее места ряя нвидиа Блять, да будь ты в несколько раз хуевее того, что ты рассказываешь о себе, ты бы всё-равно даже не сидел бы тут. А если бы и сидел, то точно не писал бы хуету про мне лидить проекты дают ряя сасать. Я не представляю, каким нужно быть имбецилом, чтобы заниматься таким. В конце концов, там проекты-то можно по пальцам посчитать. Даже анон с двача смог бы тебя сдеанонить и набить ебало возле офиса. Так что просто съебни нахуй, старина, делай там свои лабы с закрытым ебалом и не пиши хуету в тред.
>>1918843 да мы давно выяснили что ему повезло оказаться в нужный момент, а другие задроты в нвидиа втихаря угорают с него какой из него cpp программист, он там тупо visualstudio настраивает чтобы проэкты лучше собирались!
>>1918815 > Да понятно что можно свою функцию поставить и хуй с ним со стандартом языка, но цикличные остатки от 0 до n-1 были бы в разы логичнее и не ясно почему хотя бы на уровне асм-инструкции так не сделали. Инструкция тут не при чем (скорее всего, остаток на константу считается умножением). Это традиционное поведение из 70-х, когда делали как проще.
>>1917044 Только по большому везению. Ибо, как и сказали, у нас полторы конторы занимаются чем-то таким. И из них ещё большая часть - чистый гейдев, где работать можно только из большой идейности или если ты ультимативный сеньор-помидор с тайными знаниями. В остальных случаях - зп ниже средней, переработки как норма. Ну и отзывы берешь: сабер - уебки, варгейминг - уебки, и так далее. Похоже, единственная норм контора - юниджайн, ибо не геймдев, а движло пилят. Меня оттуда, конечно, попросили, ибо слишком говнокодер оказался, но пока был в офисе успел атмосферу понять. Тут можно и всю жизнь спокойно вджобывать - задачи интереснейшие, уровень разрабов высокий, контора небольшая и отношение нормальное. Подытоживая: геймдев - зашквар, хочешь чем-то околографическим заниматься - ищи неигровые продукты типа тренажеров, картографии, всякой хуерги для визуализации данных.
>>1918974 Наоборот вообще-то. В ДС есть только гайджины и мейлру. В обоих местах занимаются говном точно так же с переработками и инфантильными дебилами в лицах коллег.
>>1919402 >>1919600 Соберу братву из отдела алгоритмов Яндекса + из кружка по спорт программированию, подъедем на ё-мобилях поясним вам обоим, опущенцы ебаные, за 20 стандарт
Пришлось просмотреть журнал с самого начала, с 2003 года. Удалось зацепиться вот за это (его читатель намекнул на игрушку Mercenaries) https://kunaifusu.livejournal.com/116882.html
Далее все было просто. И вот здесь было такое ощущение, как будто забрался в синагогу и прочел тайное имя бога. Т.е. видно было, что чел прошареный, но такого не ожидал.
Нашелся некто Basil Milanich, выпускник МГУ (про МГУ в журнале где-то упоминалось). В 2012-2020 годах в Sony ICE team - это что-то вроде внутренней группы сони-экспертов в составе Naughty Dog, привлекаемых для допила блокбастеров. Есть в кредитсах практически всего, что выходило хитового на сони в указанные годы. Недавно ушел в HFT.
Подробности биографии достаточно точно совпадают с контентом журнала
Одно время имел более приличный бложик https://bmilanich.wordpress.com/ Он, оказывается, немножко лиспанутый. Некоторые постинги развивают на записи из основного журнала, например
... Стотья и каменты в хакерньюз доставляют. Пока Кармаковские кракозябры (это кодом назвать сложно, разве что в смысле "код Да Винчи") продаются и вызывают ахи и вздохи хипстеров я на хлебушек смогу заработать...
... Кармак же, со своим программированием на уровне шестиклассника ...
... Там куча проблем с перформансом и с логикой ...
... Кармака наняли потому что народ, далекий от индустрии, считает его ацки умным visionary в нашей области. Все что я знаю о Кармаке это: он не верил в shadowmaps и боролся с ними как с бесперктевным алгоритмом (в 99.99% игр сейчас используют shadowmaps), он в развное время писал код для люминографа, вокселей и прочей хуйни, он написал "мегатекстуру" и рекламировал ее лет 5, пока все не увидили игру на ней. Каких либо других достиженей я за ним не припомню. ...
разное, интересное, нашел сейчас
Аноним24/01/21 Вск 12:19:42№1919856227
Тут мне в другом посте рассказывали про то как не хочут писать код для GPU из за того что нужно писать многопоточно и я сначала не понял вообще о чем речь. Только потом до меня дошло, что у песишных программистов есть такая серьезная профессиональная деформация.
Дело в том, что орхитектура х86 (да и остальные более или менее популярные архитектуры от Интела) никогда не поддерживала многопоточность. Даже убогая двухпоточность на некоторых процессорах спрятана от программиста и используется для симуляции двух процессоров в одном. Все тысячи тредов, что Виндуз показывает в таск менеджере - это никакие не потоки, а самые настоящие процессы. Многопроцессность там есть, многопоточности - нету.
Разница простая - процессы это сущности ОС и живут они по правилам ОС, а потоки - это сущности CPU и живут они по правилам CPU. Например, я хочу написать программку, распечатывающую файл с диска на принтере. CPU не знает нихрена ни про какие файлы, ни про диски и, тем более, про принтеры. Тут мне многопоточность не поможет. Тут как раз работа для многопроцессности - в одном процессе буду читать файл а в другом печатать, между ними - пайп построю и будут они ждать файл, принтер и пайп так замечательно, что пока один процесс ждет, другой может какую-то работу делать. А вот захочу я перемножить пару матриц - тут наоборот, ОС нихрена про матрицы не знает, за то процессор знает все и про память, и про кэш и про ALU. Тут надо бы запустить кучу потоков, чтобы каждый считал свой элемент произведения. Большая часть будет будет висеть ожидая кэша, а пока они ждут - другие работают. Принцип многопоточного программирования простой - все циклы заменяем потоками. На каждую итерацию цикла - поток.
Но на х86, конечно, так не получится. В лучшем случае там можно отрастить процессов по числу ядер и каждым считать часть матрицы произведения. Что, конечно, не rocket science, но принципиально сложнее тривиального многопоточного алгоритма. И, главное, из за накладных расходов на создание и синхронизацию процессов, медленнее тупого последовательного алгоритма для достаточно маленьких матриц. Вообще, для любой задачи, не связаной с доступом к объектам ОС, создавать больше процессов чем ядер нельзя, потому что производительность просрется на дележ одного процессора между несколькими процессами. Да и с оптимальным числом процессов можно обломиться - процесс вещь тяжелая и дорогая, чтобы его запускать по любому поводу.
Оказавшись на многопоточной архитектуре, программисты, деформированные х86, относятся к потокам как к процессам на х86, бережно и осторожно. Вместо того, чтобы раскручивать как можно больше простых потоков они мудрят схемы, где число потоков минмизируется за счет усложнения логики внутре потока. Мало того, что это работает медленно, это еще и писать муторно и долго. Но по-нормальному не получается, на то она и деформация.
>>1919856 Какие-то ужасные каменты написали люди, непонимающие разницу между процессом и потоком. Но в общем не их это вина - Майкрософт придумала свои "потоки" чтобы не травмировать тонкую индусскую душу fork()ом и выросшие на этом программисты даже не подозревают, что там внутре течет и куда.
Процесс это контекст с точки зрения ОС - там лежит все чтобы выполнять программу: PC, стек, намапленая память и прочия дескрипторы. Поскольку ОС сейчас все многозадачные, они, естественно, умеют переключаться между этими контекстами. Переключение между процессами на одном PU - процесс долгий и тяжелый, но и необходимый, так как в целях безопасности сама ОС является процессом и любой ее вызов вызывает такое переключение. Виндовые "потоки", как и посиксные pthreads это просто шорткат для создания процессов, в основном отличающихся только стэком и PC.
Поток это контекст с точки зрения процессора. Поскольку процессор куда проще ОС, ему много не нужно - там лежат регистры включая PC, стэк, намапленую память и всякие внутренние состояния. Переключение между потоками ничего не стоит. Можно хоть каждый такт переключаться, что обычно и происходит в многопоточных процессорах. Т.е. если мы запустим два потока, состоящих из NOPов, то каждый будет выполнятся как будто он единственный поток на процессоре с половиной частоты. Однако с нетривиальными потоками все гораздо интереснее. Встретив инструкцию, которая требует ожидания какого-то условия (например ждет данные из памяти) процессор просто перестает переключатся на этот поток, пока условие не выполнится. За счет этого несколько потоков одновременно выполняются быстрее чем они же последовательно за счет сокращения времени простоя процессора в ожидании памяти. Естественно, что такое поведение многопоточного процессора не повторить на однопоточном никакими ОС и никакими явами. Программными средствами невозможно переключится из зависшей в ожидании инструкции.
Долгое время ждущих инструкций в микропроцессорах не было. Инструкции всегда что-то делали и не ждали без толку. Только в 90х годах прошлого века появились процессоры с асинхронной памятью и инструкции стали ждать память. Но вместо того, чтобы просто сделать Пентиум многопоточным, Интел, наученный горьким опытом с 486ым (который был медленее 386 на коде, оптимизированом для 386), пошел по "суперскалярному" пути. А то какой-нибудь Дворак запустил бы свой любимый Word 5.0 на новом Пентиуме и не увидел никакого ускорения, было бы нехорошо. С точки зрения абсолютной производительности, суперскалярность/OOE даже рядом не стоит с многопоточностью/SMT, однако позволяет ускорить однопоточный код, единственный важный критерий для Интела в то время. Опять же, наверное тогда думали, что память скоро догонит процессоры и это только временная проблема, хе-хе.
>>1919858 Посмотрел Вулкан, сэмпл рисующий треугольник - больше 1000 строчек. Больше 1000 строчек, Карл! как теперь принято говорить. У ДХ12 получше чуть-чуть. Наконец-то можно строить коммандные буферы из разных тредов - всего-то лет 10 прошло с тех пор как одноядерные процессоры перестали делать даже для лэптопов. Однако до консолей все еще далеко.
Самая главная проблема песишных API это компиляция шейдеров в рантайме. Во-первых это занимает время, а во-вторых рантайм компилятор не может соревноваться с уровнем оптимизации офлайн компилятора. Для примера, НВидиевский компилятор для PS3 сосал настолько, что делая инвариантные изменения исходника (добавляя 0 и умножая на 1 разные значения) можно было получать сильно разный код. Но для PS3 это не проблема - запустил процесс на выходные, который перебирает тысячи пермутаций каждого шейдера и выбирает самый лучший код и готово. На песи тот же компилятор работал в рантайме даже не пытаясь ничего оптимизировать. Еще на той же PS3 - у пиксельных шейдеров не было константных регистров, константы реализовывались через модификацию кода. На PS3 просто патчился бинарник, а вот на песи, подозреваю, патчился IL и перекомпилировался. В результате PS3 могла делать десятки тысяч ДИПов, а песи дох на тысяче с тем же ГПУ. В новых API эта компиляция никуда не делась (хотя проблемы с ней на современном железе не такие же как на PS3, конечно, но принцип тот же).
Вторая большая проблема - биндинг параметров для шейдеров. Слоты, имитирующие регистры видеокарточек 90х годов прошлого века, наконец-то ушли, но замена не на много лучше. Я так понимаю все теперь связывается фетч шейдером (раньше только вертексбуферы). То есть теперь фетч шейдер вызывается на каждой стадии, а не только вертексной. Это, конечно, разгружает CPU но за счет дополнительной нагрузки на GPU. На консолях можно обойтись и без слотов, и без фетчшейдеров (даже в вертексной стадии).
Ну и, конечно, поддержка многозадачности никуда не делась. Каждый раз, когда переключаются контексты, нужно востанавливать все состояние ГПУ, а для этого его нужно постоянно копировать в память. Хотя бы сейчас в этом появился какой-то смысл, так как не только игры используют ГПУ. На консолях можно пользоваться хардверными контекстами, так как никто не будет запускать 1000500 клиентов.
>>1914169 (OP) Почему великий Бьёрн Страуструп не запилил себе до сих пор нормальный сайт? Его сайт по прежнему выглядит как кусок гавна из начала 90-ых?
>>1919858 Аха, узнал kunaifusu по его высерам. Он годами не меняется, пишет одну и ту же хуету. Это ж у него как раз профдеформация: он геймдев, пишет под платформы с дерьмовыми cpu уровня бюджетного ноута, и вытягивает недостающее ковырянием с железками.
Если по пунктам, то всё плохо.
С x86 всё збс - до выхода ps3 с его уёбищным cell другого способа писать код в мэйнстриме и не было, даже на консолях. Шейдеры времён dx9 не считаю - уж очень они были ограниченны. Учитывая, что gpgpu по-прежнему не стоит усилий в 99,9% софта, у него получился целый пост надменной хуеты.
fork в никсах - это как раз способ сделать вид, что никакой многопоточности не существует (достаточно посмотреть, как пишется код на node, python, php), в то время как даже кодеры на win95 уже познали всю боль примитивов синхронизации. Более того, этот пиздобол всё переврал - именно fork создаёт отдельный процесс, копируя память и дескрипторы, а виндовые потоки всегда работают внутри уже существующего процесса.
Для vulkan нужно не 1000 строчек, а гораздо, гораздо больше - к нему нужен ещё менеджер памяти. Но при этом он позволяет писать охуенно адаптивный код: тот же doom eternal может на минималках ползать на нищебродском apu атлона, а может дать жару на rtx 3090, в то время консольный код живет от силы 5 лет и потом выбрасывается, потому что между ps3 и ps4, например, изменилось вообще всё. Про переключение контекста gpu тоже смешно - начиная с 4-й плойки в консолях те же самые операционки (фряха и винда) и те же самые gpu.
В общем, не вникая в вопрос, можно обосрать всё что угодно, и конкретно этот поцыент себя показал недалёкого ума выебщиком. А ведь лет ему на момент поста, кажется. было уже за тридцать.
>>1919978 Это еще ладно, его личный сайт - может хоть ЦП постить
А вот что касается сайтов некоторых крупных проектов и организаций, к примеру slackware,minGW - то это реально пиздец. Неужто люди, способные разработать такого уровня вещи, не могут нашлепать что-нибудь более-менее приемлемое на всяких джс сиесес (хотя бы чтобы фейспалм не ловить при входе на главную страницу)? Возможно не хотят шквариться о петуховские языки, но есть же вордпресс к примеру: поставить, 5 минут понастраивать, и уже лучше было бы.
>>1919978 >>1920053 Потому что нахуй не нужно никому кроме зумерков. Веб развивался в научной среде и вообще задумывался как интерактивные документы с ссылками, но в PDF-ках и DOC-ах никто на Д И З А Й Н не дрочит, а в вебе с какого-то хуя должны, блять.
>>1919985 хуй знает, я конечно ни практик нихуя, но просто прочитал книжки рихтера и еще windows internals либо он пишет о том что сильно выходит за рамки моих представлений, либо он пишет какую то несвязную чушь
>>1919978 Потому что он может, но ему лень разбираться в css, html и прочое поеботе. Если он захочет то высрет годный дизайн, но это время тратить нужно, а ему похуй.
>>1920312 Бьёрн Страуструп же сказал что это нахуй не надо к тому же мода на дезигн проходит быстро и хули постоянно говно сайт перепиливать? А его знания вечны.
>>1920318 Бьёрн Страуструп сказал что если тебе уёбку нужен крейтив дезигн то милости прошу запили ему, а потом пишли свою говновёрстку, он вставит её себе на сайт
Аноны, есть кто из питерского wargaming ну или другого? Если да, то расскажите как вы туда устроились, какое было собеседование, какой был опыт и можно ли туда вкатиться без опыта работы? Речь идёт о плюсах.
>>1920377 А ты сам как думаешь, возьмут тебя в топовую компанию(на самом деле такую себе), когда ты нихуя не умеешь и сейчас 2021 год на дворе, когда вкатывальщик каждый первый? Я уже не говорю о том, что там начальных позиций вообще нет скорее всего. Полистай на линкедине чуваков, что там работают. Там любой нормальный разраб будет иметь образование пми и нормальный такой опыт работы.
Бля, я вот тут смотрю. С этими вакансиями, работами, задачами, издевательствами. А почему мы сами не можем начать зарабатываь на наших навыках погромирования? Что веб дебилам мешает лично пойти в подслушано своих мухосраней и написать там что они пилят сайты на заказ?
Что собственно придурку который кресты выучил, бомбанул и сейчас вкатывается в монтёры кабелей мешает написать игру на собственном игровом движке?
>>1920442 >Что нам всем мешает то это делать? То, что ты нищеброд без скиллов. Какую ты блять игру собрался делать на собственном движке? Если ты такую хуйню пишешь, то скорее всего ты ни движки не писал, ни игры.
А даже если бы это писал сеньёр-помидор и самый охуенный разраб, что только может быть, один хуй без денег или многих лет работы в соло без каких-либо денег ты ничего не сделаешь. А если даже сделаешь, очень-очень малый шанс, что что-то там взлетит.
>>1920442 Нужны скиллы кабанчика, рамсить с недовольными клиентами, ты можешь потратить кучу времени, годы и выхлоп будет "пук", а если что-то начнёт выгорать финансово то нужно будет это оформлять срочно, регистрировать т.к. иначе тебя просто выебут органы пыньвласти. Подводных дохуя. Нужно быть ёбаным в сраку гением уровня торвальдса и то его гавно не взлетело, оно просто сделало его известным что работодатели увидели его.
>>1920449 А что не так? Для тебя написать движок для игры это так сложно?
Алсо, ну хуй с ним не шарю в вашем гейдеве, ну сайты то пилить это проще. Неужели здесь нет анонов которые для различных кабанчиков согласятся веб хуету пилить?
Так, пацантре, нуб опять врывается итт. Что происходит с объектом класса "a" в данном случае? Путем эксперимента додумываю что при переназначении переменно test из класса b вызывается деструктор a и a сваливает нахуй со стека. Верно?
>>1920452 >Для тебя написать движок для игры это так сложно? Чтобы написать движок на уровне движков, которые есть, ты потратишь годы.
>Алсо, ну хуй с ним не шарю в вашем гейдеве, ну сайты то пилить это проще. Проще конечно. Фриланс называется. Каждый второй этим занимается. О чем ты вообще?
>>1920441 Частенько вижу у них появляются вакансии на интерна, вот интересно стало что они там спрашивают, не сказал бы что я нихуя не умею, читаю книжки про движки, графику, делаю игры, движок, пишу шейдеры.
>>1920456 >>1920457 Блять, я перепутал ваш тред с "Мы вам перезвоним" прошу прощения господа, я утром задал вопрос про всратость сайта страуструпа и всё. Прошу прощения
>>1920457 > Чтобы написать движок на уровне движков, которые есть, ты потратишь годы. Причём нужно быть не вкатышем-одиночкой, а сеньором с командой из 10+ разрабов.
>>1920455 и еще как заставить здесь запретить создание объекта, например в конструкторе я хочу его детально создать а тут просто обявить переменную типа. Догадываюсь a() = delete; в определении класса a
>>1914169 (OP) Анон, ебу куда писать, нагуглить не удалось. Надеюсь вы знаете как эту хуйню пофиксить. В общем мне visual studio long double какого-то хуя округляет. Мне надо прощитать с точностью в 20 знаков после коммы а оно на 16 знаке какого то хуя заканчивается. Как фиксить?
>>1920455 При создании обьекта класса b, вызывается конструктор для обьекта класса a, потом в .create ты вызываешь оператор перемещения (A&&, т.к. результатом a() является prvalue). Потом когда b выходит из скоупа - деструктор вызывается.
>>1920469 Сделать конструктор приватным, и вызывать его либо из статического метода, либо из friend-функции
>>1920462 ну хз, судя по выхлопу при каждом create сначала вычисляеться новый объект и исполняеться его конструктор, а после присваивания вызывается деструктор предыдущего объекта.
>>1920476 >void coding >cum_freq >>1920469 в смысле объявить переменную типа? указатель только можешь сделать, иначе она инициализируется все равно каким-то конструктором.
>>1920442 >мешает написать игру на собственном игровом движке? конкуренция среди поделий инди-разработчиков страшная вообще то сегодня по соотношению трудозатраты-окупаемость выгодней наверное на паперти стоять, а не делать инди проэкт
>>1920514 Да там ничего сложно, он преимущественно хеадер-онли, просто скачиваешь и распаковываешь его, затем компилятору указываешь папку инклудов буста и можешь уже юзать, читая доки на нужную тему.
>>1920534 Так в этом и суть, хорошее качество игры достигается за счёт самописаного движка на сях. Я не гооврю о том чтобы написать какой-нибудь ёба универсальный движок на современный лад. А тупо пилить это всё под конкретную игру на один раз. То есть одноразовый движок для одной игры как кстати и делали раньше.
Он даст преимущества и в оптимизация и в других штуках типа того что игрового процесса т.к. ты как угодно его настроить можешь. И здесь школота и студенты на юнити соснут хуйцы
>>1920540 я о том что сегодня уже есть относительно развитые средства прямого финансирования (кикстартер, патреон, ранний доступ в стиме, etc), и многие инди-проекты уже заполнили пустующие ниши сегодня уже есть игры почти под любой вкус взять, к примеру, песочницы довольно трудно будет конкурировать с факторио, террарией, oxygen not inluded и другими хотя вроде бы довольно нишевый жанр, но он уже заполнен
>>1920540 Качество игры вообще не коррелирует с движком и тем более языком. (Точнее коррелирует обратно - пока ты рожаешь велосипед, ты не создаешь контент, графон, уровни и так далее)
>>1920578 Не так он прав на самом деле, что в идеале под каждый вид игры свой движок напильником заточенный пилить надо. Но суть в том что в современных реалиях на современных мощностях это реально нахуй не надо. Учишь готов движок и клепаешь своё гавно. Здесь проблем будет больше с созданием текстур, 3д моделей и прочей поеботины что для с++ господина равно выстрелу в голову.
Аноны. Читаю спецификацию к библиотеке GLVW вот на картинке мы описываем структуру и какие функции могут с этой структурой работать. что значит typedefs? что мы тут объявляем и зачем? то что ниже про функции я понял
>>1920609 Объявляем типы указателей на функции, чтобы не писать в сигнатуре каждой функции непонятную хуиту в духе void func(void (⚹⚹f)(int, int)) { ... }
>>1920663 Ну я тащем-то осилил страуструпа, прочитал от корки до корки книжку на 1400 страницу. Только на многие упражнения забивал.
Да не у меня с базой всё норм. мне просто в мы вам перезвоним треде сказали что меня заворачивают из-за отсуствия технической вышки. Я не хочу перекатываться в веб меня тошнит от него нахуй, хочу на плюсах писать
>>1920661 Тут дело не в том, что в универе тебя программировать научат. Просто на плюсах чистых никто почти ничего не пишет, либо пишет какое-то говно. Обычно с плюсами вместе идёт какая-то большая предметная область, которую ты сам, конечно же, не изучишь, либо изучишь очень хуево. Если пойдешь формочки клепать на кьютэ - универ не нужен, да, формально, хотя это всяко будет тебя хуево выделять на фоне других кандидатов. Если пойдешь компьютерную графику дрочить или компьютерное зрение или любую другую область - то без универа тебя сходу нахуй пошлют вообще без сомнений.
>>1920674 Да, я их уж вбрасывал в соседний мы вам перезвоним, сказали что это хуета.
Проекты такие: 1. Консольная змейка на чистом си 2. Программа с гуи на cpp которая работает с данными из таблиц, строит графики по методу наименьших квадратов и выводит функцию графика. Ну плюс там возможно сохранение данных или загрузка их.
Да я думаю дело не в гит проектах, на гите чё-то 1 просмотр у меня да и тот мой его даже не смотрит никто
>>1920677 блять напиши что вышка у тебя есть сделай норм проекты, чтобы показать диплом твой даже смотреть не будут (в 90% случаев) когда спросят, прямо так и скажешь, что наебал, а хули еще делать то было? ну а дальше как пойдет.
>>1920678 >>1920677 >>1920690 Советую тебе сделать что-нибудь на qt, написать резюме нормальное в стиле "охуенно знаю qt, cpp 14/17, stl, компьютер саенс, бд" и аплаиться на не сильно охуевшие вакансии. Мб во что-то отечетственное. Похуячишь там год - найдешь работу получше.
На всякую велосипедную хуйню советую тебе не размениваться и не слушать местных дурачков про рендеринг всякий, иначе работу не найдешь вообще.
Ну или другой стак бери, да. Не обязательно же там веб какой-то, да и веб вебу рознь. На каком-нибудь дотнете тоже норм работается.
Ну и наебывать не надо, что за бред вообще. Ладно там дописать еще, что пару месяцев неоффициально работал или фрилансил или лабы делал студентам или около того, но прям пиздеть - ну такое себе.
>>1920690 собеседование = контакт Я на обе работы на которых норально платили устроился хотя вообще не подходил по требованиям. Помню поехал, чисто потому что случайно рядом оказался. Как итог несколько собеседований, плюс одно на английском лол. Ну и взяли, я потом спросил у своего непосредственного начальника как так то, ты же говоил, что были ребята гораздо сильнее меня. Он ответил, тут никогда не знаешь как оно будет и так анон везде. Вообщем создай топ резюме с вышкой! И твоя задача уже начать гонять на собесы. Вот поверь, за неделю найдешь. Я блять хз как это работает. Но у меня два раза так и было. Причем конторы серьезные и несколько собесов и везде я сильно проседал и даже задание завалил. Это лотерея, ебашь и все
>>1920693 После плюсов есть преимущество в том что на что угодно можно переучиться без задней мысли, т.к. сложнее ебалы чем эта не найти. Ну и если он по книжке страуструпа учился и то лучше, т.к. он очень много общих и тонких деталей реализации любого яп объясняет.
Вообще я бы советовал тупо на java или c# какой-нибудь переучиться.
>>1920700 Да не особо, на самом деле. Даже на какой-нибудь C# пересаживаться не особо удобно. Да, он будет легче в том плане, что там нету всякой ебли низкоуровневой, но это тебе не в плюс. Код писать проще, да. Но знать там нужно другие вещи. И фреймворки другие и всё остальное.
Но если бы мне нужно было куда-то соскачить, я бы на C# соскачил, да. Но я его и знал когда-то неплохо, поэтому может я biased.
Вот этого не слушай >>1920698 . Я бы послал нахуй такого пиздабола. Абсолютное неуважение и собственно неслабый такой пиздеж по своей квалификации. Лучше готовься просто к конкретным вакансиям. Прям сделай себе на hh несколько резюме и отправляй так, чтобы совпадение по скиллам было полностью или около.
>>1920712 Да я тоже думаю что он пиздит, хотел попросить пруфы, но решил не скатывать тред. Да и манера письма как у школьника самоуверенного который щас вот вузик закончит и всех наебёт и поимеет я был таким же
Ты предлагаешь мне с двух аккаунтов резюме отправлять типа чтобы шансы повысить?
>>1920715 >Ты предлагаешь мне с двух аккаунтов резюме отправлять типа чтобы шансы повысить? Нет, в смысле сделай несколько просто, которые будут чутка отличаться. Если апплаишься на позицию с qt, отправляй то, где написано, что ты заебись знаешь qt. Если апплаишься на какой-нибудь winapi, отправляешь резюме, где написано, что знаешь winapi. Если апплаишься на какие-нибудь сети, отправляешь резюме, где написано "делал клиент-серверное приложение лулзов ради".
Вот в этих небольших отличиях можешь и спизднуть немного. Уровня, требуется знать многопоточность - ну ты придешь скажешь "ну я там юзал std::thread и мьютексы немного, воот)))".
На хх можно несколько разных сделать вроде. Раньше точно можно было.
>>1920721 Но нужно учивать что херочки тоже могут всё это видеть, ну типа заметит могут что один и тот же чел разные резюме имеет они ведь тоже не на одной вакансии там пасутся
>>1920742 Ну, это же не что-то нелегальное. Ты просто описываешь релевантные скиллы к позиции. Да и спалить супер сложно, там вкатывальщиков дохера и больше, никто не будет там запоминать твоё фио или какой-то кросс-референс делать по всем резюме.
>>1921205 >преусадебное хозяйство не выгодно это нихуя, у родителей огород в деревне, по деньгам золотые овощи выходят, и это при том что они теплицу не меняли 15 лет а поменять теплицу - 25 тыщ минимум, лол, никогда не окупится это только овощи мясо, молоко, яйца вообще нахуй не выгодно
>>1921384 Потому что тупой компилятор крестов воспринимает эту строку как (std::cout << (a > b)) ? a : b; Так что ставь скобки: std::cout << ((a > b) ? a : b);
>>1921409 Да понятно, что это двачер тупой, а не компилятор, но всё равно бесит же, нет ни одной крестобляди, которая бы не проёбывалась с этим. А всё из-за странного синтаксиса стримов.
>>1921444 Можно еще создать собственный стартап на c++ и в перспективе сделать объявление на hh именно в своей мухосране, со знанием winapi, хуяпи, чё хочешь ваще!
>>1921497 У вас в треде живой пример сидит этот долбаёб весь мы вам перезвоним засрал своими вопросами "пащиму миня ни бирут я жы такой маладец учил 3 года каптуре сайнс и схематехнику" и до долбаёба искренне не доходит что сейчас не 1980-е. А мог бы за три года реакт, джс, вёрстку выучить и вкатился бы как белый человек на нормальную работу
>>1921502 но веб-ассембли и вправда допилят и возможно на клиент-сайде будут ебашить прилаги на плюсах и будет больше РАБоты для простых с++ работяг а не для гигамозгов с аспирантурой
Есть такое средство c# как перегрузка операторов, дак вот, как ввести свои операторы-литералы в дополнение к стандартным? Никак не могу нагуглить как это сделать.
>>1921395 если ты мотаешся туда сюда на авто то да, это мало выгодно чтобы себе там овощей каких вырастить. С другой стороны, небольшая теплица с автоматикой- обеспечит тебя отличными помидорами, огурцами, перцами, такого качества, которого ты вряд ли найдешь в магазине, все промышленное- опрыскивается множеством препаратов, консервантов, и в 80% заражено всякими болезнями. Вроде мелочь, но экологичное питание это по моему неплохо.
>>1921839 Ну так в нулевых вузы как раз и готовили делфистов - где-то же они должны были осесть? Тут даже придраться не к чему - легаси-код мажет как копоть, а в 90-х ещё не было очевидно, что паскаль умрёт, а кресты - нет.
Какое же говнище вся эта инфраструктура вокруг C и C++. Нормальных библиотек почти нет. Десятки лет сотни говнокодеров со всего мира копошили коды и ничего нормального не сделали. Чтобы просто загрузить картинку, приходится велосипедить отдельную библиотеку, разбираясь в документации библиотек соответствующих форматов. Просто все или почти все остальне не применимы в реальной жизни, они применимы только в шизосистеме свои авторов. Такие библиотеки как CImg не имеют права на существование вне шизотипичного ОСомирка автора.
Вот поэтому, когда я доделаю свой язык программирования, убийцу C/C++, раста и го, то сразу же начну писать инфраструктуру, позволяющее написать и ГУИ-приложение, и математические расчёты делать, и игры, и сервера. Потому что от одного человека инфраструктура будет целостной и абстрагированной. А другим программистишкам напишу, что если хотите сделать свою библиотеку, то держите её подальше ото всех на своих гитхабчиках и лишь самые храбрые смогут отправить мне её на ревью, чтобы я решил, добавлять её на официальный сайт языка или нет, смогут ли немногочисленные пользователи моего ЯП устновить библиотеку одной командой как сделано в pip для питона или не смогут и им придётся идти на гитхаб и под стопками README и документаций, написанных на жсе найти сам код библиотеки.
Анон помоги разобраться. Вообщем суть вопроса станет ясна если взглянуть на картинку, но все же я поясню, что мне тут непонятно. Там все очень просто на самом деле.
1)Идет цикл рендеринга (мы отрисовываем нашем окно). Ок! 2)В этом цикле есть функция glwfPollEvent(). Из учебника : "Функция glfwPollEvents проверяет были ли вызваны какие либо события (вроде ввода с клавиатуры или перемещение мыши) и вызывает установленные функции (которые мы можем установить через функции обратного вызова (callback)). 3)Как я например понял все это...Наша функция PollEvent в случае если поступило событие - смотрит какие функции обработки событий определены в программе - видит glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); И уже эта callback функция вызывает нашу пользовательскую функцию. Так оно работает анон? То есть эта функция просто некая связка? Вообщем мне не совсем понятно как функция "считывания" событий и их непосредственна обработка связаны в этой программе. Про функции обратного вызова я читал не надо меня туда отправлять. тут вопрос совсем не про это.
Здрасте. У кого нибудь есть на примете хорошие Octree либы? важно чтобы они были темплейтными, и координаты внутри них очень желательно работали на целых числах (int допустим)
>У кого нибудь есть на примете хорошие Octree либы? Это говно никто не использует. У него нету преимуществ никаких. >важно чтобы они были темплейтными, и координаты внутри них очень желательно работали на целых числах (int допустим) Нахуя?
>>1922251 Для моей задачи поиска ближайших соседей, или любых пространственных операций это прекрасно подходит. float мне не нужны потому что они медленнее чем целые числа. Я работаю с fixed point по сути. uint64_t со смещением, потому нужно было.
>>1922259 >надо просто понимать чуток как устроены event loop'ы во всяких >виндах/иксах. а как с этим разобраться? мне интересна эта тема. Вот вчера я гуглил и нашел только обработки событий с доходчивым объяснением для JS
>>1922142 >Потому что от одного человека инфраструктура будет целостной и абстрагированной. Ахах, какой нибудь автор CImg считал так же, что ТОЛЬКО ЕГО стиль правильный.
>>1922230 >Про функции обратного вызова я читал не надо меня туда отправлять. А куда еще отправлять то? Ну там условно говоря код FunPtr* callback = nullptr; vector<Event> events = {}; ... PollEvents() { auto evt = events.pop_front(); if (evt==EVENT_SOMTHING && callback != nullptr) callback(evt); } ... SetCallback(your_ptr) { callback = your_ptr; } ... SomeKeyboardShitPressed() { events.push_back(new Event(KEYPRESS, key_code)); } //push_back/pop_front обмазаны какими нибудь мутексами чтобы в многопоточности не затереть значение которое ты еще не считал
>>1922156 >Если твоя претензия к инфраструктуре, что тебе мешает написать её для C++, а не для своего ненужного ноунейм-языка? А улучшение крестов просто по накатанной идет: начинаешь, допустим, с чистенького модернового пакадж-менеджера, а потом от тебя требуют сборку пакетов autotools-ом под aix и ты уже не молодой и дерзкий, а старый и сломленный жизнью, и хочешь в полтос пойти тестировщиком electron-приложений.
Так что бы ещё лет двадцать будем каждый день видеть, как make (родом из 1976) вызывает gcc (родом из 1987), который переводит тебе код на C (родом из 1972) в листинг для ассемблера GAS (родом из 1986 и написанного для машин VAX родом из 1977), чтобы слепить твою мегасовременную machine learning нетленку.
>>1922557 >Так что бы ещё лет двадцать будем каждый день видеть, как make (родом из 1976) вызывает gcc (родом из 1987), который переводит тебе код на C (родом из 1972) в листинг для ассемблера GAS (родом из 1986 и написанного для машин VAX родом из 1977), чтобы слепить твою мегасовременную machine learning нетленку. Не вижу проблемы. Тем более, что это всё развивается.
>>1922784 Ты не видишь проблемы, потому что привык её не замечать.
Когда у тебя autotools на каждый запуск раз тратит пятую часть времени чтобы узнать, компилируется у тебя хеллоуворлд, и со знаком ли у тебя int - это пиздец. Когда у тебя cmake генерирует makefile, который вызывает этот самый cmake чтобы нарисовать прогрессбар - это пиздец. Когда у тебя из-за изменения одного хидера двадцать минут пересобирается 600 файлов - это пиздец. Когда у тебя vcpkg скачивает и устанавливает python, чтобы установить ассемблер - это пиздец.
Кмк, самый большой прорыв в развитии случился в 1992 году с появлением турбо паскаля 7.1: тогда появилась ide, в которой из коробки работала система сборки, отладчик и профайлер, а за счет отказа от obj-файлов в качестве промежуточных, частичная пересборка среднего проекта даже на 80386 занимала считанные секунды. По сути, единственная крестовая ide, которая всегда хотя бы поддерживала этот уровень - это msvc, и всё. clion появился только через двадцать лет после.
Вся же поебота типа cmake и conan, олицетворяющая современное развитие - это перекладывание с больной головы на здоровую. Затычки для дыры, из которой дует уже сорок лет.
>>1923022 За ffmpeg могу сразу сказать, что ассемблер там - дикое легаси и существует только потому что авторам плевать. Так-то новый код пишется на интринсиках. Я же видел ассемблер в последние годы только в диком байтоебстве - трамплинах для перехода к jit-компилированному коду и реализации защиты от срыва стека.
Бля, заебал навязчивый перфекционизм. Каждый раз когда пытаюсь начать писать изначально догадываюсь что напишу говно так как только лишь учебник прочитал и еще не писал на крестах, так и вижу как 1000 двачеров читают мой код и угорают над тем какой я лох, кек. В итоге переписываю в десятый раз один и тот же хэдер. Да я знаю всем похуй на мой код и на меня в частности. Проблема: Пишу QT будет множественное наследование от главного окна->вложенный пользовательский виджет->такой же->и.т.д. Каждый из них должен работать с определенным классом который должен содержать одинаковые для всех них данные. -сделать класс полностью статическим -сделать обычным но массив данных самого класса статическим (профит можно реализовать operator[]) -сделать класс полностью не статическим и его объект передавать "из рук в руки" каждому потомку в конструктор (так в пиздоне делал) я склоняюсь ко второму
>>1922843 >Когда у тебя из-за изменения одного хидера двадцать минут пересобирается 600 файлов - это пиздец. Это да. Поэтому forward declaration везде где можно. Ну и модули ждем, может получше станет.
>>1923290 Со статическими данными завязывай - код с ними сложно тестировать, т.к. непонятно, кто туда последний лез их менять. Передавай их в виде const T& в конструкторе, указатели в современных крестах - дурной тон.
>>1923317 >указатели в современных крестах - дурной тон. интересный момент, но половина кьюти принуждает к указателям, любой чих там создается через new и привязывается к топовому QObject который при своей смерти проходится по потомкам и делает им автоматически delete. так что прийдется.
И скорости компиляции модули вряд ли помогут - стандартные хидеры уже у всех precompiled, а при изменении своих все равно придется шерстить весь использующий их код, т.к. в них могут появиться новые перегруженные функции или просто имена для трюков со sfinae. И даже если интерфейс тот же, инлайнить функции придется заново. В итоге получаем ту же почти полную перекомпиляцию на любой чих.
>>1923329 Это не имеет значения - если потомок не владеет объектом и не может реагировать на его исчезновение, то ему незачем работать с ним через указатель. Иначе ебись со shared_ptr и weak_ptr.
Еще такое дело: Qt - это просто интерфейс. Если у тебя данные существуют всё время работы приложения, а не создаются в каждом окне для себя и потомков, то построй для них отдельную, не зависящую от Qt иерархию классов и самый верхний передавай в qt, иначе ты будешь зависеть от того, какие окна у тебя сейчас открыты, а это пиздец уровня вижуал барсика.
>>1923374 static const в классе - это просто глобальная переменная, доступная через этот класс. Если она не зависит от текущего состояния программы, отрефактори её в constexpr и всё будет збс. Иначе лучше выдели её в отдельный класс и передавай объект этого класса в конструкторе через ссылку, иначе возникнут непонятки от того, кто эту переменную меняет.
>>1923448 А разницы-то никакой и нет. Общие данные в глобальных переменных - зло, т.к. никогда не знаешь, кто их меняет. При передаче их в конструктор/аргумент функции у тебя хотя бы будет возможность отследить, кому они в каждый момент времени доступны.
Аноны, как скрыть от пользователей тип итератора? Есть класс, в котором используются ассоциативные контейнеры, в которых иногда нужно делать обход по ключам, иногда по значениям. Сейчас делается через возвращение векторов, что медленно пиздец. Если вынесу родной тип итераторов наружу - при смене реализации контейнера пользовательский код сломается, прецеденты были. А в STL есть какая-нибудь обертка, из которой пользователю видно только что это, допустим, forward_iterator и всё?
>>1923583 Так это пользователи принимают, не я. Нужно не позволить им косячить. У меня пока три идеи: или сделать лямбду, возвращающую следующий элемент/nullptr (но тогда никаких std алгоритмов, пичаль), или свою обертку с интерфейсом итератора и функции типа items_begin()/items_end(), или перейти на ranges из c++20. Почему-то в stl для такой очевидной штуки ничего нет :(
>>1923589 Концепты задают минимум, которому должен соответствовать класс. А юзеры, сволочи такие, привязываются к реализации. Пример - итератор std::unordered_map возвращает std::pair, а у robinhood::unordered_map есть свой robinhood::pair. Юзеры взяли и не от большого ума жестко прописали std::pair вместо его вывода через auto и теперь у меня 500+ мест, где придется что-то подковырнуть. Попадос!
>>1923691 Так в том и дело, что будь там auto, этого бы не случилось - вывелся бы другой pair и всё. Разница, кстати, между двумя вариантами pair небольшая: std::pair, кажется, не умеет в move-семантику.
>>1923784 >> У меня gcc выдаёт ~i < 0, как так? Ты ведь просто printf("%i,", i) сделал, да? Вот и получил, что заказывал - твой i printf интерпретировал как число со знаком. Если бы ты в коде написал блок с условием (~i < 0), то он бы не выполнился.
>>1923784 Зачем вообще этот rtti нужен? Какие-нибудь реальные примеры, а не суперспецифичных задач (в этом случае возможно создать поле идентификатора и виртуальный метод типа "getID")
int a(int x, int y); -- Почему тут компиль не ругается?
double a(int, int); -- А тут внезапно начал писать: error: ambiguating new declaration of 'double a(int, int)' note: old declaration 'int a(int, int)'?
>>1923853 Ок, со вторым случаем я разобрался, там в сигнатуру не входит тип возвращаемого значения, поэтому в твоем примере будет неоднозначный вызов функции. А почему он не ругается на int a(int x, int y);? Это же объявление функции, которая определена выше. Сигнатура абсолютно такая же: имя 'a', параметры int, int.
>>1923842 rtti придумали для сериализации и скриптинга, чтобы связать типы с их именами. Но он какой-то стрёмный и платформозависимый получился, так что его мало кто использует.
>>1923989 >>1923991 А все, я совсем уж ебнулся, какой тут throw... Надо поспать. >>1923983 Отметил все по твоим пунктам, все правильно. Миллиард чая тебе, анон! Прям спасибо! Ушел смотреть видосы про лямбда-выражения
>>1923982 У нас на работе за прохождение каких-либо курсов (хотя бы условно имеющих отношение к тому, чем ты занимаешься или должен заниматься) повышают з/п. Типа развитие персонала и всё такое. другой анон
>>1914169 (OP) медлленно возвращаюсь в программирование после арми по приколу на вялял пролграмму #include <unistd.h> #include <math.h> #include <stdio.h> #include<limits.h> int main() { int a(INT_MAX),c(1),b; int min[a]; for(b=0;b<=a;b++) { c++; min=a/pow(c,2);
printf("%d\n",min); sleep(10); } return 0; } в чем ошибка
Создаю классы UI в котором будет реализован интерфейс с пользователем и Program в котором непосредственно находится алгоритм. UI должен будет обрабатывать команды пользователя. Например, пользователь вводит "myconsoleapp.exe <arguments>". Запускается main(int argc, char argv[]). В нем я создаю объекты классов UI и Program. Затем вызываю метод UI.prepare(int argc, char argv[]). Он принимает аргументы, обрабатывает их, а затем возвращает необходимые данные для работы основного алгоритма. Эти данные, я отправляю через метод Program.alg(). То есть, работает это примерно так:
int main(int argc, char* argv[]) { UI ui = new UI(); Program program = new Program(); vector<string> vector_str = ui.prepare(argc, argv); program.alg(vector_str); return 0; }
>>1924460 Нормас. На алгоритмы ( а может даже и UI ) будет не сложно тесты написать. В этом и смысл разделения на разные слои. Мухи отдельно, котлеты отдельно
>>1924460 чтобы решить частную проблему, нужно общее решение в данном случае тебе нужно сделать (либо взять готовые) две библиотеки - одна для разбора и обработки агрументов запуска приложения, другая для разбора интерактивного пользовательского ввода иначе ты будешь осужден на бесконечное запиливание костылей мимо нищяя безработная макака понявшая дзен
Нубовопрос: Раскрываются ли инлайн методы объекта если я вызываю их в коде через указатель на объект: obj->foo(); Читал если на обычную функцию где-нибудь в коде есть указатель она не раскрывается компилятором не смотря на директиву инлайн. А в данном случае?
>>1925064 и еще в догонку: pragma once vs header guards думаю большинство тут посоветует первое но почему гугль например в своем гайдлайне рекомендует гварды формата #define {project}_{dir}_{src}_H ?
Господа, в плюсах можно совершить explicit template instantiation, дающий возможность определять методы шаблонного класса в .cpp файлах (без этого линкер пошлет вас далеко и без хлеба). Стоит ли овчинка выделки? Или в случае с шаблонными классами лучше определять в хэдэре и не париться? Что есть best practice?
>>1925104 С pragma once бывают проблемы, когда можно несколькими вариантами заинклудить один и тот же файл. Но такие "артефакты" встречаются довольно редко.
>>1925193 Тебе же сказали, что зависит от фазы луны. Компилятор при оптимизации можеи как захотеть заинлайнить, так и не захотеть, ибо inline - это просто рекомендация компилятору, хотя современные компиляторы и без рекомендаций лучше разберётся.
>>1925200 Ну хотел уточнить стоит ли загрязнять хэдер определениями если я точно буду использовать объект класса через указатель. В случае если они 100% не раскрываются тогда всегда определять в срр и не париться
Стоит заниматься долгостроем? Хочу летом после диплома на джуна пойти попробовать и решил перед этим пописать код, много кода. Сделал крестики-нолики на sfml, а с imgui можно выбирать размер поля и менять на ходу интерфейс. Пока игра идёт только против бота с выбором сложности. Хочу к этому всему ещё сделать меню, анимации, режимы, добавить возможность игры по сети, чат, эффекты на glsl лёгкие для анимации и прочее. В общем, хочу сделать на основе маленькой ничем непримечательной игры целый проект с кучей фич. Стоит страдать подобным говном или лучше мелкое что-то делать?
>>1925203 У меня в проекте есть ассемблерные объектники, которые отдельно собираются. И потом эти функции вызываются через указатели. Так вот, в некоторых случаях в lto даже эти функции инлайнились. Поэтому this -> >>1925222
Анонасы, как готовитсья к код ревью? Я вроде пишу нормальный код и уже давно, но мне на собесе вот только что дали вообще странную вещь, которую я сам бы никогда не написал, например. Зачем тогда вообще бест практисес какие-то нужны? Я блять не пишу код, который я не представляю, как работает. А тут от меня ожидают, что я смогу разобраться в чужом нерабочем коде. Еще и без компилятора / гугла.
>>1925348 Ты можешь представить пет-проект с > >> Элитный ЯП для написания критичных частей критичных систем, хайлоада и оптимизации производительности буквально на уровне тактов ЦП ? Вот и иди нахуй.
>>1924571 Спасибо, теперь пишу свой говнокод увереннее
>>1924594 Думаю, я напишу свой велосипед для обработки аргументов запуска приложения. Не понял только, что ты подразумеваешь под интерактивным пользовательским вводом.
>>1924680 Совсем не понял тебя. А для чего нужен XML? Это форс здешнего треда?
>>1925298 Это то что в голову первое пришло, да и для них это неделя, а для меня больше, по очевидный причинам. Может ещё настолки какие-то добавлю, а к ним читалку внутрь с паззлами/туториалами для тренировки. В голове много всего есть, но как-то постепенно расширяться хочется и наполнять контентом и функционалом каким-то.
>>1925348 Для начала нужно что-то написать, чтобы его можно было оптимизировать. Вот я наговнокодил игровой ии, в будущем кол-во таких ботов увеличится с увеличением кол-ва игроков, тогда можно будет распараллелить это всё на gpu и всю остальную часть переписать на потоках. Не знаю чего ты так порвался сразу, няш.
Я прошел основной синтаксис. Знаю что такое класс, деструктор, конструктор, дружественные функции и классы + шаблоны. Прошел всю STL, основы знаю, но многое так-же уже забыл.
Какую библиотеку вы посоветуете начать учить? Которая зачастую требуется на работе, мне не важно направление, возьмем тот же геймдев или системы.
Мне нужно знать куда двигаться дальше. Я пробовал изучать по роликам с ютуба, но это все так сложно дается, там столько всего непонятных слов)
>>1925403 >Что посоветуете дальше. смотри какие работы востребованы в твоем городе - дворник, охранник, гей-шлюха если работы вообще никакой нет, то выпиливайся
Хочу пройтись по всему синтаксису с практически нуля, чтобы заполнить пробелы. До этого вскользь по диагонали читал Прату и также вскользь проходил курс яндекса на курсере (3 пояса первых), сейчас в основном только пишу, так как читать сухую теорию не особо нравится, а до майерса считаю что не дорос немного. В принципе большинство тем всё так же помню, разве что с friend классами и методами не пошло, но забыл много деталей, особенно по кастам и binding. Что лучше для повторения взять? Я по тредам прошлым почитал, многие рекомендуют learncpp.com - это нормальный ресурс? Как я понял, его русскоязычный аналог в виде перевода - ravesli.com, откуда даже можно будет взять русскоязычную терминологию на случай всякого типу "инстанцирования" и прочей кальки.
Анонасы дайтие совет начинающему. Теория это все конечно круто! Но вот я созрел(уже давно) до практики скажем так. Начал писать змейку(на чистом си), в целом легко для меня это, но на стандартных библиотеках она у меня херово работает - лагает и клавиши там не видит и т.д., не хочу сейчас тратить время на отладку или как это называется(понимаю, что это 80% кодинга, но успею еще...) Нравиться задачки решать интересные, но я их толком найти не могу. Нашел две (нарисовать ромб в консоли(ну там с опр.условиями) и с файлами одна). Реально кайфанул когда их делал. Остальные либо слишком муторные и там какой то адский матан, в том плане, что я тупо не понимаю, что от меня хотят...Но посмотрев на код решения, вижу, что там все просто в целом и поняв суть я их решу. Или наоборот легкие. Но в целом все они скучные. Вообщем я не знаю, что в плане практики мне делать(решать задачи, начать что-то серьёзное писать и т.д.) Какие я вижу варианты: Вкатываться в Qt, SMFC, OpenGL и т.д. ( и на них уже делать серьезные работы, благо их больше в св.доступе) ну или может что еще? если да, то с чего начать из них?
>>1925755 >Нравиться задачки решать интересные, но я их толком найти не могу. Тут как минимум есть тред с рулеткой проектов, можешь оттуда лёгкие посмотреть. Или пройдись по ката, например https://github.com/gamontal/awesome-katas Или тебе прям по крестам надо?
>>1925622 Strong typing. Т.е. если функция принимает например скорость, то это должно быть не просто число, а объект класса Velocity с explicit конструктором и может ещё, для удобства, созданием пользовательскими литералами (типа 100kmph).
Наверно тупой вопрос, но уже не знаю в какую сторону гуглить. Пишу приложение на qt, что-то вроде графического редактора. И до этого постоянно хранил текущие картинки и их параметры в глобальных переменных класса MainWindow. Чую что это не правильно, но хз как нормальные люди делают. Можно в теории в главной функции приложения объявить вспомогательный класс или структуру и передать уже её окну, чтобы он сней работал, но не уверен. Как сделать по канону?
>>1926439 Всем лень пилить шапку, потому что на самом деле пользы от неё мало. Кто-нибудь загорится инициативой, перекатит с обновлённой шапкой, и ему надоедает. Ещё и нужно морально готовиться к обоссыванию токсиками, которые вечно чем-то недовольны. Изредка кто-то пишет пожелания к шапке, но в целом всех всё устраивает, поэтому никто ничего не делает, и легаси-шапка так и висит по полгода. И так во всех тематических тредах.
всем привет, аноны вопрос короче перекатываюсь из дата сасистного комп зрения в гетеросексуальный: вместо питона - с++, вместо юпитера - clion (или студия) а вместо дрочки моделей - нормальные алгоритмы но с++ у меня остался на уровне уника вопрос стоит ли идти сперва на джуна с++, а потом уже соваться в интересующую область (возраст позволяет, всего 25) или стоит сразу идти за вакасией? а то там пишут "знание stl" а я ебу что для них "знание", это ведь скорее всего "опыт применения" а не знание короче подскажите плез. как показывает опыт, с++ тред самый адекватный
>>1926679 Перекат в кресты имеет ровно 1 смысл - ты дико угараешь по ебле байтов и т.н. "ТРУЪ ПРОГРАММИРОВАНИЮ". Для денег\карьеры\переезда за бугор и прочее - дата сатанизм лучше.
Если уж вкатываться - то искать похуй какую джуновскую вакансию, и читать книги Скотта Майерса. Когда их все прочтешь и осознаешь - будет считаться, что ты знаешь STL.
>>1926679 >знание stl Одного просмотра https://www.youtube.com/watch?v=2olsGf6JIkU чтобы понять структуру STL (Степанов всё-таки молодец чувак, всё хорошо сделал) и умения пользоваться cppreference вполне хватит.
>>1926903 да не, я с 21 работаю, так что не прям ВКАТ ВКАТ но хочу отметить, что еби всех в рот, если кто-то тебе будет говорить, что ПОЗДНО вкатываться особенно до 30 лет вот прям ссы сверху будет тяжлее, но не приговор
>>1926941 гои уже настолько привыкли, что не понимают они под сапогом!!! тебя не смущает, что ты сидишь на русскоязычной борде, говоришь на русском, фильмы русские смотришь, а ссылку кидаешь на англоязычное видео?
>>1926949 Тебя не смущает, что большая часть документации разных библиотек описана на английском? Если ты не заметил, то это C++ тред, а вот православный 1С там -> >>1795914 (OP)
Гутен таг, товарищи! У меня к вам вопрос по поводу ассоциативных массивов. Это не вопрос про c++ а вопрос про алгоритмы и структуры данных, независимо от языка, но думаю, этот тред лучше подходит.
Короче вопрос: как реализовать ассоциативный массив, чтобы он работал быстро и эффективно и не было коллизий (в случае с хеш-таблицей)
Предполагаемое решение: реализовать в виде разреженного массива, где нечётные элементы - ключи, чётные - значения. Находить адрес нужной пары ключ-значение по принципу хеш-таблицы, затем в том случае если произошла коллизия (сверяем ключи и они разные) методом перебора считываем следующие элементы и ищем пару с нужным ключом (для доступа к существующему элементу) или ищем первое элемент, содержащий null (для добавления новой пары ключ-значение)
Предполагаемое решение 2: каждое множество ключей с одинаковым хешем хранить в отдельном бинарном дереве, в хеш-таблице хранить ссылки на деревья
>>1926679 Чтобы тебя нормально брали на работу какую-то по плюсам, нужен опыт пиздец. У меня у самого опыт байтойобный большой, но академический и в небольших ресерч-проектах, а не такой, что прям коммерческий на огромной кодовой базе. На собесах обоссывают люто конкретно по цпп и практически игнорируя предметную область. Причём дрочил и майерсов и стандарты и цппконы время от времени на протяжении лет пяти или больше.
Сильно не советую в цпп залезать. Я наоборот думаю в машин-леринг залезать, раз с математикой всё норм и образованием, потому что бесят блять долбаебы эти байтовые, которые спрашивают то, что они сами знают, а не то, что нужно блять. Им похуй, что люди бест-практисес учат, чтобы как-раз избегать непонятные ситуации и не использовать ебанутые конструкции языка, в которых непонятно, что происходит. А додики ожидают, что ты будешь разбираться, как любая маленькая хуйня работает.
А если у тебя реально знания на уровне универских лаб - очень жидко обосрешься. Не слушай хуесосов в треде про какие-то истории, где берут на работу чуваков без скиллов. Да блять, в люксофты всякие может и берут. Но в нормальной международной компании - тебе хуем по губам проведут. Я тебе это сам говорю, как чел, позаканчивавший всякие мгу и с норм резюме.
>>1927212 Первое это обрезанный вариант разрешения коллизий методом открытой адресацией. Абсолютно непонятно, зачем тебе разрежать массив это усложнение, не дающее преимуществ. Насчёт пробирования - ты описал линейное, там ещё другие варианты есть. Второе это разрешение коллизий методом цепочек, но твое дерево в таком случае (из-за равенства ключей у узлов дерева) выражается в список. Что собственно и используется в этом методе. Обычно, хеш-таблицы таким образом и делают, т.к. тебе не нужно перестраивать таблицу при её заполнении
>>1927280 слушай, ты, конечно, прав но хуй знает сейчас, как я вижу, вообще такое деление в АЙТИ: 1) заполняешь формочки и ебашишь их в БД (бэкэнд) 2) вротэнд клепание формочек и кнопочек 3) дрочишь модель, которую разработали аутисты за лет 5 до тебя и допиливаешь ее точность новой порцией данных (читай: перекладываешь джисоны а ля математик) (сюда входит и МЛ и зрение, только у зрения еще эвристики ебашишь, и весь весь Дата саенс) 4) Байтоебля хуй знает куда идти, хуй знает хочется чего-то нормального, но либо я где-то не так смотрю, либо ИТ это нихуя не романтика а сплошь рутина ну или идти в стартапы (Где не платят нихуя и не норм условий (в 70-ти процентах))
>>1927494 >хочется чего-то нормального, но либо я где-то не так смотрю, либо ИТ это нихуя не романтика а сплошь рутина Вообще все программирование - это рутина. Там где не рутина - там нужны подскакиватели кабанчиком и чесатели языком, которые тебе все нарежут на тасочки "положи жсончик в БД", "нарисуй формочку".
Рядовой технический специалист - винтик. Я бы шел вообще в девопсню сейчас, имхо там наиболее интересно.
>>1927496 Все максимально индивидуально. Я вкатился за 8 месяцев, кто-то не вкатится никогда.
>>1927280 >Чтобы тебя нормально брали на работу какую-то по плюсам, нужен опыт пиздец Есть два сценария. Хороший, когда ищут спеца на конкретную тематику (ты будешь писать псевдокод и обсуждать концепции). Плохой, когда ищут эникея++ (ты будешь дебажить на бумажке какую-то синтаксическую залупу, о которой читал лет 5 назад). Второй, очевидно, случается чаше.
>Им похуй, что люди бест-практисес учат Бест практикс сначала перестают быть бест, а потом за них начинают пиздить ногами. Например паттерны GoF или sfinae. В каждой конторе своё представление о том, что для них бест.
>>1927609 Смотри, когда мы определяем указатель на функцию сами, мы должны указать, какие типы примет лямбда. bool (*lambda)(std::string_view) = ... С авто - нет. Как это работает?
>>1927726 это вполне такой вариант. Но я смотрю, как мой манагер проставляется очеллом 24х7 и сидит на митингах в полночь с пятницы на субботу - ну его нахуй. А учитывая, что он спалился по пьяни, что получает столько же, сколько и я...
>>1927740 >>1927744 я это к чему насколько я знаю, если ты из сеньера вырос в какой-либо вид менеджера, что хуй с ним с ЗП, у тебя открываются новые ступени роста, уже НЕ технические
>>1927740 В инженерном деле везде так. Начальник нижнего уровня (тимлид, начальник группы и т.п.) это рабочая лошадь, которая тянет на себе и возню с работягами и технические пердоли. А вот дальше уже те самые должности (деливери директор, продукт овнер, начальник отдела и т.д.), на которых можно булки расслабить.
>>1927725 Что для тебя есть байтоебля? Машинное зрение на плюсах это написание математических либ типа OpenCV (с оптимизацией через asm/cuda/simd/ipp и прочее).
>>1927494 Не совсем правильное у тебя деление. Есть ещё эмбеддед, и он тоже бывает разный. Есть такой эмбеддед, где ты помимо того что C++ разработчик, так ещё и питонист, и гуи делаешь для пользователя на чём придётся (иногда на веб технологиях вообще, сам учишь какой-нибудь фреймворк), и с датчиками всякими железными общаешься, и в целом следишь, чтобы продукт годный был, и ещё всякие математические инженерные задачи решать приходится на бумажке. Вот это интересно, если только сроки даются адекватные и ресурсы.
>>1927807 у меня нас крестах нет опыта работы - только Си (где прям байтоебля пиздец) и питон - как раз для зрения и вот я часто вижу на ХХ в вакансиях по зрению необходимость С++. Я всегда считал, что кресты им нужны для оптимизации узкий мест а так ли это - хз ровно как и хз на каком уровне это нужно знать
>>1927888 Тем, что ебут со всех сторон 24x7. Я на таком проекте работал и сгорел нахуй за два года. Просто физически не вывезти матан+железо+веб+систем+девопс. Бесконечное обучение, бесконечная гонка за сроками. Но интересно, да. Мимо другой анон.
>>1927848 Ой блять, это называется на дуде игрец, который нихуя толком не умеет, разрабатывает костыльную хуиту и работает по всяким Концернам "Залупки".
>>1927901 сам сейчас в похожей залупе РАБотаю (потому что ебанутый СЕО платит деньги когда сам посчитает нужным + сама по себе зп не очень большая) хочу съебать во всеми ненавистные ОГРОМНЫЕ КоНтОрЫ, в которых, как все говорят, нет развития, но хоть есть плата за твои труды а поразвиваться я и дома при желании могу програнье проганьем, а еще жить успевать надо
>>1927910 огромные конторы огромным конторам рознь. Но если хочешь развиваться - то надо будет кабанчиком подскакивать и самые интересные таски воровать.
>>1927914 я мб мечтатель но почему-то хочу попрбоваться в SberDevice (ну или любое другое модное направление сбера), ABBY, хуявей и прочие есть смысль ? мб тут есть аноны из названых\похожих по масштабам?
>>1927921 да тут и стартап стартапу рознь в стартапах тяжело - если у тебя хоть один из сооснователей\менеджеров ебанутый - страдают все и ты с этим нихуя не поделаешь
>>1927917 >Align Tech Странная хуйня. Собеседовался, спрашивали хуйню, менеджер словно заучил задачки и ожидал, что я буду ему прям как по решению рассказывать и подвисал, когда я ему говорил очевидные вещи. После второго собеса послали нахуй.
>>матан+железо+веб+систем+девопс Если контора не "Рога и Кпыта Лтд" то каждая из этих сфер съедает почти всё время и работы и обучения; ты 90-летний вассерманопердун видать, раз на должном уровне владеешь такого объема стеком
>>1927971 Яндекс это интересная контора. Вроде и престижно. и в резюме запись хорошая.
Но 1. безумное собеседование 2. денег платят меньше 3. сама работа говно 4. абсолютно юзлесс техстэк, где у тебя ya make вместо гита. какая-то левая хуйня вместо гита, яндекс тикеты вместо Jira и прочее.
>>1927939 Было дело давно. Спрашивали глубоко по цпп, стл. Задачки были ебанутые, словно менеджер нагуглил их где-то вместе с решением и ожидал это конкретное решение. А на очевидных вещах подвисал.
>>1928067 Задачки по 3д в смысле. Может сейчас и не так и мне менеджер странный попался. Ну и он какой-то бред задвигал. Я спрашиваю, это его тима занимается кадом и рендерингом? Он говорит, да и начинает рассказывать про какой-то анализ данных.
>>1928074 По аналитической геометрии. Нету смысла что-то более конкретное рассказывать. Но я чёт сомневаюсь, что там решение взять тебя на работу как-то коррелирует с твоими знаниями по математике. Странная хуйня реально. Как-будто они и не собиралсь брать изначально.
я так-то работал в геймдеве и подходил по стеку полностью
>>1928246 это проверка на старость очевидно что 17ти летний кунчик вспомнит нужную формулу, тк они шкалку вчера закончил, а 25ти летний дед-пердун может уже и забыл!
помню в моей жизни был очень долгий собес (порядка 4-х часов) и как же удивительно, но все эти 4 часа были охуено адекватными: тебе и задачки норм дают, и очень подробно спрашивают про прошлый опыт (причем реально слушают, а не для галочки) и про мотивацию пиздите короче с теплотой вспоминаю до сих пор жалею, что решил сменить направление и съебал
>>1928252 Помню в моей жизни также было. Крупная контора два технических собеса по 3 часа и два собеса с менеджментом. На месте оказался люто проёбаный по срокам проект. Сьебал оттуда через 8 месяцев и ни разу не пожалел.
>>1928325 >>1928286 Вы чё, долбаебы? Если у нас будут даны вершины, то задачу решить можно хоть на пальцах. У нас даны только длины сторон. Не говоря уже о том, что там площадь ноль.
>>1928326 На пальцах только лабы решаются. Правильный подход - восстанавливать по облаку точек brep модель, запилить nurbs движок и через api верхнего уровня работать однообразно с любой геометрией.
>>1928356 Есть такое понятие как геометрическое место точек. По тем числам, которые указаны, можно факторизовать векторное пространство и на отдельно взятой фактор группе решить твою задачу.
Сап, парни. Поясните нубу за общепринятый способ объединения объектов путем композиции. Есть класс Part объект которого будет частью объекта класса Main. Part должен инициализироваться какими-то данными по этому я вынужден реализовать два конструктора для него, первый будет использован в строке 32, второй (нужный мне, который передает данные внутрь Part) в строке 34 справа от оператора "=". При этом, если я не ошибаюсь и судя по выводу, справа создается временный объект Part, его внутрянка перемещается в объект созданный в строке 32 и он (временный) уничтожается. Если объект класса Part будет выделен в куче, я могу конечно изначально объявить лишь указатель на него и напрямую использовать его конструктор в конструкторе главного класса без лишних телодвижений, но если я не хочу его хранить в куче, получается много лишних телодвижений: --новый объект с конструкторов по умолчанию --новый объект2 с нужным конструктором --перемещение --деструкция объекта2 Это так принято что ле? Или есть более тру путь. а если я хочу Part⚹ p_array = new Part[10] и каждого проинициализировать, например for (int x=0; x<10; x++) p[x] = Part(x*x); это получается 20 конструкторов и 10 деструкторов. Непонимат. Есть догадка что просто нужно делать кастомный конструктор void init(int some_data); и вызывать его для уже созданного объекта, но хотелось бы услышать мнение гуру итт.
>>1927906 Зато, по-моему, можно потом свою контору открыть, или же стать техдиректором (или как эта должность правильно называется). Ведь ты уже знаешь, что и как работает, что с чем сочитать, как должен выглядеть готовый продукт и на что можно ставить акценты. Но пока работаешь действительно вечно что-нибудь новенькое и ты ни в чём до конца не успеваешь разобраться. Но весело.
>>1928625 Убираешь для парт дефолтный, если не нужен. Инициализируешь в списке конструкторов членов (или как там это правильно называется) Main (int some_data) : p(some_data) {} В этом случае р сконструируется как надо до вызова самого тела конструктора Main.
>>1928864 Большая часть "программистов" не умеет программировать. Иногда во время жизни проектов рядом с ними "пробегают" спецы, которые наводят порядок в каком-то умеренном смысле.
Те редкие обсуждения продвинутых концептов или дезайн аппроачей, которые можно встретить в треде, на реддите или в качественных блогах — это 0.01%.
>>1928890 По сути как и с богатством. Если у тебя инкам больше 50к$ в год, то ты уже входишь в 1% самых богатых людей на земле. Так что всё логично.
Если можешь накидать сервачок / кастомный аллокатор / логику с очередями / всё предыдущее во многопотоке / условную змейку и при этом соблюсти чистоту кода, основные best practices, const correctness, правильно применять мув семантику и темплейтить там, где надо ( а не везде / нигде) (плюс иметь опыт с несколькоими ЛЮБЫМИ либами), то ты УЖЕ в микропроценте лучших плюсовиков.
>>1928890 >>1928893 Собственно, отсюда и получается, что в блогах старающихся и гитхабах реально потеющих — всё красиво. А всё остальное — лютая помойка вместо кода.
>>1928946 >каждый второй школьник контрибьютит в какой-нибудь MPL. Каждый первый школьник тут только new int[5] делает, а потом спрашивает, как массив в функцию передать
>>1928792 Стандартная либа подходит только для laba2.cpp поскольку дает только некий общий метод. В реальных проектах естественно свои строки, в текстовом редакторе одни, например ropestrings, в базах данных другие, в гуи третьи. Это же язык для быстродействия, а не для макак.
Я не против нестандартных либ. Я про то что нет нормального человеческого набора пакетов для белых людей. Так же как и нормального менеджера зависимостей. У нас даже логер свой.
Зависимости настолько сложно ебать, что народ просто подумал что проще свой за 2 дня написать и не ебаться
>>1929220 помню в начальной школе родители хотели меня запехнуть в "элитный" математический лицей, там на экзаменах (в 3м классе) была и такая задача - давали карандаш и на пустом столе из карандаша нужно было сделать треугольник - решение: приставить этот карандаш к углу стола и прочие подобные охуенные задания (типа для чего нужны круглые люки и прочая параша) естественно я был в полной прострации от подобных "математических" логических задач а потом уже узнал что для поступления в этот лицей тупо нанимали репетиторов которые малолетних детишек тупо натаскивали на эти задачи - говорили им решение чтобы они запомнили до сих пор охуеваю с этой системы и надеюсь что подобное образование провалит эту страну на дно где ей и место
>>1928385 Чёт проигрываю. В 6 лет идут в школу, в 17 в универ, в 23 получают диплом о высшем образовании. Теорию множеств изучают на 1-2 курсе, то есть примерно в 18-19 лет. Видимо вот этот вот >>1928555 застрял в 17ти летнем возрасте со своими неравенствами.
>>1928445 Да можно все задачи по конвертации цветовых пространств смело записывать в байтоеблю: bayer-rgb-hsl-yuv-grayscale-cmyk. Причём даже не тех, что для CV, а тех, которые нужны в полиграфии и рендерёжке PDF подобных документов на разные экранчики.
>>1929329 так бинарное кэширование же. ВЦПКГ собирает один раз, пакует в нугет, заливает в гитлаб, и дальше оттуда скачивает. У нас все депы скачиваются 40 секунд, и то, потому-что ебучий AWS SDK жирный как мамка абу.
>>1929316 Ты только невежество своё выпячиваешь. Неравенство треугольника входит в аксиоматику понятия метрического пространства. Не знаешь аксиоматику == не знаешь науку, что бы ты там ни пиздел.
>>1929316 >высрал какую-то нерелейтед хуйню про какие-то фактор группы, через которую даже площадь треугольника не найдешь, если известны только длины сторон >ряяя йа математек ахуиный ряяя Ты же додик блять, который нихуя не умеет, ты о чём вообще?
>>1929251 Братан, очень интересно что ты пишешь (лол диднт рид), но если у треугольника сумма двух сторон равна третьей стороне то очевидно он вырождается в линию. У меня ушло на осознание этого десять секунд. У тебя на это ушло самообладание.
>>1914739 >Потому что ты в седьмой строке кода пытаешься объявить статический массив на стэке, размер которого должен быть известен во время компиляции.
Ну вот в рантайме есть переменная х. Далее я уменьшаю стэк--поинтер на х байт. нахуя конпелятору там чтото знать?
аноны есть вопрос вот у меня есть камера и я снимаю с нее фреймы с помощью opencv вопрос: как мне лучше передавать данные с камеры в алгоритм? через отдельный поток или через обычный while True и вывзов методов в этом вайле? Для масштабируемости что лучше?
>>1929713 Мне кстати тоже интересно. Если я хочу, например, в OpenGL приложении рендерить куб с текстурой - фреймом с камеры, как это лучше всего сделать? Каждую отрисовку загружать через OpenCV картинку - это же медленно будет, не? Как это нормальный разраб сделал бы?
>>1929713 формируется буфер, на входе которого новые данные, на выходе забираются данные на обработку так справляются с тем что обработка может не успевать за новыми данными специализированных структур данных для этого полно
Перехватил в игре вызовы функции WSARecv. Почему этот код выводит в консоли одни пробелы? Мне нужно чтобы выводилось хоть что-то. Пробовал выводить через printf("%02X ", lpBuffers->buf); но кроме 00 00 00 00 00 00 ничего не выводится. Игра точно получает данные от этой функции. Где я ошибся? Куда копать?
>>1929251 >помню в начальной школе родители хотели меня запехнуть в "элитный" математический лицей, там на экзаменах (в 3м классе) была и такая задача - давали карандаш и на пустом столе из карандаша нужно было сделать треугольник - решение: приставить этот карандаш к углу стола У меня такая задача была при распределении по классам при поступлении в первый класс. В обычную, не математическую, школу. Только вместо карандаша была одна спичка.
>>1929963 Может быть у тебя игра первым байтом принимает нули, так что и char строка и %02x также будет возвращать нули. Попробуй пройтись по всему буферу, а не только первому байту:
const int len = lpBuffers->len; const char buf = lpBuffers->buf; printf("WSARecv (%i bytes): ", len); for (int i = 0; i < lpBuffers->len; i++) { printf("%02x ", buf); } printf("\n");
см. https://macton.smugmug.com/Other/2008-07-15-by-Eye-Fi/n-xmKDH/ Сука, жизненно, что пиздец просто. Берём язык, ради скорости требующий от программиста чуть ли не за яйца себя укусить, и пишем на нём отборное пхпшного уровня говно. Потом ещё на конфу съездим, расскажем как у нас на go получилось то же, только быстрее.
Сейчас вот как раз пытаюсь исправить код, в котором на каждый кадр обходится таблица 12812832, в которой хранятся, сука, индексы в map, из которого нужно достать bool и сунуть в такую же таблицу - это типа кэш блять.
>>1930163 Да в общем-то обычный рефакторинг. Дрочильня на пике скорее от безысходности. Там ещё интересный момент есть - know the stats. Обычно из кода нихуя не понятно, под какие цели именно вот так вот легли операторы и откуда высрались вот такие вот коэффициенты в функциях. Такой себе magic number только размером в десятки или сотни строк.
>>1930269 Ну так автор пика и призывает сразу думать, что пишешь. Тут еще такая проблема не озвучена: бывает, код или оптимизируется сразу, пока он не вырос, или уже никогда, т.к. у него все шансы быть равномерно размазанным по коду, где он будет отжирать 1-5% общего времени кусочками по 0,033%, но никогда не попадет напрямую в найденные профайлером хотспоты, и ты не поймешь, что копать надо его. Я вот сейчас с этим столкнулся - после первых легких +20% скорости уперся в глухую стену.
>>1930404 Не, так дела не делаются. Нужно думать над грамотным разбиением кода на логические блоки. Оптимизация блоков и их частичная замена это уже заключительный этап, когда у тебя есть the stats. И как раз это даёт возможность эффективно профилировать.
>>1930404 Я довольно часто сталкивался с тем, что предыдущий писатель думал не над формой, а над содержанием и его мелкие оптимизации превращали код в кусок бетона. Такой код уже не поддаётся рефакторингу и дальнейшей оптимизации.
>>1930426 Мы как бы в c++-треде, да? Ну, знаешь, треде про язык, само использование которого - в 98% случаев само по себе преждевременная оптимизация? Очень, очень странно растаскивать код просто по логическим блокам и уповать на профайлер, когда у тебя ещё пока чернила на доске не высохли уже должно быть понимание, за счет чего c++ тебе должен обеспечить большую скорость.
Я вот сейчас копаю код, в котором такого понимания не было, и в профайле нет ни одной пригодной для оптимизации функции, занимающей больше 0,5% общего времени. Все тут заебательски инкапсулировано, разбито на милые сердцу функции по 3-15 строк, покрыто юнит-тестами и адово тормозит. А знаешь, чем код занят 20% времени? Обнулением, блядь, памяти для новых промежуточных объектов в куче. memset-ом.
>>1930490 Ну так напиши свой аллокатор памяти, если у тебя выделение в куче тормозит. Я тебе ещё раз напоминаю: самый большой прирост дают алгоритмы и структуры данных (ты же сам написал, что ты переделал хуёвые контейнеры и получил +20%), затем идёт работа с железом и только потом тонкости использования языка.
>>1930404 >люди говорят про оптимизации >между тем сидишь с кодом, в котором на каждый чих делается boost::shared_ptr даже если, сука, можно было выделить просто на стеке переменную и есть конструкции вида map<string, map<string, string>> Но ничего, понемногу прорывается свет наружу.
>>1930490 О, здесь надо запостить кулстори, как я срезал 40% времени загрузки нашего компонента.
Оказалось, что каждый LOG(...) это открытие файла, запись в него, ФЛАШ НА ДИСК, и закрытие.
Когда я переделал все на буферизированный логгер (есть нюансы, что переписывание на нормальный логгер заняло бы дохуя времени, но это уже скоро случится) - вот логирование стало занимать микросекунды. вместо ~10 секунд лул.
>>1930549 Ну так и я про то же: раз уж взялся за c++, сначала определи, чем он тебе поможет, и потом ебашь. Подход "пиши как опердень на джаве, потом профилируй" не работает - под конец разработки уже поздно перекраивать хранение данных, т.к. они к тому времени могут быть раздроблены по 500+ классам, как у меня. Такая вот противоположность преждевременной оптимизации, когда оптимизировать уже поздно. Истина, как всегда, где-то посередине, просто раз плюсы заточены под производительность, то и думать о ней надо раньше. А то получается в руках профессиональный инструмент за большие деньги, а руки из жопы.
>>1930579 У меня похожая хуйня: 20МБ json-ов парсятся десять секунд. Почему? Потому что "чтоб быстрее" json-ы парсятся на лету по мере чтения с диска, а для парсинга делается lookahead в один символ (напр. чтобы отличить пробел, строку, объект или массив)... этот самый символ берется тоже с диска вызовом read(). На каждый байт - 2-10 read-ов. Убрать это говно нельзя, т.к. писал тимлид и я не могу сказать ему, что он мудак.
>>1930490 >Обнулением, блядь, памяти для новых промежуточных объектов в куче. memset-ом. не криптуха случайно? если криптуха, то хуй ты иначе сертификацию пройдешь
>>1930163 Какой-то ноунейм ревьюит код другого ноунейма и придирается к наличию дефолтного енум-значения, без которого не обойтись в некоторых случаях. 2008 год. Причём придлирки настолько мелкие, что если там и будет прирост производительности, его надо будет атомными часами обнаруживать. Вот это ужас - вместо захардкоженого предела (который мб и не изменится), поставить задефайненое значение - как дальше жить. Про алгоритмы, предложения по смене структур данных на более эфективные ни одной писульки нет, хоть этот мамкин ревьюер судя по всему в предметной области разбирается
>>1930598 >20МБ json-ов парсятся десять секунд. Почему? Потому что "чтоб быстрее" json-ы парсятся на лету по мере чтения с диска, а для парсинга делается lookahead в один символ (напр. чтобы отличить пробел, строку, объект или массив)... этот самый символ берется тоже с диска вызовом read(). На каждый байт - 2-10 read-ов. Убрать это говно нельзя, т.к. писал тимлид и я не могу сказать ему, что он мудак. Может просто готовую библиотеку взять? Типа модно стильно молодежно. На худой конец отобрази файлы в память, чтобы никакого диска.
>>1930766 >>кокрас >Вскрикнул от смеха на весь Бангладеш Учи мемы, чтобы не быть батхёртом. >>в конце девяностых шёл в первый класс >Давно это было, да? Пикрил.
>>1930648 > Причём придлирки настолько мелкие, что если там и будет прирост производительности, его надо будет атомными часами обнаруживать. Вот практически про тебя и сокрушаюсь. Если ты не понимаешь, как писать быстрый код и почему каждый бранч в горячем цикле - как серпом по яйцам, если для тебя непонятно, почему условие над float-ами должно оставаться float-ом, то зачем ты вообще пишешь на c++? Объективно, код на джаве пишется быстрее, работает везде и менее подвержен ошибкам. Денег там тоже наверняка больше.
>>1930863 Я готов с тобой поспорить, что Performance это баззворд, и готовить его умеют в 3.5 конторах, типа хуяндекса. В обычных проектах (не хуйлоад) - даже профилировать не умеют нормально.
>>1930863 Во первых я ничего про это сравение и не написал, хотя это из того же огорода. Вместо того чтобы подумать как улучшить вещи, гораздо сильнее влияющие скорость, чел предлагает копаться в отличиях сравнений. Если такие охуенные так идите всё ассемблируйте, хули к высокоуровню вообще притрагиваетесь?
Во вторых судя по твоей истерике от сравнения на несколько бит больше это тебе серпом по башке в детстве слегка ебанули, вот ты и стал полоумным
>>1930963 Короче, ты порвался. Дурачок, плюсы - это и есть современный ассемблер. И непонятно, что ты делаешь в треде плюсов, если не умеешь в низкоуровневые оптимизации, которые практически единственное плюсов применение. Какие, нахуй, вещи у тебя на скорость влияют, дебил? Это 3д графика, в каком-нибудь офлайн рендере через такой код могут проходить десятки миллиардов точек на кадр, а просранное по вине кривого кода время может стоить твою месячную зарплату ежедневно. Даже просто в реалтайм графике просер таргета по числу треугольников на кадр чреват задержкой релиза на месяц и больше, пока художники будут переделывать ассеты.
>>1930979 >десятки миллиардов точек на кадр Заменяются LOD с десятками миллионов точек (это такие структуры данных, мань) Если ты про научный рендер под всякие CAE, то он масштабируемый на несколько железок (снова алгоритмы и структуры данных под балансировку). >задержкой релиза на месяц и больше, пока художники будут переделывать ассеты 'это не твоя проблема, что техлид проебался с оценкой железа или язык в жопу засунул, когда ему ТЗ на проект выдали
Есть ли смысл вкатываться в GameDev? Правда ли что там постоянные переработки и горящие релизы но деньги больше чем в других областях? Сейчас около 3 лет опыта на плюсах в computer vision.
>>1931240 Ты рофлишь блять? Геймдев в рашке это хуита с инфантильными дегенератами и самой низкой по рынку зп. В то время как в твоих компьютер вижнах можно получать лютые деньги, работать в крутых международных компаниях и заниматься каким-нибудь ресерчем, а не код писать по 8 часов в день. Я тебе уебу щас.
>>1931346 А разве нет международных компаний в GameDev? Вроде как по зп столько же предлагают что в других отраслях.
> получать лютые деньги, работать в крутых международных компаниях и заниматься каким-нибудь ресерчем, а не код писать по 8 часов в день. Это больше про науку и исследования а не разработку ПО
>>1931372 Есть места, где платят в валюте, но и конкурс соответствующий. Вообще есть смысл поработать в gd, но не засиживаться там (чисто на опыт, который может очень пригодиться в cv). А так, cv более перспективное направление (и по деньгам и по условиям труда).
>>1931372 >А разве нет международных компаний в GameDev? В рашке - нет, конечно. Есть только оутсорс всратый. И даже нормальных российских компаний, где кто-то пишет свои движки/тулзы/что-то интересное - несколько штук всего. С лютой конкуренцией и хуевыми условиями. > Вроде как по зп столько же предлагают что в других отраслях. Нет. Ты экономику не наебешь. Когда к тебе идут додики-геймеры без личной жизни, готовые за дошик работать целыми днями и которые поувлеченнее тебя - нахуя платить больше? >Это больше про науку и исследования а не разработку ПО Ну а в геймдеве что ты делать будешь, не зная предметную область? Тесты писать или гуи делать? Это вообще вдвойне дно.
Анончик, помоги, нужно до середины лета джуном стать. Знаю синтаксис языка с учётом стандарта 11 года (ну как знаю, книгу просто закончил и листал другие, понятно что я знаю практически нихуя), STL какую-то часть, алгоритмы и структуры данных на теоретическом уровне (лекции с ютуба). Но при этом ничего не писал толком, только стрёмные книжные задачи и на кодварс немного. Куда копать, что писать и делать эти 5 месяцев? Свободного времени по 8+ часов в день. Вакансий на джуна хватает (всего ~500 на плюсах по городу), нужно только как-то доползти к нему.
>>1931437 сходи лучше сначала в армию, там станешь хакером, быт программистский разведешь, разные либы будешь в роту водить, говнокод с пацанами обсуждать, а то пойдешь сейчас и в итоге твой план не тратить время на вуз заменится тратой времени на догонялки с военкомом, к тому же к выпускнику 11 класса предвзятое отношение будет
>>1931437 блядь, хуею с таких как ты. Ты будто грузчиком на работу хочешь устроиться и ебашить скривя рожу ради денег? Кодинг же должен хоть немного удовольствия приносить ну хоть в начале и интересовать тебя. А если интересует так разве сложно придумать себе задание? Какие-то технологии которые интересуют копнуть хоть что-то. Или тебе ничего не интересно, тогда зачем тебе программирование изучать? Да сядь хоть парсер для начала напиши тех же ini-конфигов.
>>1931543 Да, но у них постоянно деньги заканчиваются потому что из Дыбовского плохой продюсер и они просирают половину времени занимаясь не зная чем прежде чем полностью изменить концепцию и начать сначала
>>1931534 Что варгейминг? Ну есть варгейминг, да. Если ты не ненавидишь танки и всякие самолеты всей душой, как любой нормальный человек - вперед работать за лоу прайс.
>>1931551 Аллаха ради, лучше учи пайтон и вкатывайся во что угодно, а не трать годы на бесперспективную хуиту из-за самоподдува даунов с харкача про тру программирование, разработчиков в свитерах и всё такое прочее. Ты тут общаешься с бомжами-ноулайферами от мира айти, уже практически контуженных плюсами и ни на что большее не способных. Разработчик С++ среди остального айти - это как шизойд в обществе нормисов. Он думает, что он самый умный и самый охуенный, делает там что-то важное и пиздатое, но на деле он просто пердолится какой-то никому не нужной хуйней и все считают его долбаебом, кем он и является.
>>1931561 >Разработчик С++ среди остального айти - это как шизойд в обществе нормисов. в моем мухосранске рыночек этих долбоебов (и меня в частности) уже порешал - работы вообще нет кто успел, тот вовремя соскочил на другой хуец (явку), или сбежал в столицы, а остальные сдохли или подыхают, естественный отбор, епт
>>1931571 в вузе вообще не должны ЯП давать должны давать теоретическую базу, чтобы ты шарил за семантику, чтобы тупо очередной говноязык глянул и понял че там за семантическая модель и через неделю начал на нем ебашить
>>1931573 в продавцы есть, тк это самые отстойные работы а вакух дворников и правдо мало, потому что это чиловая работенка! проскакивают вакухи мыть подьезды, но, как понимаешь, это уже не то
>>1931578 это не то вам должны были давать теорию о языках программирования, какие семантические модели существуют, какие модели исполнения и прочее базу для того чтобы в будущем ты сел и за неделю понял как писать на новом яп
Ребят, кто-нибудь в хуавей аплаился на с++ какой-нибудь в неважно какую команду? Что там вообще спрашивают? Расскажите плиз, если кто-то что-то знает, я уже заебался по собесам ходить и обсираться от нерелейтед хуйни.
>>1931624 Современный ИТ рынок это писать "сделай заебись" и получать на выходе какое-то уродливое нечто, умоляющее поскорее убить его, и жрущее ресурсы ЭВМ как не в себя, хотя оно толком ничего особого и не делает? Это, блять, рынок?! Говнотон не предназначен для продакшена, это язык для проверки теорий.
>>1931638 Ну, я всегда рассказываю про собесы в треде, если кто-то что-то спрашивает про компанию, куда я апплаился. И в целом контрибьючу дохуя вам тут, например.
Вкатывальщик крестов итт поясняет за пухон. Знаю его 8/10. Очень приятный язык для тебя, словно стихи пишешь, но как только нужно реализовать что-то серьёзное все непременно сталкиваются с медлительностью. И начинается постоянная борьба за производительность, рефакторинг, оптимизации ещё ещё но ты чувствуешь потолок установленный тебе языком и его тяжело преодолеть. Кресты конечно в сравнении с питоном сложнее для тебя хотя по-моему мнению за счёт того что просто имеют на несколько порядков больше подводных камней. сам же язык для меня лично оказался не столь страшным как пугают, просто нужно перестроиться на статическую типизацию но они больше ориентированные на железо. Приятно чувствовать в руках инструмент дающий тебе больше возможностей пусть даже тебе пока тяжеловато и ты толком не умеешь ещё им пользоваться. Алсо, я не говорю за работу, спрос и рынок. Хуй знает что там я никогда не работал кодеманкей и не планирую. Программирование моё хобби отвлекающее от невроза и дурных мыслей.
>>1931655 >ясняет за пухон. хуево поясняешь а надо отталкиваться от того, для чего создавался язык, смотреть его дизайн а создавался он для детишек, для обучения программированию и сразу становятся понятны решения, принятые при выборе семантики и синтаксиса этого языка любого прогера, знакомого с теорией яп (либо его выдрочили в норм вузике, либо он это получил самообразованием) тошнит от питона
>>1931687 Не сгущай краски как скриптовый язык для прототипов он годен. Не одними детишками обойдется. И нишу занял тоже обширную. Кто и кресты обсирает дай бог но меня это не остановило в плане их изучения.
>>1931687 мань, не нужно возвышать язык, только потому что он байтоебский питон это и бэк, и мл, и скрипты для сборки и много много чего а еще он НЕ создавался для обучения. Он создавался для амоебы (Гугли). Простота позаимствована от АВС. И вот именно авс создавался для обучения, а не питон
>любого прогера, знакомого с теорией яп (либо его выдрочили в норм вузике, либо он это получил самообразованием) тошнит от питона лол бля, а в твоей шарашке-парашке не знают, что питон написан, вообще говоря, далеко не последним человеком в компьютерных науках? а ну да, работникам ООО РогаИКопыта всегда виднее (ну либо ты просто даун) как должен выглядеть просто многофункциональный скриптовый язык
>>1931575 В итоге будут тебя этой теорией про семантику дрочить и без практики интерес просто угаснет. Куда лучше вместо этого преподать несколько языков разной семантики с практическими задачками на них.
>>1931457 Самому для себя можно какую-нибудь совершенно бесполезную хуйню придумать, где потом будешь заниматься рисованием каким-нибудь и дизайном геймплея с решением задач по физике, потом забьёшь и джуном так и не станешь.
>>1931561 Вообще, новые проекты на плюсах кто-нибудь сейчас начинает? Ну, кроме редких движков для игр и высокочастотного трейдинга. Десктопные приложения и графические интерфейсы к железкам переводят на веб - со всякими электронами проще, гибче, быстрее и красивее, кросс-платформенность обеспечивает веб-движок. Я писал несколько лет разное, в том числе не очень низкий эмбеддед, что-то на плюсах, что-то на сишке, но пришёл к выводу, что плюсы для этих проектов вообще не были нужны (да и сишке в них тоже мало места), так что считай пилил легаси проекты, которых по хорошему быть не должно. Вот думаю, или плюсы дальше дрочить и вкатываться в какую-то область, или вкатиться во что-то другое - в эмбеддед, системное программирование, мобильную разработку, благо в последней можно работать из дома (хоть и рынок более скучный в основном).
Такш, ну што ш. Прочитал Страуса, прочитал ravesli, всё закрепил видосами simplecod`a. А что теперь делать то? Что писать, что читать, что учить? Я тупо в прострации. Советов, пожалуйста.
привет двач у меня мечта переехать в США и работать в топ продуктовых компашках типа спейс икс и прочих (на самом деле пиздец мечтаю в спейс икс или тесле) но в ближайшие года 3 я вряд ли съебу (по личным причинам) поэтому вопрос: какие компании, помимо яндекса будут иметь весь за бугром + набраться хороших знаний? я в дс если что о себе: 24 года, есть опыт байтоебли (2 года на чистом си) есть полтора года опыта в гейдеве. Образование топ вуза по релевантной специальности 6 лет
>>1932658 Ну такое. Если в сосничестве хотел велосипед, то потом оказывается что уже не хочешь. Если тебе надо портфолио, то вкатывайся не в российские компании, а в представительства зарубежных. Интел, хуавей, нокия, нвидиа и прочие.
>>1932718 Ну и причем тут твои регистры и язык с++? Язык с++ отвечает за свои конструкции, ему надо следить за всякими областями видимости, вызовом всяких конструкторов деструкторов вовремя и так далее.
Посмотрите плиз на 19 строчку. Почему так сделано в этом языке что указатель на элемент массива не нужно разыменовывать, т.е. надо писать без звёздочки?
Есть какой-то актуальный список/чарт свежей литературы для С++ на ангельском, потому что в шапке помимо ньюфаг-книг какое-то устаревшее говно мамонта на русике (?).
сёма, как называется проблема разделения строки/списка на подстроки/подсписки чтобы при конкантенации они давали изначальный список?
допустим есть abcd, и это можно разбить на 2^(len(abcd)-1) возможных вариантов:
a,b,c,d a,b,c d a,b c,d a,b c d a b,c,d a b,c d a b c,d a b c d
для наглядности записал в столбик без кавычек, ну и видно что разделителей можно поставить так и на тех местах, как единицы появляются в бинарном счёте. но это не обязательно, было бы даже пизже, если б была сортировка по колличеству фрагментов. сёма, помоги как такое примерно на плюсах сделать для строк/контейнеров произвольной длинны.
>>1931650 лошок написано же - знать инглишь а ты сразу, о, поближе к железу, а что бы там поизучать понизкоуровней! лошара, буду писать код в промежутках между онанизмом когда нормальные пацаны зубрят инглишь, накидывают пиджачок на плечи, закидываются веселящими таблетками на собес и устраиваются на 500+к и это в нищей россии где обосраный работяга за заводике 17 рублей получает поссал на тебя на всякий случай
>>1932411 >А что теперь делать то? вакансии дворников, грузанов в пятерочку в твоем мухосранске есть еще? или все занято уже? если последнее, то хз тихо жить на мамкину пенсию, как она помрет, пропьешь хату, а сам вешайся
>>1933040 Ты чо умничаешь, пёс. С Сёмой я может и загнул, но ショ куда ближе к сё, чем к шо. Скорее всего, общепринятый вариант транскрипции со мной согласен, но это ещё проверить надо.
>>1933072 Мне Лохсофт регулярно раз в 3-4 месяца пишет, хотя я им не подовал. Это обычная рассылка на всех кто по результатам поиска подошёл. Требования всегда пишут с избытком. Реально достаточно ~20-30% от написанного. Предлагаемая зп - вычитаешь ндфл, берёшь по нижней границе + 10-15%.
>>1932907 По идее можно задачу свести к генерации сочетаний. a 1 b 2 c 3 d 4 e 5 f На множестве пробелов m = {1, 2, 3, 4, 5} получить все сочетания из n = 1, n = 2, n = 3, n = 4, n = 5 элементов. Короче, генерация C из m по n.
using cm_t = std::set<int>; void get_Сmn(cm_t& m, const int n, std::vector<cm_t>& result) { if (m.size() > n) for (int i = 0; i < m.size(); ++i) { auto m1 = m; m1.erase(m); get_Сmn(m1, n, result); } else if (m.size() == n) result.add(m); }
Что можно написать в отрыве от технологий, фреймворков, либ? Просто плюсы с STL и больше ничего, чтобы синтаксис задрочить и чтобы подводные повсплывали. На мысль только приходят всякие системы типа банка или магазина, где можно писать собственную иерархию классов и задрачивать не задачки с кодворс, а ооп уже именно. Что можете подсказать по этому поводу?
>>1934198 Сам ОПЕНГЛ - да, подустарел немного. Но ты без проблем на нем можешь написать йобу уровня Last of Control Eternal. Да и сами принципы и идеи компьютерной графики нихуя не изменились в последнее время, кроме рейтресинга.
>>1914169 (OP) Аноны, пишу большое 3х мерное приложение на с++ с opengl. Собственно, уже был до этого опыт написания больших прил. и у меня было всё в одном исходнике, я очень путался в нём.
Не подскажите как лучше всего разделять большую программу и где об этом почитать, чтобы не путаться в ней. Я не работаю программистом, а пишу это для своей основной работы, прошу помогите мне.
>>1934220 Рейтрейсинг же тоже старая тема, помню рейтрейсинговые рендереры (рендеровщики?) для блендера ещё в середине нулевых были. Или сейчас он сильно продвинулся вперёд?
>>1934278 >>1934280 >>1934220 Рейтресинг не просто не новый, он самой первой компьютерной графикой и был. Уже потом придумали делать растрезацию (рейтрейсинг наоборот) и придумали для этого видеокарту, которая именно растрезацию и параллелит. А так были и для рейтрейсинга аппаратные юниты какие-то дико оверпрайсные, которые не взлетели. Касательно АПИ, рейтрейсинг тоже делался до rtx понятное дело на gpu, просто с rtx ядра дополнительно для этого завезли.
бля, поцонва короче вопрос к вам всем (если увидете это сообщение в Си треде - не обессудьте, похожий вопрос просто) короче я вот школотрон 23 лет, в этом году заканчиваю шарагу в ООО РогаИКопыта я занимался топовыми задачами, связанными с железом (ну всм не один тянул проект, а в команде в роли ждуна) типа датчиков в металургии, контроллеров приводов и прч штуках занимался этим два года но есть трабл - в этой конторе даже у руководителей зп 45-50, у меня ее вообще нет - чалюсь там только из-за кайфа работы с реальным железом и я вот хочу сменить профессию но смотрю на хабр карьеру/ххру - пиздец из ОЙТИ одни жанги\спинг\датасосист а из с++ одни оптимизаторы вычислений че, все вообще плохо? я зря учился роботов программировать 6 лет бля?
>>1934777 >че, все вообще плохо? я зря учился роботов программировать 6 лет бля? Да, эмбед это самое дно по зп. На том же хабре можно посмотреть статистику.
Глупый вопрос. Как в Qt реализовать карту, например, компьютеров. Основые функции - добавление, удаление и редактирование свойств сих объектов на карте. Если же это ад и геморрой писать такое на Qt, то что может подойти?
Петян, что за залупа? хочу отсортировать вектор с битсетами по количеству единиц в битсете. есть ж sort, которому можно передать функцию сравнения, ну или определить operator<, всё просто думал я, но нихуя не выходит.
где-то при определении функции сравнения я обсираюсь с темплейтом. помогай.
Товарищи, как джуном вкатиться? Студентота первый курс. Алгосы и структурки вроде знаю, на кодфорсесе 1800 рейта, деревья вертеть умею. По плюсам знаю почти всю программу курса от яндекса на курсере, стл от майерса и сложные задачи саттера курил, на цппквизе большую часть желтых решаю спокойной, но хоть сколько-то больших проектов не писал ни разу, только домашки типа длинной арифметики, листа, тайплиста. Что вообще делать дальше?
>>1934979 У тебя битсеты разной разной длины, а аргумент шаблона только один, следовательно компаратор только битсеты одинаковой длины принимает. Допиши вторую длину просто вторым аргументом шаблона.
>>1935063 Большая часть RnD приходится на окологосконторы, в которых ты работать не станешь. Коммерческие конторы предлагают либо легаси либо аутсорс какой-то части проекта их контрагента.
>>1935021 >>1935043 >>1935018 Блять, чел, может для тебя будет сейчас это откровением, но никому нахуй не всрались твои верчения деревьями. На цпп нету работы без предметной области. Оллимпиадное программирование - это чисто академическая хуита практически без приложений, особенно в россии. Если ты придешь на работу и скажешь я последние несколько лет вместо того, чтобы учить предметную область или хотя бы цпп, переписывал задачки с одного сайта на другой и умею писать говно в метод мейн и нажимать кнопку Compile, тебя просто пошлют нахуй. Любой программер нормальный знает базовые алгоритмы/структуры данных, при этом никогда не занимавшись никаким олимпиадным программированием. Всё это существует исключительно из-за блажи всяких Яндексов и Гуглов, которые пиарятся среди студентов и чтобы хоть как-то разделять дебилов и не дебилов рабов и не рабов, используют такое вот беспонтовое задротство.
>>1935535 причем на самом-то деле обидно я вот хотел бы работать в яндексе в отделе беспилотных автомобилей, тк у меня и диплом на эту тему и в стартапе похожем два года оттарабанил в целом то, даже готовлюсь туда пойти но так ебет конечно, сперва нужно литкод ебучий задрочить, потом алгоритмы тоже именно ЗАДРОЧИТЬ вообще збс, что на собесе тебе нужно деревья разворачивать, а на работе, внезапно, матрицы расклыдвать
>>1935535 >На цпп нету работы без предметной области Двачую, приходишь такой на собес на джуна в итоге тебя закидывают вопросами из предметной области и не берут. Типо они серьезно блять думают, что кто-то вот сидел дома занимался такой нишевой хуйней как обработка изображения на плюсах естественно, а не на пистоне с нейронками не для работы, а чисто для себя?
>>1935535 Всем похуй на предметную область. Весь FAANG + Яндекс спрашивают только литкод, если ты идешь на джуна\мидла. Предметную область реально спрашивают (и то не всегда) - на сениора.
Соус - собесился в гугл и яндекс(дошел до оффера), еще несколько знакомых собесились в гугл, все одинаково.
>>1935589 Так я тебе это и написал. Большие корпорации пиарятся и нанимают людей по олимпиадным задачам, чтобы программировать хуиту. В нормальных компаниях, которые нанимают тебя выполнять конкретные задачи, такого не происходит, очевидно. И сам же пишешь, что на сеньёр позиции спрашивают предметную область.
>>1935589 >всем похуй на предметную область >всем не похуй на предметную область, когда нанимают на сениор позицию, где нужно дела делать, а не хуи пинать ты только что гранату
>>1935584 Ты долбаеб? Ты думаешь в универ зачем люди идут? Чтобы на цпп учиться кодить? В универ идут как-раз, чтобы научкой заниматься и предметную область задротить. Начитаются /b/ про универ нинужин и потом свои жопы взрывают, когда их на работу не берут лол.
>>1935589 челик, яндекс не берет людей со стороны да, они пригласят тебя на собес, hr тебя поразвлекает охуенными историями как у них охуенно на фирме, а на тех собесе ты попереворачиваешь строку и пообходишь дерево, но оффера ты не получишь вот и все
>>1935535 >На цпп нету работы без предметной области. на цпп (в россии) (сегодня) нет работы вообще, большинство вакансий - фейковые, как, к примеру, все вакансии касперского
>>1935691 >пруфы? ты правда думаешь что яндекс опубликует статистику сколько людей берут они с улицы, а сколько приходят к ним по знакомству или их забирают с прикормленных кафедр? они никогда этого не сделают, ибо их репутации "открытой" компании придет пиздец с улицы разрабов они вообще не берут есть шанс устроиться тестировщиком или на другую околоайтишную специализацию, но не разрабом
>>1935678 Так в универе тоже нет таких дисциплин как обработка изображений сырых изображений с камер, разработка хайлоад веб-серверов, не рассказывают про разработку игр (тоже большая часть вакансий на плюсах) и т.д.
если ты простой хуй (те тупо закончил мухосранский вузик на программиста, чутка поработал уже по специальности в своей мухосрани) то больше шансов с наскока устроиться в мейлру, чем в яндекс в первом дохуя всяких проектов, в том числе и купленных, в том числе и всяких умирающий помоек типа аськи или старых ммо и тебя еще могут взять разрабом разгребать это говнецо
>>1935685 Хз. Ниразу не ходил к ним на собес, но эти черти вечно в телеграм написывают с вакансиями, либо когда ты на хх резюме выкладываешь, либо даже просто так. Я подозреваю, что вышка ебаная слила мой номер этим пидорам дополнительно к номеру с хедхантера, потому что я помню сразу после окончания универа это началось. Еще эти эйчарки тупые такие пиздец, похуй какой стэк у тебя, похуй что ты там вообще ищешь, просто зовут на дженерик вакансию C++ разраб с машинлернингом и всё.
Как по мне, они берут студентов с мгу/вшэ/мфти. Выпускников, которые занимаются научкой, может тоже берут, но я не знаю таких, да и они сами в эту хуиту не идут. Обычных разрабов вообще, наверное, не берут, так как у них додики из первой категории просто остаются работать. Сеньёров-помидоров скорее всего берут, иначе сосали бы хуй на серьезных задачах, но они, я думаю, опять же к ним не идут.
>>1935697 ну я понимаю твою логику, особенно при наличии ШАДА но у меня есть знакомые, которые пришли с улицы а аргумент "ну ты правда думаешь?" - ни о чем так вата доказывает, навальный иноагент "ну ты правда думаешь что он учился в ели и его не завербовали?" так что, браток, твои слова не особо что-то значат
>>1935709 > Как по мне, они берут студентов с мгу/вшэ/мфти. c типом их отбора только такие и попадут, имхо конечно можно долго рассуждать на тему того, нормальный ли у них отбор, но как по мне - хуйня какая-то причем тоже странно то, что у яндекса особо топовых продуктов то и нет поиск у них говнище (кроме картинок), а на любой другой продукт есть топовый аналог еда - диливери такси - убер (еще и подешевле) остальными даже не пользовался (и ок) ну да, есть у них беспилотники - тема хорошая алиса тоже нормис но имхо, сбер через лет 10 должен догнать шарагу эту
>>1935737 Апплаишься на вакансию, тебе отвечают, дальше 3 этапа.
1. Часовой собес по скайпу с онлайн-блокнотом, дают пару алгоритмических задач, пишешь их, чел с другой стороны смотрит.
2. Если первый этап прошел - зовут в офис (хз как сейчас). 4-5 часовых секций с этими же ебанутыми задачками. Одну завалить можно, две - сразу заканчивают собеседование. Критерии завала - хз, я всё прошел, хотя были моменты когда адово тупил.
3. Это уже интервью с нанимающим менеджером, где он на тебя смотрит. Иногда их может быть несколько, т.к. пайплайн собеседований один. И манагеры могут даже за тебя соревноваться.
>>1935744 Я не он, но что бы ты назвал обязательными вещами по структурам данных / алгоритмам? Я, понятное дело, знаком со всеми простыми структурами данных, которые в реализации стл используются, например. Читал давно Кормена, слушал курсы всякие, встречал и в универе, и на практике всякие задачи с деревьями и прочим. Но когда встречаю задачки уровня литкода, которые нужно решить сходу не сильно думая - обсираюсь обычно.
Есть вектор пар чисел, являющихся координатами точек на плоскости. Определить, есть ли некая ось симметрии параллельная оси Y, относительно которой наши точки образуют симметричную картинку.
Есть строка вида "a b c d ". In-place заменить все повторяющиеся пробелы, на 1 пробел.
Написать, внутренности shared_ptr, написать для него конструктор копирования и деструктор, сделать это так, чтобы все работало в многопоточной среде.
Есть API, которое выдирает из некоего стрима слово. Написать функцию, принимающую N (Считать N раз из стрима), и выводящую Top100 слов в порядке возрастания их частоты в стриме.
Написать функцию, выводящую все числа, в которых присутствуют все цифры по одной. Например, число "1234567890" удовлетворяет условию.
Есть строка вида "a b c". In-place заменить все пробелы на '%20', дополнительная нужная память для замены считается уже выделенной внутри строки.
Написать аналог функции to_lower.
Есть массив целых чисел и некое число K. Определить, есть ли в массиве чисел такая непрерывная последовательность, сумма всех элементов которой дает нам K и вернуть индексы начала и конца.
Есть вектор из пар координат X, Y, где каждая точка - то квадратик 1х1 размером. Если точки находятся рядом по вертикали или горизонтали - то формируют одну фигуру (Квадратики 1х1 соединяются в нечто большее). Найти периметр наибольшей фигуры из тех, что построены на плоскости по этому вектору.
>>1935756 Похуй на то, что ты читал кормена и слушал курсы. Надо уметь решать ебучий литкод, это отдельный навык. И этот навык и получается только дрочевом литкода. Когда я пошел в яндекс - у меня было под 170 задач решено.
Уже 1к постов, вы шизики когда новый тред создавать будете? Сидят, считают единицы в битовых полях, а на всё остальное насрать
>>1935774 Ты пидор, перекатывай Если мне не понравятся картинки, будешь переделывать пока не будет идеально, и самотык свой еще месяц не увидишь (я пока сам с ним поиграюсь)
>>1935758 >Есть API, которое выдирает из некоего стрима слово. Написать функцию, принимающую N (Считать N раз из стрима), и выводящую Top100 слов в порядке возрастания их частоты в стриме. Хранить в хеш-таблице/дереве поиска гистограмму, потом перевести в вектор и сделать на нём условный quickselect на 100 элементов? Первое, что в голову пришло.
>>1935957 Мне релокацию в КАломну предлагали из ДС2 кек. Грят дадим тебе билет на поезд до Коломны и компенсируем стоимость аренды у бабы сраки. Будешь авиастроение наше поднимать.
>>1935957 >>1935972 А нахуя? Если попердолиться хочется на отечественной хуйне, то и в дс найдется. Мне постоянно на хх приходят инвайты во всякие Концерн Залупки или ТОП-СИСТЕМЫ. Есть смысл такого ебанутого дауншифтинга, мне кажется, только если что-то супер узкое научное делать и в какую-нибудь лабу уебывать, с каким-нибудь там ускорителем элементарных частиц попердолиться или типа того.
Стоит ли вкатываться через трейни или интернатуру? Не особо уверен в своих знаниях, но в городе часто открываются вакансии в глобаллоджик и прочие галеры. Насколько там [на вакансиях трейни/интерна] высокие требования к кандидатам? Может проходил кто-то здесь подобное?
Кстати, понимаю его, с железом пердолиться интересно. Жаль, мои навыки мало кому нужны, всего изучил понемногу и теперь думаю, куда дальше. В ДС ехать не хочу.
>>1936057 понимаю тебя ничего не имею против классического такого айти с вебом и прочим - куда бы мы без них но вот когда пишешь код для железяк, которые взимодействуют с реальным миром - то ваще пиздец как круто правда там Си в основом. но все равно я думаю вкатиться куда-нибудь в эмбеддед, пусть там и зп не очень большие, но, думаю, косарей 100 можно найти ( а там мб и рост будет) а потом съебать в норм страну, где такая хуита востребована (США)
Как устроена хэш-мапа? Знаю, что есть bucket, что есть хэш, количество элементов в bucket зависит от количества коллизий, етц. Но как именно значение хэша мапится в конкретный bucket?
>>1936099 Индекс это же идентификатор последовательного представления. А выход хэша произвольный. Как одно преобразовывается в другое? За счёт какой идеи значение хэша служит индексом?
>>1936127 Он не совсем произвольный, а зависит от текущего размера массива и обычно является числом, в отличие от значений всяких криптографических хеш-функций наподобие sha/md5. Вычисляется так, чтобы значение было в пределах от 0 до размера массива, в простейшем случае это можно сделать через остаток от деления на размер массива.
>>1936181 Это может одна хеш-функции. Не обязательно даже, что там явно вычисляется % в конце, там может быть магия битовых операций. Или вся функция - это %, если вычисляется для какого-нибудь unsigned int, например.
Сап гайз, есть спецы по qt? QOAuthHttpServerReplyHandler::callback() имеет строгую привязка на урл. Полагаю, остается только переопределить его, если мне нужно другое значение, а не http://127.0.0.1:%1/%2
>>1936149 >Он не совсем произвольный Ну я специализации когда добавляю для своих типов, чтоб использовать их в качестве ключа, то получается достаточно произвольно.
>Вычисляется так, чтобы значение было в пределах от 0 до размера массива, в простейшем случае это можно сделать через остаток от деления на размер массива. А что потом делать, когда размер массива изменился? Все хшы пересчитывать?
>>1936188 >А что потом делать, когда размер массива изменился? Все хшы пересчитывать? Да, таблицу придётся перестроить.
Вообще есть вот такой пример с хэшами. Допустим есть много отрезков на плоскости и тебе нужно быстро определить кто с кем пересекается. Для этого берётся сетка m x n и для каждого отрезка определяется на какие ячейки он попадает. Получается хэш-мапа с ключом - индексом ячейки (опять же двойное хэширование - первый хэш отрезка {x,y}, второй x+y) и бакетами - списками индексов отрезков.
Если ты поменяешь сетку, то тебе заново придётся перестроить всю таблицу.
>>1936086 Заграница не для всех. Привыкать жить в хуй знает каком обществе по хуй знает каким правилам, то нельзя, это нельзя. Лучше работать в дочерней конторе какого-нибудь предприятия раз уж на то пошло, такого и в России хватает. Видел вакансию писателей прошивок под панели для каких-то западных тракторов. Прошивки продвинутые, с GPS, автоматизацией, кучей кнопок.
>>1936184 В 5.15 уже есть setModifyParametersFunction, где ты можешь изменить значение, например auto niggers = new QOAuth2AuthorizationCodeFlow(this); ... niggers->setModifyParametersFunction([](QAbstractOAuth::Stage stage, QVariantMap parameters) { (parameters)["redirect_uri"] = QUrl("fuck_you_niggers"); });
>>1916303 Пиши что-то своё смело, попутно читай разные штуки и рефактори свое детище. Я так писал тетрис, используя сишные массивы и минимум классов, а потом узнал про стл и переводил на него код
>>1936038 Короче скачал codeblocks он с g++. Ещё встречал такое что некоторые конторы используют cmake для сборки, но там вроде всё просто,правда я собирал проект максимум из трёх файлов.