Народ, привет вопрос к тем, кто работал с облаками точек В общем, у меня есть azure kinect, висящий ровно над объектом (в пределах человеческой погрешности) Каким образом можно рассчитать, сколько точек будет находиться в объекте, после преобразования в облако точек?
>>1936304 → Всмысле MultiIndex? Поддержание двух сортировок (по строке и по встречаемости) во время построения таблицы на всём множестве слов (хотя нужно только на 100 самых встречающихся) тоже может быть затратно.
>>1936696 не совсем короче у меня есть предмет, размеры которого я точно знаю - это коробка от обуви, рядом с этой корбкой лежат более мелкие предметы и вот мне нужно эту коробку распознать после кластеризации у меня остается прям выделенная коробка и другие кластеры я хочу отфильтровать по количеству точек в кластере мелкие предметы и поэтому я хочу знать, условно, сколько точек на мм\см\м мне дает азур кинект
объясняю, что хочу и что идёт по пизде. есть контейнер foo, в котором хранятся структы Bar. есть функция, которая проверяет, есть ли структ bar в контейнере. если нет, то тогда и только тогда создаёт новый структ. а если есть, то вытаскивает тот, что уже есть. после этого всего с созданным/вытащенным структом функция что-то делает дальше.
короче, как это бы сделать, чтобы совсем не уёбищно было?
полчаса как програмист на плюсах10/02/21 Срд 17:22:13№193686217
>>1936565 Выблядскому языку об этом грех не напомнить.
>>1936857 Ты вызываешь update для созданной на стеке переменной, переменные в контейнере не меняются. if (it == end(foo)){ foo.emplace_back(Bar(val)); foo.back().update(update); } else it->update(update);
>>1937109 Нет, кинект я в руках не держал, как он точки раскидывает я не знаю, поэтому ничем помочь не могу. Если формализуешь задачу, тебе много кто сможет подсказать, а так просто никто не понимает, что за хуйню ты спросил.
Короче так, я более-менее освоился с С++, уже пишу лабы в стол, классы, ооп, паттерны - чисто общепрограмерское уже освоил.
Но С++ я осваивал урывками, где-то подсмотрел, где-то недочитал, где-то недослушал... Собственно когда-то я взял книжку С++ за 21 день. Честно выполнил там занятий по первой недели и бросил. Дальше я книг не читал. Во всем разбирался поскольку,постольку, заебывая всех вопросами или гугл....
У итоге ОООООЧЕЕНЬ много дыр в знаниях базы по С++. Ну типа работает инкремент и чем отличается от посткремента, или там что происходит с переменной при переполнении.. А как стековая память выделяется. А где же хронятся статические переменные. А где там константы и т.д. Я уже промолчу про такие вещи как rvalues и т.д.
И вот хочу взять книженцию и пополнить знания по базе...
И вроде как я уже и не новичок чтобы читать Липмана (пробовал, скучно, так как все это уже знаю, выискивать там среди тон текста дыры - такое себе занятие, иголку в сене быстрее нахожу). Можно было бы конечно Страуструпа - но какой же он тяжелый
>>1937630 Книжки дальше бесполезно читать. Ищи всякие вопросы по с++, типа такого: https://cppquiz.org/ Ещё природное любопытство помогает - а что, если я вот так вота напишу... oh shit...
>>1937858 Конструктор объявлен Bar(const uint & val) Тип точно соответствует const uint & val Что же не так? Нельзя использовать emplce_back и forwarding?
>>1937885 >Тип точно соответствует А стандарте нет никакого uint, те литералы что он задаёт на вход функции дают обычный int, не unsigned, и я писал вообще про другое. Можешь не отвечать.
народ, подскажите, что нужно для того, чтобы работать в hft? lock-free? SIMD? знать как таблица страниц устроена и что такое page fault? короче, как вкатиться?
>>1938206 Он объясняет все в очень общих чертах + если углубляется, то это касается лишь конкретной фичи, которую он реализовывает. Имхо, это скорее как обзор, если у тебя уже база построения чего-то подобного есть.
Проходил сегодня собеседование в росскосмос и мне задали эту задачку на пике. Я вообще в ахуе что тут не так??? >>1938549 Новички не умею гуглить, после каждой проблемы пишут в тред, что сюда заходить не хочется.
>>1938693 Я сегодня в касперыч проходил собес, первое задание было, типа, вот есть две функции: void f1(); void f2();
нужно написать третью void func(int i){ ... } , которая в зависимости от аргумента (1 или 2) будет вызывать f1() или f2(). При этом нельзя использовать операторы сравнения, и то что вызывает их в неявном виде (if, switch, ...);
Я как бы сразу понял, в какую сторону думать надо, но, блядь, не додумал, и сдался. Задачу считаю, конечно, интересной, но ебанутой и для собеса не подходящей. А вы что думаете?
И после такой хуйни идут вопросы уровня детского сада, типа "че такое лист?))) че такое дедлок?))) а как сделать?))) что больше памяти занимает, лист или вектор?)))". А потом вопрос: -что такое new? -оператор -сколько видов перегрузок у него есть? -..................... -вы нам не подходите
Блядь, никогда new не перегружал. В общем, самый странный собес, что у меня был.
А вообще все плохо, уже 0-5 по собесам, вакансии кончились, остались только на галеры/говнопродукт. Походу придется учиться.
>>1939091 >Задачу считаю, конечно, интересной, но ебанутой и для собеса не подходящей. А вы что думаете? Может быть куда то и не подходящая, но тут явно на реверсера.
>>1939095 >Может быть куда то и не подходящая, но тут явно на реверсера. Не, это на Kaspersky OS, какая-то ебала для IOT. Вообще там из плюсов, то что чекают кругозор. Типа, что такое fork(), как он работает; какой порядок байт у ARM. Я ответил, что little endian, что походу неправильно, т.к. там и так и так может быть, но блядь, я не эмбеддщик, я тупо мимо проходил.
>>1939099 >какой порядок байт у ARM. Я ответил, что little endian Ну ты правильно сказал. little endian на ARM достаточно распространён (если дело касается именно процессоров).
Есть проект на QT, подключаю к нему свой графический движок, использующий glew. Помимо этого подключаю glew, так как в некоторых местах необходимы gl функции. Но компилятор ругается, что функции из движка и glew undefined. Что я не так подключаю? Может ли это быть связано с декорированием имён или подобной хуетой, если движок я компилировал при помощи msvc, а проект на qt с mingw?
>>1939143 крестовые библиотеки собранные разными компиляторами (и даже разными версиями одного компилятора) бинарно не совместимы, нужно все собрать одним конпелятором
Всем привет, я на 2 курсе компьютерных наук, изучаю с++ и джава скрипт.
Я не могу сказать какой уровень разработки у меня, вроде знаю о многих вещах, но так не кажется, постоянно вставляю себе палки в колеса)
В какую область с++ стоит двигаться где меньше упора делается на математику? Математика на уровне 7-8 классов стопит меня. ДжаваСкрипт изучаю как замену для с++ (заниматься фронтом) после выхода из Университета
>>1939216 >Математика на уровне 7-8 классов стопит меня Имхо, твоя ошибка в том, что ты отталкиваешься от своих текущих способностей, а не от желаний. Способности -- не приговор, и легко прокачиваются. Если станет тебе интересна какая-то область, и там нужна будет математика, ты ее подтянешь со школьного уровня до необходимого месяцев за 6. Потратишь на это хуеву кучу глюкозы, порвешь очко, но оно того будет стоить. Если же желаний пока нет, и отталкиваться не от чего, то тупо дрочи фундамент. Алгоритмы, операционные системы, математику, опять же. Сети. Если дрочить фундамент не хочется, то дрочи что увлекает в данную секунду и не рефлексируй.
А по поводу того, в каких областях на плюсах не нужна математика - у меня ответа нет. Если ты готов быть посредственным программистом, то, в принципе, математика не нужна в 80% вакансий.
>>1939231 Интересно, а есть ли какие-то анальные способы решить задачу через рефлексию? Грубо говоря, к буковке "f" присоединить i, получить название функции и ее вызвать. Есть ли в плюсах инструменты/библиотеки, это позволяющие?
>>1939234 Очевидный qt. Только вместо функций придется вызывать методы, ну и это уже надмножество крестов. Что-то типа QMetaObject::invokeMethod(myObj, "f" + QString::number(i)); должно быть.
>>1936857 семантика оператора индексирования для ассоциативных контейнеров stl подразумевает именно такое поведение которое тебе требуеться! подумой об этом на досуге! хотя я понимаю вы занятые кабанчики, и думать некогда, надо код писать!11
>>1938260 а ты проведи анализ рынка! на самом то деле в россии полторы конторы этим занимаются, и отслеживать если вдруг появится свободная вакансия легко потом по всему миру нужно вообще наверное несколько десятков людей всего лишь которые бы писали на с++ дермецо для автоматизированного трейдинга и не более
>>1938549 правда заключается в том что программирование - это высоконкурентная отрасль труда, никто тебе не будет помогать с реальными советами, мастерству не учат, мастерство воруют, награда для учителя - убийство учителя учеником, так всегда было
>>1939091 > > смотри ебать: сначала на собесе дают вопрос ну чутка посложнее, если ты на него влет отвечаешь, дальше уже ебашат по нарастающей а если ты обосрался, то задают простенькие вопросы, чтобы ты че-нибудь поотвечал и не расстраивался, и не особо обижался на фирму и на этого конкретного собеседующего челика но это не более чем лицемерие на самом деле тебя считают говном и закономерно прокатывают вот
>>1939311 Да нет, там через массив указателей подразумевается решение. Это типа полу-классическая задача, гуглится на каких-то говнофорумах от 2007-2014.
Вообще, если кто-то сейчас ищет работу на ~мидла на удаленке, поясню за собесы, на которых я обосрался: 1) REVO Capital LLC - какой-то мелкий американский хедж-фонд. Хоть по конторе ничего и не гуглится, но это не наебалово, чел скинет инфу по их регистрациям на биржах. Сам мужик 10/10, вопросы задает 10/10. Второй этап, тестовое - написать кодер-декодер Хаффмана. Я забил, т.к. по моим прикидкам это ~день. Хотя легко написал бы, много приходилось подобное кодить. Попробовать однозначно рекомендую, если не жалко въебать день на тестовое. 2) NetworkOptix - зашкварные системы видеонаблюдения, да, но зато очень много денег. Первый этап - тупо ответить на список 11 вопросов. Сложность примерно easy-middle из quizz'а. Я обосрался, т.к. джва года пишу на чистой сишке, и не готовился. Рекомендую попробовать, если вас устраивает оформление через ИП и вам просто нужно много денег. 3) Яндекс - ну тут всем известно, отличный собес (идеальный для меня), сидишь, потея и краснея на камеру решаешь задачи уровня ~medium с leetcode'а. Пять этапов, каждый по часу, итого пять часов. Меня после первого игнорить начали, видимо, медленно решал. Но в целом их методике собесов ставлю 9/10. Рекомендую, только подготовьтесь. 4) ITICapital - типа, брокер уровня топ ~10 в РФ. На hh нет вакансии, чел сам пишет. Самый приятный, интересный и полезный собес что у меня был. Сперва минут 40 по плюсам, потом алгоритмическая задача (уровня easy, если знать про трикс с guard node в листах), потом архитектурная (типа, есть два датацентра, куда сам сядешь, куда мать посадишь). Строго рекомендую, если вам напишет. 5) Касперский - выше описал. Хуй знает. Раз компания ищет работников по каким-то странным критериям, значит эти критерии для компании важны, и не нравится - твои проблемы. Так что возмущаться тут нельзя. Для меня собес 8/10. Длительность собеса - полчаса, потом 2 этапа по 2.5 часа. Итого 5.5 часов собеседований. Умеренно рекомендую, т.к. на любителя, наверное.
есть несколько оферов на руках что выбрать: - алгоритмический трейдинг - GameDev не движок а именно игровая логика, - высоконагруженный бэкэнд по деньгам +- одно и то же играми не увлекаюсь
>>1939349 Я бы бэкенд выбрал. Самые универсальные навыки. Или HFT, что по сути тоже бэкенд; но мне немного не нравится захайпленность этой темы, слегка пахнет блокчейном. Точно так же стало чрезмерно популярно из-за резкого притока денег на рынок, и закончиться может так же резко. Но геймдев точно нахуй. 0 офферов на руках
>>1939299 Нет, просто не хочется врать. Вот я указал анону в другом треде список тем, которые я думаю есть в HFT. А больше и не могу, так как сам не шарю и нет знакомых из этой сферы. Поэтому ничем в вопросе "как вкатиться в HFT" больше не могу помочь. Думаю, что для остальных то же самое. Как >>1939297 сказал, нужно уже самому всё искать.
Анон, а когда в требованиях на вакансию пишут "boost", подразумевают "обязательно asio, желательно beast, опционально context, остальное нам поебать"?
Просто блядь, иначе как это. Никто же не может заявить, что он "знает boost" - там чего только нет, даже библиотеки для того чтобы срать не снимая свитер наверняка найдутся.
>>1939445 Я не знаю, что такое "знать boost". Наверное - уметь его компилировать и подключать? Ну и какие-то основные вещи, типа контейнеров, может у нихз там С++98
>>1939445 >он не использует MPL, Fusion и Hana в одном проекте лмао Но вообще я думаю что подразумевается Asio, Filesystem и чутка из различных алгоритмов, хотя хрен людей знает.
Я её, короч, пытался сначала открыть в VS 2019, он сконвертировал проект, но в итоге сборка не прошла, и так как в ридми к коду было написано "WaveShop is designed to be an MFC 6.0 or .NET 2005/2008 project", я пошел и скачал VS 2008. Затем из-за ругательств компилятора выяснил, что надо установить еще DirectX SDK, мне подошел версии "August 2007", потому что в более новых уже отсутствовали нужные заголовки, сейчас вот мне теперь компилятор выдает такое, с чем я уже разобраться не знаю как, потому что нуб-нубом:
1>DSCapture.obj : error LNK2019: unresolved external symbol _DirectSoundCaptureEnumerateA@8 referenced in function "public: static bool __cdecl CDSCapture::EnumDevices(class CArrayEx<class CDSPlayer::CDSDeviceInfo,class CDSPlayer::CDSDeviceInfo &> &)" (?EnumDevices@CDSCapture@@SA_NAAV?$CArrayEx@VCDSDeviceInfo@CDSPlayer@@AAV12@@@@Z) 1>DSCapture.obj : error LNK2019: unresolved external symbol _DirectSoundCaptureCreate@12 referenced in function "public: bool __thiscall CDSCapture::Create(struct HWND__ ,struct _GUID )" (?Create@CDSCapture@@QAE_NPAUHWND__@@PAU_GUID@@@Z) 1>DSCapture.obj : error LNK2001: unresolved external symbol _IID_IDirectSoundNotify 1>DSPlayer.obj : error LNK2001: unresolved external symbol _IID_IDirectSoundNotify 1>DSPlayer.obj : error LNK2019: unresolved external symbol _DirectSoundCreate@12 referenced in function "public: bool __thiscall CDSPlayer::Create(struct _GUID ,struct HWND__ )" (?Create@CDSPlayer@@QAE_NPAU_GUID@@PAUHWND__@@@Z) 1>DSPlayer.obj : error LNK2019: unresolved external symbol _DXGetErrorString8A@4 referenced in function "public: static void __cdecl CDSPlayer::ReportDXError(long)" (?ReportDXError@CDSPlayer@@SAXJ@Z) 1>DSPlayer.obj : error LNK2019: unresolved external symbol _DXGetErrorDescription8A@4 referenced in function "public: static void __cdecl CDSPlayer::ReportDXError(long)" (?ReportDXError@CDSPlayer@@SAXJ@Z) 1>DSPlayer.obj : error LNK2019: unresolved external symbol _DirectSoundEnumerateA@8 referenced in function "public: static bool __cdecl CDSPlayer::EnumDevices(class CArrayEx<class CDSPlayer::CDSDeviceInfo,class CDSPlayer::CDSDeviceInfo &> &)" (?EnumDevices@CDSPlayer@@SA_NAAV?$CArrayEx@VCDSDeviceInfo@CDSPlayer@@AAV12@@@@Z) 1>d:\dev\src\waveshop\waveshop-1.0.14.001-src\Debug\WaveShop.exe : fatal error LNK1120: 7 unresolved externals
>>1939490 >2013-11-08 зачем тебе эта прога и зачем тебе её собирать, проект мёртв уже семь лет, рано или поздно придётся перекатываться на что-то другое (очевидный audacity)
Ну разобраться надо как весь этот функционал реализован с отображением волны, манипуляцией над волной, как раз такой проект не большой, чисто ученический, альтернативы более современной я не смог найти, если знаешь подскажи.
> audacity
Ну он же огромный, реально не для дилетанта, там еще все эти wxWidgets, CMake, со всем эти разбираться надо хз сколько времени уйдет, а там тупо для VS проект.
>>1939859 У тебя b изначально это адрес первого символа массива a и от того, что ты его кастанул к указателю на int он быть адресом первого символа a не перестанет.
Ошибки: 1. 8 строка - операцией &b ты отправишь адрес b, но не адрес a. Тебе нужно просто отослать переменную b - ведь поскольку это указатель, он и так содержить адрес. Исправляем. 2. 9 строка - не учил матчасть и теорию, конвертация в int - лишняя. Теперь нужна операция &b. Причина проста - тип указателя (int, char) нужен чтобы соответствовать указываемой переменной, но сами указатели всегда одного и того же формата - адрес в 16-й системе исчисления.
Итого: 8 строка - &b заменить на b 9 строка - (int b) заменить на &b
>>1936311 (OP) Такой вопрос, нужно маленький JSON сделать текстовым полем другого JSON, нго при этом изначальный JSON должен не иметь " и других символов, чтобы воспринимался как строка внутри текстового поля большого JSON. То есть, если есть ", оно должно быть заменено на \" и так далее. Можно ли как нить такое сделать средствами C++11, не заменяя явно " на \" ? Вот код чтобы было понятней о чем речь: https://godbolt.org/z/zs1Ybc
>>1940225 Они вообще для разных целей, SFML - это простенькая либа, чтобы создать окошко и делать в нём 3D-графику или контекст OpenGL, если хочешь простую либу для простой графики без ебли, бери её. Qt - фреймворк в первую очередь для окошек, формочек, графики, мультимедии и прочего.
>>1939842 >По каким критериям ты проставлял оценки? Критерии - впечатления от собеса, хорошо ли посидели-попиздели. Офк никак не коррелирует с тем, как там работается. >И как ты понял что у кого-то там много денег, они сами рассказали? Угу, ну и отзывы. Дак похуй же. В худшем случае если сумма в контракте меньше обещанного, просто забиваешь и ищешь дальше. >Я тоже про свои Рога и Копыта могу многое загнать Я бы с удовольствием послушал. Рассказывай.
>>1939732 > Поясните как изучить технологию блокчейна? С чего начать и по каким книгам? Сразу в окружении крестов. Нахуй оно тебе надо? В 2к20 поработал с блокчейном в паре контор. Впечатления от технологии позитивные, от контор - негативные. Дохнут как мухи, т.к. по сути жадные хайпожоры, которые хотят навариться любой ценой. Каких-то учебников по блокчейну нет, либо они есть, но не нужны. Почитай пару ознакомительных статей на хабре, типа, что такое консенсус, какие они бывают. После этого можно сказать что ты понял блокчейн, все остальное лишь детали имплементации (network layer), либо детали решаемой задачи (application layer). Детали имплементации надо смотреть в коде. Выкачай исходники ноды биткоина, она на C++. Или исходники Qtum. Там, кажись, та же самая блокчейн-нода, но допиленная до directed acyclic graph (обязательно прочитай, что это). Если тебя интересует application layer (за который, наверное, обычно и платят, т.к. он и приносит компании деньги), то тут не о плюсах. Все sdk/инструменты для работы со смарт-контрактами сделаны на JS/Go. Если хочешь посмотреть на пиздтый инструмент, где network+consensus уже заимплеменчены, а ты занимаешься чисто бизнес-логикой, чекни cosmos sdk. Мне было очень приятно с ним работать, только оно на Go.
>>1940255 Сам по себе он вообще для гуёв не подходит. SFML - это создать окно определённого размера и рисовать в нём прямоугольники, овалы, линии, картинки из файлов и обрабатывать события вроде движения мыши или нажатия кнопки на клавиатуре, и всё. Нет ни кнопок, ни текстбоксов, ни менюшек, ни диалоговых окно. Есть обёртки для SFML вроде imgui и nuklea, они добавляют кое-какие виджеты, но это скорее годится для UI в играх наподобие списка предметов в инвентаре. Да и обе, честно говоря, отдают васянством, когда тыкал, почти всю инфу узнавал из страниц с багами на гитхабе.
Добрый день анонасы. https://pastebin.com/BPHUx5u4 . В map мы кладем эл-т и кол-во повторений. Если исходный файл состоит из одной англ.буквы, то он заносит в map какой то символ -1 'я' 255 символ ascii с кириллицей, но откуда он и для чего?, а затем уже имеющийся. Если исходный файл состоит из 1-й русской буквы, то там уже заносит 2 символа с минусом, после чего -1 'я'. Объясните пожалуйста, что это за -1 'я' каждый раз и как русская буква переводится в другие символы, при чем сразу в 2.
>>1940270 А вот ты создаешь мап char:int, а потом так резво идешь и делаешь инкремент по оператору []. ты уверен, что при твоем обращении через этот оператор, когда map создаст значение int он обязательно проинициализирует его как ноль?
>>1940284 Судя по примерам, которые находил в интернете, все должно работать нормально. Но даже если бы там лежал бы мусор постоянно, то все равно не понятно, что за -1 'я' откуда он каждый раз появлсяется.
>>1940301 >Byte order mark — маркер последовательности байтов, символ Юникода. Эх как же эта хуйня мне насолила, я помню где это прочитал давно, и забыл, и вот у меня на собесе спрашивают : что такое big endian/ little endian, и я помню что это про последовательность байт, и всместе с этим у меня всплывает что то в голове про этот BOM, и я выдал - ну это маркер, там что-то с кодировкой связанное лол. Я тогда не прошёл собес. Да и похуй, контора так себе была
>>1940301 Да, видимо оно. Спасибо анонасик! А можешь тогда еще помочь с 2-м вопросом? По поводу того, каким образом русская буква переводится в 2 символа? Например, если была буква "Я", то при отладке показывает, что записываются в map -48 'P' и потом -81 'Ї' ну и затем BOM. От разных букв, разные комбинации, т.е. это ни как с BOM который всегда есть.
>>1939104 Блять я вот до того чтобы сосчитать разницу между адресами не додумался, подставлял множители к параметру, который передавался в функцию, получилось что оффсет 22. Почему именно такой? Или это зависит от имплентации компилятора?
>>1940311 Лучше почитай про Юникод. Посмотри в какой кодировке у тебя текстовый файл, тогда будет понятно на какие байты раскладывается отдельный символ.
Анон, тебе не попадался опенсорсный бэкенд-проект на c++? С базой, бустом, многопоточкой. Очень надо посмотреть, как все это выглядит в реальном мире. А то вроде всеми необходимыми инструментами владею, но большую картину очень сложно с нуля составить, чувствую что делаю какую-то хуйню и отсебятину.
>>1940103 >Можно ли как нить такое сделать средствами C++11, не заменяя явно " на \" ? А чем тебе замена не нравится? Стандарт крестов ничего не знает о жсоне. Библиотеки для работы с ним все равно вставят эскейп последовательности при сериализации ДОМ в текст.
C++17 The complete guide - хорошая книжка. А вот всё что Rainer Grimm написал - говно. Он графоман, и в С++ ничего не сечёт. Пересказывает мануалы своим кривым языком.
Ребят, подскажите какой-нибудь простой кроссплатформенный фреймворк, где бы я мог создавать просто окно, выводить на всё это окно изображение, писать что-то в буффер и обновлять это изображение. QT не хочу. С буфферами opengl ебаться пока тоже не хочу.
>>1940560 Ну, то есть, хочу я порисовать сам хуету, повизуализировать всякие задачки по вычислительной геометрии, порастрезировать с руки линии и треугольники, пиксельарт может какой-нибудь.
Я могу, конечно, на OpenGLе просто рендерить квод с текстурой, и писать в буффер с текстурой, но это такое себе.
>>1940566 Есть задача, её надо выполнить в разумные сроки в соответствии с требованиями. Ты начал мозгоёбить и потратил x5 времени в поисках хуй пойми чего. У тебя довольно низкое КПД, ты рассеянный, невнимательный и преследуешь надуманные цели. Работодатели это видят и сливают тебя на собесах.
Как правильно хендлить дисконнект клиента на сервере? UDP
Допустим, клиент залогинился, после этого работает с основным сервером через кэшированную сессию
Я так понимаю, что нужно хранить где-то подобие таймстампа для последнего обработанного пакета Если пакет для client_id не обрабатывался N времени после последнего timestamp, то нужно выпилить сессию из кэша.
Но как найти тех клиентов, которые давно не слали пакеты? Не итерироваться же по всему контейнеру, это долго, а контейнер используется и теми клиентами, которые сейчас онлайн
>>1940756 >Не итерироваться же по всему контейнеру Можно использовать этот timestamp как ключ ассоциативного контейнера, первое что в голову приходит это Boost.MultiIndex.
Но лучше послушай вот его >>1940844 и займись профилирование, несли речь идет про скорость.
>>1940869 Ускоряй итерацию. Как минимум вынеси тайм стампы или их дубли в отдельный вектор, чтобы не было кеш миса при каждой проверке. А лок делай потом, когда уже составил список на удаление ( их все равно надо будет проверить не пришли ли новые пакеты, но уже гораздо меньшее количество, если они у тебя массово пачками не отпадают).
Поясните за внешние либы. Вот установил я на линухе допустим буст, указал его в алмазе и у меня вроде как всё работает. Но что если я захочу эти сорсы залить скажем на гитхаб? Как правильно? Стоит ли выкачивать сорсы либы, кидать в директорию с сорсами, подключать по явному пути? Или просто прописывать всё в cmakelists и остальное меня не должно беспокоить?
>>1941069 Попробуй собрать блендер https://wiki.blender.org/wiki/Building_Blender по инструкции и потом посмотреть как это устроено. Если коротко, то отдельно перед сборкой там скачиваются внешние либы и распаковываются/компилируются в отдельные папочки, что позволяет не таскать их с собой в репозитории. На своей стороне ты указываешь пути относительно текущего проекта, разумеется ссылаясь на пути, куда будут распаковываться все либы.
Аноны, не закидывайте говном, если херню спросил. У меня есть код, который было бы здорово засунуть в функцию. Но тогда одним из её параметров являлся бы не мувебл и не констрактебл объект. Есть какой-то способ кроме макросов это проделать?
>>1941789 >Макопомойку даже не упоминайте. Если ты про какую-то pos, которая используется в макдональдсе на кассах, то скорее всего, тебе как раз к ней и нужно привыкать.
>>1941789 На одной работе была винда со студией, на другой линупс (какой хочешь) с CLion'ом. Какая целевая платформа - такое и окружение. Вообще после вима с парой плагинов всё заходит, и тебе посоветую этот экспириенс.
>>1941789 Учиться - точно в студии с решарпером. А на работе - в чем заставят, в том и будешь. Я успел и в Студии, в кутекреаторе, и в ебучем виме (теперь у меня нервный тик от слова опенсолярис).
>>1941856 Я вот тоже успел в qt creator поработать, на винде, с разными компиляторами и дебагерами, и все дебагиры работали очень тормозно и глючно. У всех так?
>>1941843 >Винду со студией принципиально не хочу Привередливый ты и отсекаешь большую долю компаний, которые занимаются десктопом, но как хочешь. В студии отличные встроенные отладчики памяти, например, что мне иногда очень помогает.
>>1941789 Сейчас кросс винда/мак, а до этого были: - винда с таргетом analog devices (visualdsp) - Linux (после вузика) - FreeBSD (стажировка) Всегда больше винда интересовала, но занимался тем что само в руки шло
>>1941833 >Какая целевая платформа - такое и окружение. Да сейчас то пофиг уже. У меня вот проект был и сейчас слабо поддерживается, который я писал под виндой в креаторе, а боевая сборка под эмбеддед была на виртуалке линуксовой с кросскомпилятором
>>1941789 Постепенно всё скатывается в линукс, а сама работа становится смешанной. На компе часто стоит винда + Visaual Studio, на ней несколько виртуалок с разными лялексами (VSCode/Eclipse). Ещё терминал в целевую платформу (putty-хуютти, ssh, vim и всё такое). Ещё, возможно, виртуалка с winxp для легаси говна.
>>1942291 Храню на внешнем ssd (работаю из разных мест и так получается удобнее). Бэкапы образов тоже периодически обновляю на машине в сети, доступной через VPN.
Ананасы, доступим есть несколько джонс файлов у каждого своя структура конфигов\настроек которые юзер читает и меняет. Как с этим всем управляться: сделать базовый класс с интерфейсом чтения\записи в файл, производный класс уже реализует чтение\запись и предоставляет юзеру функции добавления в конфиг и чтения?
>>1936311 (OP) Хочу вкатиться в программирования и выбираю первый язык, решил что надо, что-то серьезно и сложное брать, а не какой-то элементарный питон, надеюсь сделал правильный выбор c++ или есть что-то получше?
>>1938260 Большая часть кода в хеджфондах даже в условно-топовых типо Citadel или Two-Sigma это стандартные бэкэкндовые компаненты ниче такого. К тому же золотой век HFT уже ушел. А отвечая на твой вопрос: В порядке убывания приоритетности: 1. Леткод. 2. Тупо крепкие знания плюсов. 3. Основы работы ОС. Ну типо что такое syscall,процесс поток итд. 4. Архитектурное собеседование аналогичное фангу. 5. Ну да наверное lock-free и simd.
Вопрос исключительно про синтаксический сахар. Вот примерная картинка. Оно жалуется на "member '...s/t' with constructor not allowed in anonymous aggregate"
Можно как-то исправить, чтобы не писать всюду имя анонимной структуры? 17 стандарт.
Можно выкинуть на помойку структуру, тогда всё работает - но вместо конструктора приходится дополнительную функцию с дополнительным именем вызывать. Это всё ещё лучше чем имя структуры дописывать постоянно, но такое себе. В чём его проблема - если с именованной структурой всё работает, а с анонимной - нет?
>>1942331 Чел, вот это, и только это. Лучшая книга, когда-либо написанная, абсолютный шедевр, мировая классика, 10/10 на кончиках пальцев. Она большая, да, но хули, ты слабый что-ли?
1) struct это аналог interface из других языков? 2) зачем нужен template? Можно же делать перезагрузку методов. Не до конца понимаю вот эту строчку template <bool SSL> struct TemplatedApp {} Это просто объект с методами? Или что.
>>1942780 >зачем нужен template? Полистай же книжку по шаблонам. По 800 перегрузок делать для каждого типа, даже если код совпадает один в один? По большей части это синтаксический сахар и в редких случаях перенос части работы из рантайма в компайл-тайм.
Забудь про template на время, если ты не понимаешь что такое struct.
>>1942927 Ты давай не экстраполируй. Я вообще-то к Страуструпу в дополнение перечитал Мейерса а к трём лабам покопался в бустазии, и трохи в опенгле с qt. А на джуна за 40к в ДС перекатываться нифига не комильфо.
>>1942936 Пчел, у тебя сейчас безумно играет эффект даннинга крюгера классический. Ты ПОЧИТАЛ КНИЖЕЧКИ и поделал ПЕТ ПРОЕКТИКИ. Это такой слабенький джун. О каком мидле речь, мидл это человек, который умеет коммуницировать, проектировать, думать о лонг-терм последствиях решений.
>>1942961 Чел, ты прочитал статейку на вики и у тебя заиграл эффект Даннинга-Крюгера по отношению к психологии людей. Я не спрашиваю "Хули меня не берут на работу с таким набором знаний", я спрашиваю ЧЕМУ ЕЩЁ МНЕ НУЖНО НАУЧИТСЯ чтобы меня взяли.
>>1942961 такое ощущение, что люди, делавшие говно полное, в качестве петов, проецируют свои скилы на других. Если ты делал говно полное, то это не значит, что другие тем же занимались. ос, компилятор со стандартным набором оптимизаций, симулятор на вулкане - при таком наборе петов мне было смешно смотреть на таких как ты, втирающих о скилах нарабатываемых только на работе.
Маня, если ты умеешь развиваться только из под пинка хозяина, то это твои проблемы.
>>1942981 Твое резюме на мидла без опыта тупо эйчар не пропустит, хоть твои петпроекты самые охуенные в мире, умник. Компилятор и ОС он написал, Терри Дэвис восстал из мертвых.
>>1942974 Мне кажется, если ты прочитал Страуструпа, всего Мейрса, плюс имеешь какой-то кругозор по CS в целом (структуры и говно), то по знаниям ты уже дотягиваешь до Миддла, не дотягиваешь только по опыту. Хватит пока читать, иди работай. И не злись на ребят итт, тут много ЧСВшных чудиков, это издержки профессии, да.
>>1942987 Да хуле, сразу принципалом пусть идет, управляет разработкой Хрома или поиска в гугле. Кругозор по CS и прочитанный страуструп достаточны для этого.
>>1942985 пускай укажет 2 года опыта в рандомной компании искренний совет тому челу, если действительно скилы есть то отсутствие опыта не вскроется. Я так проскочил тот самый уровень джуна, правда поработав 2 месяца им.
>>1942981 > компилятор со стандартным набором оптимизаций Что такой стандартный набор оптимизаций? > симулятор на вулкане Симулятор чего? Ты просто рандомные слова пишешь же.
>>1943006 Удачи вскрывать пиздеж умного человека за 45 минут. С учетом того что все ситуации, который он приписывает себе реальны.
Но это действительно редкий случай, у 95% не хватит скила соответствовать мидлу, впроцем они и не станут пытаться, а оставшиеся 5% быстро вкатятся на норм зп.
А вообще - сколько таких долбоебов я собесил, когда у нас в конторе была джуновская вакансия открыта в конторе. Каждый первый - гений, сразу из дома готов вкатываться на сениора. После каждого такого гения конференц рум от подливы вытирали, которую такие "сениоры" обильно выделяли под себя.
>>1943092 Предполагается, что в чистом виде их использовать не будут и напишут высокоуровневые движки, как в 2021 году и делают. И именно там может появиться профит. Это не усложнение ради усложнения, а фичи для якобы более тонкой настройки/оптимизации.
Ебать ору с даунов с домашними проектами, которые хотят залететь на мидловую позицию. На дваче ты такой охуенный, пишешь ОС, компиляторы, хуйню-малафью, а на собесе обсираешься с простых вопросов про какой-нибудь stl или код ревью на 5 строк кода.
Каким вообще нужно быть чсвшным долбаебом, чтобы на серьезных щах рассказывать, как ты в одиночку писал ос/компилятор/движок на вулкане, не имея вообще никакого опыта? Это лишь говорит о том, что ты: a) написал хуиту b) считаешь хуиту, которую ты написал, не хуитой c) считаешь себя не хуитой, являясь хуитой, по причине пунктов a и b
Я бы даже на собес не позвал такого дурика малолетнего лол. Может только если порофлить.
>>1943144 я помню, как тоже корзиночные проекты пописал, книги почитал, и пошел на собес, щас типа покажу этим лошпедам, кто тут батя.
Мне прям на собесе сказали, какие книги почитать, потому-что я фонтаном там обосрался. Я конечно вкатился через некоторое время, но вот такие высеры очень смешно читать.
Антуаны, поясните за LinkedIn. Перед первым своим собесом решил глянуть работникой той студии, в которую хочу отправлять своё резюме. У всех в профиле на линкедине какие-то сертификаты из курсеры, рекомендации подтверждающие навык и прочее. Так всё-таки сертификаты не бесполезное говно или что? Или на них дрочат только на линкедине? Я, как дурачок который подобные курсы вскользь просматривал, в основном занимаясь по частям книг/учебников или статьям на ravesli, даже теперь сомневаюсь что что-то значу для работодателя, ведь у меня нет какой-то бумажечки по курсам, пиздец.
>>1943189 >Мне прям на собесе сказали, какие книги почитать Полгода назад, на заре своего вката, я читал эту пасту. Сейчас я второй месяц работаю на 140к/месяц. Вопросы будут?
>>1943196 Вкатился за неделю сразу на сеньёр позицию в амазон в сша по туториалам с ютьюба. Работаю второй месяц за 300к бачей в год плюс столько же в акциях, параллельно учу инглиш с нуля тоже по ютьюбу. Вопросы будут?
>>1943219 >Что перед собесом знал Спрашивали указатели, про смысл констов в разных местах, битовые операции, stl, qt, линал ну и по мелочи. >мог написать в итоге? В душе не ебу, с гуглом и индусами с ютуба вполне вероятно что угодно. Ваш любимый Даннинг-Крюгер, да-да.
>>1943209 Хах, лошня тормозная. Открыл С++ книгу понял что полное гавно, накачал попку и пошел гей-шлюхой к олигархам реальные бабки поднимать >>1943185 Преинкремент, хуйсосир Врядли ты в своем убийце gcc оптимизации временного хранения предусмотрел
Есть какой-то сборник задач или сайт с задачами на которых можно синтаксис задрочить? Не конкретно алгоритмы и прочее говно, а именно сам язык и его конструкции, его стандартную библиотеку. То есть codewars какой-то, где в одном файле ты пишешь от силы 20 строк не подходит. Что-то вроде задач по "напишите такой-то класс с таким-то функционалом". Есть такое? Очень сложно самому задачи придумывать, а если я что-то и придумываю, то это какое-то говно уровня сортировки массива на итераторах.
>>1943257 Ну возьми вот такое типовое тестовое, недавно предлагали. Предполагается, что сеньор сделает его аккурат за рабочий день, т.е., менее чем за 8 часов, в приличном виде.
// Cервер слушает запросы на указанном PORT и предоставляет API для простой key-value базы данных // Внутреннее хранилище сервера - boost::multi_index, который хранится в маппируемом в оперативную память файле // Ключ имеет тип - Строка (максимальная длина 1024 символа) // Значение имеет тип - Строка (максимальная длина 1024 1024 символа)
// База данных поддерживает операции // INSERT - добавить key:value // UPDATE - изменить key:value // DELETE - удалить key // GET - получить value по key
// Если ключ уже существует, то при операции INSERT База Данных возвращает ошибку // Если ключ не существует, то при операции UPDATE База Данных возвращает ошибку // Если ключ существует и значение совпадает, то при операции UPDATE База Данных возвращает ошибку // Если ключ не существует, то при операции DELETE База Данных возвращает ошибку // Если ключ не существует, то при операции GET База Данных возвращает ошибку
// Клиент получает из командной строки: // - адрес сервера // Cервер слушает запросы на указанном IP:PORT и предоставляет API для простой key-value базы данных // Внутреннее хранилище сервера - boost::multi_index, который хранится в маппируемом в оперативную память файле // Ключ имеет тип - Строка (максимальная длина 1024 символа) // Значение имеет тип - Строка (максимальная длина 1024 1024 символа)
// База данных поддерживает операции // INSERT - добавить key:value // UPDATE - изменить key:value // DELETE - удалить key // GET - получить value по key
// Если ключ уже существует, то при операции INSERT База Данных возвращает ошибку // Если ключ не существует, то при операции UPDATE База Данных возвращает ошибку // Если ключ существует и значение совпадает, то при операции UPDATE База Данных возвращает ошибку // Если ключ не существует, то при операции DELETE База Данных возвращает ошибку // Если ключ не существует, то при операции GET База Данных возвращает ошибку
// Клиент получает из коммандной строки: // - адрес сервера // - команду // - ключ // - значение
// После выполнения команды клиент возвращает успешность выполнения и ошибку, если она возникла
// Сервер ведет статистику отправленных и полученных комманд // С переодичности в 60 секунд, сервер выводит на std::cerr статистику // - количество записей в БД // - количество успешных/неуспешных операций INSERT // - количество успешных/неуспешных операций UPDATE // - количество успешных/неуспешных операций DELETE // - количество успешных/неуспешных операций GET
// Общение по собственному протоколу поверх TCP/IP // Для автоматизации сериализации структур использовать boost::fusion // Для реализации сетевого взаимодействия использовать boost::asio // Для реализации потоков использовать возможности boost::asio // Для реализации таймеров использовать возможности boost::asio // Для хранения данных использовать boost::multi_index и boost::interprocess
// Сборка C++-проекта должна осуществляться с помощью CMake // Для сборки сформировать Dokerfile на базе Ubuntu 20
>>1943301 Скажи пожалуйста название компании, которая это предложила. Для меня тестовое выглядит как "реализовать Django на C++ за 8 часов", я бы охуел без каких-то наработок под рукой. Не, тестовое годное, но слишком объемное, имхо.
>>1943328 >я бы охуел без каких-то наработок под рукой У тех, кто работает не первый год, куча кода в закромах лежит. Если вакансия релевантна твоему опыту, то обычно тестовое делается копипастой за 20-30 минут и ещё потом часик надо на визуальное оформление и подгон под формально описание.
>>1943328 >// Для сборки сформировать Dokerfile на базе Ubuntu 20 >boost А мне норм, если бы не вот эти пункты. Мне кажется я все 8 часов буду ставить буст и убунту - но если от них отказаться, то готов на спор с записью видео без наработок часа за 4 попробовать сделать вышеуказанные клиент-сервер. Для сети заюзаю sfml-сокеты (в с++ же нет своих собственных кроссплатформенных), или можно winsock, лол.
Мне совсем не нравится такое задание, потому что оно демонстрирует не навыки кодинга, а насколько быстро ты разберёшься с использование boost::multi_index и других указанных в тз вещах. По коду там только хранилище, таймер, и функция приёма-отправки.
>>1943328 Может быть тестовое на сеньора подразумевает что он за эти 8 часов наймет студентов на фивере которые ему по частям напишут? Или как минимум найдет готовое на гитхабе.
>>1943350 Ну типо раньше в 0х и начеле 10х HFT ебало рынок, а сейчас такой робот у всех есть, понимаешь, поэтому их доходности упали. Полно есть стратегий которые к латенси вообще не чувствительны или торгуют скажем на минутных таймфреймах, что не подразумевает дикой оптимизации на fpga, локфри итд. Сейчас куча перфомящих стратегий, которые опираются скорее на большое кол-во данных чем на скорость эксекьюшена.
>>1943246 Ух какие маневры. Хули здесь тогда забыл, говно обосранное? Пиздуй обратно в ваш js-загон на бутылку, а то твой папка опередит и у него как в прошлый раз она в недрах лопнет и всю жопу разорвет, потом точно ебать нечего будет и вы с голода сдохните без денег
>>1943328 Одна известная достаточно известная компания в узких кругах любителей крипты. Позиция на 300 -- Нет, не $, просто т. рублей/месяц. Принял аналогичное предложение от других товарищей, которые не напрягали тестовым, если что.
>>1943374 >Для сети заюзаю sfml-сокеты (в с++ же нет своих собственных кроссплатформенных) Лолшто? Мы вам перезвоним.
>>1943453 Насчет крипты интесно конечно. Просто одно дело, на обычной бирже когда все стоят в колокации у всех одинаковый провод до торговой системы, сам биржевой протокол оптимизирован для latency итд. А в случае криптобиржи хуй пойми как твой пакет будет до ее сервера идти, протоколы там текстовые вроде в основном хз крч не знаю. Но тоже слышал про такие организации.
>>1943560 Это очевидно, другой вопрос - нахуя в бусте свой собственный теперь, который якобы лучше? Собстно, Полухин пытался в мейллисте обьяснить этим ебучим ретроградам, что будет сильно лучше, если не будет с собой тащить миллиарды этих ненужных зависимостей. Но его не послушали, потому-что А КАК ЖЕ ДЕДУШКИ С С++98. хуй сосут эти дедушки
С начала этого года по совету из прошлых тредов взял курс на курсере по крестам, от мфти и яндекса. Первый пояс задачки осилил быстро, немного сделал во втором, потом забил и просто смотрел видео, читал материал который они давали и там может пару задачек ещё решил каких-то лёгких, в итоге почти "закончил" последний пояс. Я уже тотальный долбоёб с концами или надежда на спасение ещё есть? Не знаю почему мне так не хочется их всратые задачки делать.
>>1943534 Я вообще на спор хотел для треда попробовать сделать, чтобы меня потом разнесли за плохой код или ещё что-то, и ставить буст на 98 мб в архиве для этого не хочется - я слышал он довольно паршиво заводится, и скомпилировать в первый раз хоть что-то с ним довольно трудоёмко. Или там что, совершенно иная концепция работы с сокетами/потоками - а не почти дословно такие же классы и методы в другом неймспейсе? Да не поверю, такие же send/sendto.
Почти полностью уверен, что это просто чек на то, пользовался ли ты бустом минимально и представляешь ли примерно содержание буста.
Анон, я тут открыл хабр, выбрал "C++" в качестве тэга и открыл самые популярные статьи за все время. Две из них датируются 2011 годом: https://habr.com/ru/post/125564/ <- я про эту статью https://habr.com/ru/post/117193/ <- похуй но пусть будет до кучи Ты наверняка их видел, но, согласись, сквозь призму жителя 2к21 это как-то странно/кринжово читать. Чел с таким восприятием действительности в наше время даже не тянет на миддла, а тогда умные головы, наверное, читали, кивали, и говорили, ага, прав чел. К чему это я. Можно ли говорить о том, что сильный программист 10 лет назад = слабее посредственного сегодня? Причем даже если атуальность/неактуальность знаний из картины убрать, чисто по инженерному мышлению.
>>1943972 >написал в одно рыло 3д игру Скопипастил из "как сделать игру на directx за 14 дней" >оптимизировал на ассемблере Потому что не было автовекторизации и хреново работал инлайнинг, а сейчас таких low-hanging fruit не осталось.
>>1943999 Узбагойся. На плюсах просто часто делают всякий оптимизацию или масштабирование в продакшен по уже готовым макетам на питоне. Большая часть ml инженеров в самом деле с плюсами дело не имеет.
А какие пререквизиты для буст азии вообще? Что-то читаю там потоки, сокеты нихуя не объясняется. Что нужно знать чтобы вкатиться? Вряд ли банального TCP/IP хватит.
>>1944030 другой любопытствующий Я так понял, то что asio делает asio, то чем оно может выебнуться перед пердолящим POSIX API дедом - все эти приблуды с многопоточностью, корутины, стэклесс блядь, не стеклесс. Да?
Юзаю вот эту хуйню. Хочу сделать авторизацию. Соответственно, когда залогинился, попал на сервер с сокетами. Мне для этого замутить отдельный сервер, или отдельный класс какой-то, где юзать какую-нибудь монгу? И после авторизации по токену давать доступ с клиента к серверу уже?
>>1944172 Да нету здесь блоков кода, и Абу похуй. Жрём говно, кидаем скрины кода или ссылки на пастебин, бугуртим с макабы, которая выделяет курсивом текст между звёздочками.
Посоны, есть функция. В ней хочу вызывать методы из другого класса и общаться с массивом, который у этого класса в членах. Это нормальная практика? Для этого лучше использовать struct?
>>1944187 > В ней хочу вызывать методы из другого класса
Нормальная, лол
> и общаться с массивом, который у этого класса в членах.
То есть массив хочешь сделать public? Уже хуже, но смотря что ты пишешь.
> Для этого лучше использовать struct?
Да можно, ты знаешь чем struct от class отличается в крестах? Вообще ничем. Просто в class если ты не указал модификатор доступа он по дефолту private, а в struct это public.
Насколько актуально в 2020 делать как Мейерс говорит? Вот сейчас читаю что всё кроме privato'v для полей в классах - хуита. Т.е. даже протектед хуита. Значит ли это что я обязан не юзать их?
>>1943789 Какой сисадмин, ты совсем ебобо? Докеровский образ это иногда и есть конечный продукт. В крупных конторах/командах этим девопс занимается, но все кто старше мидла должны уметь образы создавать, апдейтить и отгружать.
>>1944192 ты про первые его книжки? конечно актуально только там очевидные вещи, советы типа "после того как положили сахар в чай, возьмите ложечьку и размешайте, иначе будет несладко"
>>1944024 Вкат в буст происходит сам по себе. Сидишь такой и думаешь: так блэт, сам я это писать не буду, это уже сто раз до меня писали. Где бы спиздить? Гугдишь boost asio или beast.
>>1944213 многие бугуртят с буста потому что он и является сборником велосипедов, разные части буста написаны разными людьми, с подходами в архитектуре, зачастую кардинально отличающимся друг от друга
А нужен ли сейчас ассемблер вообще? Насколько актуальны все эти "жосские низкоуровневые оптимизации" и врезки кода асма в спп? Если нужно то какова вообще сфера применения?
Что делать если c++ шлет меня нахуй? Попробовал через VS запустить код VS сказал иди нахуй, скачал Eclipse попробовал запустить код Eclipse послал нахуй, что делать? Как просто начать производить ебаную программу?
>>1944572 Работал в трех конторах, занимающихся криптографией. Везде часть модулей низкоуровневых была написана на асме и потом линковалась с C или C++ либой.
Именно врезки инлайн асма в исходниках не видел ни разу.
>>1944619 Не. Например у тебя есть вектор s структур S у которых есть член х, чтобы отсортировать его значению x ты делаешь std::sort(s.begin(), s.end(), [](S &a, S &b) { return a.x < b.x; }); ну и т.п.
На джуномидлов 80% вопросов это "посмотрите на код, и скажите какой будет вывод / найдите проблему". И там строчка типа auto p = func(std::shared_ptr<Obj>(new Obj), func2()); Если ты читал книжки, то ответишь, а если не читал, то гугл никак не поможет.
>>1944831 Проблема в том, что шаред поинтер временный? Алсо, мне больше интересно про эти собесы с "напишите программу х". Я бы повыебывался и использовал стл , но я часто забываю некоторые функции от туда, особенно в алгоритмах
>>1944843 >Проблема в том, что шаред поинтер временный? Неа >Алсо, мне больше интересно про эти собесы с "напишите программу х". Ты про задачку в рамках собеседования или про тестовое? Если тестовое, то ну его нахуй, там чего только не запросят; а те задачи, что в рамках собеседования, допустим, у Яндекса, там из stl-алгоритмов максимум sort() используется. Зато, если ты джун, то 100% будут дрючить по контейнерам - что там под капотом, и т.п.. Очень рекомендую книгу от господина Adam Drozdek, "Data Structures and Algorithms in C++". Просто бiмба.
>>1944858 >>1944859 Наверное, вы правильно поняли, да. Компилятор имеет право обрабатывать аргументы в том порядке, в котором ему вздумается, поэтому он вполне может сделать так: new Obj -> func2() -> shared_ptr<>(); В этом случае, если func2() бросит эксепшн, Obj мы просрем. make_shared<>() такого не допустит.
>>1943788 Несколько лет назад прекрасно собирал буст на винде одной командой в терминале PowerShell по инструкции, потом подключал к студии и проблем никаких не было.
А вот со всякими другими библиотеками (никак не связанными с бустом) какая-то возня была, их нубу собрать сложно, что-то докачивать необходимо. Например, OpenSSL.
Есть ещё вариант собирать всё в виртуалке на линуксе, там просто ставишь нужные пакеты и готово.
>>1944572 в контексте этого треда некоторым спецам нужно уметь читать асм-код для того чтобы отслеживать, насколько хорошо с точки зрения производительности, компилятор сгенерировал маш код ну и еще остается реверс-инжиниринг, умение дизассемблировать возможно, от компилятора с++ не удасться добиться чтобы он при генерации задействовал все новые возможности конкретного цп, и в каких-то особых случаях кто-то пишет асм-код, только сегодня это делают не ассемблерными вставками, а оформляют в отдельную единицу трансляции
Анон, вот как известно, вся эта аналитика по популярности/востребованности языков, что публикуется на хабре и т.п. - лютый кал, и основана на таких вещах, как "число запросов по языку в гугле", "число резюме и вакансий на портале rabota.narod.govno.ru".
Вот давай чисто субъективно, скажи: 1) Как изменился рынок труда для плюсов за последние десять лет? Плюсы не сдохли, как многие прогнозировали, это уже победа. Вкатиться стало сложнее, но это в целом по IT так. Т.е., в целом можно сказать, что плюсы пережили десятилетие хорошо и не стали чем-то супер-нишевым, да? 2) А что будет в следующие десять лет? Может быть, плюсы-таки станут менее востребованы? Или же наоборот, и тогда ехидные зумеры-фортнайтеры с острым как бритва интеллектом массово набегут и заберут our jeeerbs? Что думаешь?
>>1944928 > число запросов по языку в гугле Лютая хуйня. Не понимаю, как вообще можно было до такого додуматься. Каждое упоминание TIOBE триггерит. > число вакансий Это ближе к реальности, но нужно брать только крупнейшие сайты с вакансиями.
А как собственно учить стандарты? Не читать же доки на 1к+ страниц для каждого? И как я понимаю сейчас 3 мастхева - 14, 17 и 20? 11 мало где встречал, а более поздние не нужны?
>>1944928 Нормальный специалист не задрачивает один язык, правильно? Во-первых, имеет смысл знать хотя бы питон параллельно с плюсами. Во-вторых, развиваться в какой-то предметной области. Машоб, hft, геймдев, embedded, да хоть фронт для мобилок на том qt пишут, т.д.
Вот. А вообще плюсы сдыхать не собираются. Да, хипста плюсов боится, но от этого компенсация для нас, опытных плюсовиков, только бодро растёт.
>>1945046 >>1945035 Я не уверен на какой уровень это вопрос, мне его чел из брокерской конторы задал, и я не ответил. Чисто интуитивно переписал через make_shared<>, но объяснить зачем я это сделал, не смог - сказал пук и среньк. Это Item 17 из старой книги Мейерса. Так что по сути вопрос не столько про смартпоинтеры, сколько про "читали ли вы Мейерса?". Точно так же как вопрос Касперского про типы назвать виды оператора new() - туда же.
>>1944928 >Плюсы не сдохли с хуя ли не сдохли? криптография вся сдохла, ибо уже все написано (не имею в виду криптовалюты) безопасность вся сдохла (ибо в винде встроенный файрвол и антивирусник и прочие инструменты безопасника, всем похуй теперь на сторонние разработки) виртуализация под x86 вся написана (включая и "софт" виртуализацию) у крестоблядков и сиблядков тупо нет задач, нет задач - нет работы ну, осталось че-то там по мелочам дописывать и на саппорте сидеть ну, геймдев всегда будет за миску риса с переработками ну и все как бы
>>1944968 >embedded сдохло у каждой железнячной фирмы уже есть свой пул исходников, они тупо дрова и прошивки перекомпилируют под новые версии устройств и все держать одну или две си-обезьяны в штате и все, этого достаточно
>>1944968 >Машоб дутая дрисня, крестанам там делать нечего, там раздолье для питоно-блядков в лучшем случае будешь их маня-код на питоне переделывать под кресты чтобы быстрее было
Доброго времени суток, господа. Подскажите на что я могу вообще рассчитывать в плане зп со стеком, включающим в себя c/c++? Какие задачи остались в современном мире для плюсовиков и сишников?
>>1945197 А если серьезно? Вот я обычный бот, вышедший после Российского Вуза. Из знаний: базы данных, операционные системы, архитектура ИС и прочая ересь, знание алгоритмов и структур. Из личных проектов: Симуляции для гидродинамических и астрофизических процессов, парсер для данных в банковской сфере.
>>1945203 те есть диплом "погроммиста" и что-то учил в вузике по с++? тогда шансы есть (хоть какие то), если готов вьябывать за прайс ниже рынка главное, чтобы не было перерыва, чем дольше не сможешь устроиться на работу, тем меньше будет шансов устроиться года три проебланишь без работы или на сторонних работках - то все, пиздец
>>1945225 >>1945235 Кто вообще в 2021 году верит в какую-то сферическую разработку на чистом с++? Сейчас с++ никто специально не учит, чтобы на работу устроиться. Обычно он учится автоматически вместе с какой-то предметной областью. Ну и охуительные истории, конечно, про яндекс с 300к и нвидии с 700к лол. Такие зп имеют ключевые сотрудники и точно не простые хуи после любой работы за 25-100к | 1 год, лол. Вкатываться в айти на с++ с нуля - это совсем дурачком нужно быть.
Как смериться с тем, что тупой? У меня 170 решенных задач на леткоде из низ больше 40 хард. И все равно я регулярно обсираюсь на алгособесах. За 80 минут на кодилити не успел доделать вторую из двух, потому что сначала не туда пошел, а потом осталось мало времени на дебаг. Думаю в наше время уровень компетишена на позицию разраба уже реально начал упираться в генетические способности индивидов.
>>1945357 У меня там две решенных задачи, дальше мне показалось сложно. Легко прошёл штук 7 последних собеседов, везде легко справился, с тремя продолжил диалог, на остальных забил, сейчас выбираю из трех офферов. Ну в яндексе я бы наверное тоже обосрался, но это показатель уровня ЕГЭ
>>1945362 Я за бугром типо. Ну во все приличные конторы, по крайней мере тут, практикуется яндексообразное собеседование. Или Codilty для прескрининга, чтобы даунов не набирать.
>>1945336 Да я понимаю, после 700к уже смешно стало.
>>1945333 Так и учил, и диплом скоро будет, недавно полгода работал на одну компанию, которая терминалы для банковских систем производит.
>>1945347 Учил c/c++ потому что у нас дохуя физики было и математики, поэтому много симуляций и вычислений писали, в том числе параллельных. Да и байтоебство люблю, если честно.
>>1945364 Понял. Вообще конечно были собеседования с задачками, но как-то адекватно мне пока что попадалось. А один собесед вообще очень понравился — просто обсуждали всякие фичи, какие технологии использовали, порассуждали на тему всяких архитектур и т.д. Даже собеседование не почувствовал, просто попиздели с чуваком на интересные нам технические темы вокруг плюсов и т.д, приятно было. Оффер от них тоже получил в итоге.
А за бугром хз, да. Могу только посоветовать собеседоваться дальше, вряд ли ты тупой
>>1945357 >Думаю в наше время уровень компетишена на позицию разраба уже реально начал упираться в генетические способности индивидов. Вкатывайся в дотасаенс. Туда до сих пор берут даже макак.
>>1945367 >работал на одну компанию, которая терминалы для банковских систем производит Если не секрет, что за контора? Эвотор? AQSI? Расскажи, пожалуйста, о впечатлениях.
>>1945385 >Если не секрет, что за контора? Очень локальная, но входит в подразделение другой компании, которая работает на TSYS.
>которая терминалы для банковских систем производит Я не сами терминалы программировал, а обработку данных на сервере, вообще удивлен, что бек на Си писали.
>>1944968 >фронт для мобилок Много приложений-то? 2ГИС знаю, что на плюсах написал. Там по-моему ещё платная версия нужна, чтобы это всё нормально работало.
>>1945167 IoT есть, со всяким кодом для обработки сигналов с датчиков. Но там сишка и много матчасти знать надо, там не только кодописание. Разработка эмбеддедп дня управления всякой мало где применяемой йоба-переферией вроде рентгеновских датчиков, обработчиков всяких хитрых сигналов. Там по-моему тоже сишка. Вроде бы всё есть для постороннего взгляда, а как сунешься - много чего нет, софт пишут с нуля, как минимум для интеграции всего этого. Видел вакансии на Delphi (лол) в конторе, которая делает различные сканы поверхностей на предмет дефектов. Короче, эмбеддед - то, где надо знать матчасть, и где много разных проектов со своей спецификой.
>>1945331 Расскажи поподробнее. У меня создалось впечатление, что под мобилки делают на юнити-анриле или на открытых движках, и всё это не на плюсах, а на Джаве или Котлине. А на плюсах свои движки делают разве что богатые конторы крупные проекты, много ли таких на рынке?
Если я правильно понимаю, во второй структуре только шаблон, и оно не знает что существует перегрузка для initializer_list в A. Как "пробросить" список имеющихся перегрузок из A в B?
>>1945923 https://ideone.com/pzK8n5 Так? Тогда код B::operator= не вызывается вовсе, а в нём какие-то дополнительные действия перед вызовом A::operator= должны происходить.
Мне вот кажется там решение должно выглядеть примерно как 16-17 строка, список с указанием возможных типов, но что-то я не знаю по какому запросу такое гуглить, "явное инстанцирование методов" ничего не выдаёт.
>>1945946 Судя по предыдущему коду, тебе нужно было перенести operator=() из предка в потомок без изменений ("пробросить"). Для этого и используется using. Так же можно делать с конструкторами.
>>1945946 Если кроме вызова метода предка ты ещё хочешь что-то сделать, то добавь ещё один шаблонный метод (специализацию), чтобы контекст был выводимым. А using убери.
>>1945862 > что под мобилки делают на юнити-анриле Если какая-то 3д йоба, то да. >или на открытых движках Если какая-то 2д йоба, то да, уровня кокос/годот/дефолд. >и всё это не на плюсах Сишарп в юнити / плюсы на остальных движках. >а на Джаве или Котлине Это если самопал какой-то на андройд. >А на плюсах свои движки делают разве что богатые конторы крупные проекты, много ли таких на рынке? Когда юзаешь движок, нету разницы особо плюсы или нет. Там макаки сидят апи юзают просто и всё. А часто вообще обходятся встроенным конструктором и не пишут кода даже почти.
>>1945862 >и всё это не на плюсах, а на Джаве или Котлине. хочешь охуенную плавную анимацию, чтобы выглядело заебись - у тебя нет выбора, надо писать на крестах даже под андроед
Анон, хочу тут поупарываться в ASCII и консольку...... А есть какая-нибудь либа для этого?
Ну на никсах есть ncurses... Но хочется что-нибудь легковестное, без ебли с их компиляцией и под винду Короче:
- винда в приоритете, но в идеале платформозависимость (линукс и винда, можно emscripten)
- только вывод букв в консольку, с разными цветами (нахер не нужны там всякие панельки-окна).
- поддержка кириллицы
- нативное (например на виндах через винапи), а не эмулятор на SDL/etc( потому что капец как бесит когда хочется по фану на пять минут что-нибудь набросать, а вместо этого надо ебаться с стороними либами)
- легковесность - в идеале heander-only - прост включил в проект заголовок и пиши
Cравниваю две вещественные координаты в if - false, хотя в выводе у них одинаковые значения по x и y. Есть мысли че не так? Что ему там последние байты не нравятся?
>>1946099 Да это тролль очевидный, не бывает на свете таких наивных людей.
Кстати, есть сейчас ИТТ кто-то, кто в госконторах работает? Рассказывайте, как живется и что делаете. На Borland 6 за дедами доедаете? сам в Роскосмосе начинал когда-то, было весело, вспоминать приятно
Привет. Изучаю С++, ну это и так думаю понятно. Так вот, все мне нравиться, но хочу просто для себя больше понять как работает процессор и прочие модули. Нашел годноту, но эта книга, что на пикче на английском(да могу осилить ее на инглише, но займет больше времени) так вот ананасы, есть ли русская версия? или может что то другое на подобную тематику на русском? И да сразу после нее, думаю читать Таненбаума-архитектура ЭВМ. Вообщем, посоветуйте годных книг по работе железа как доплитерутуру, для байтоебов. И да, я в курсе про ассемблер
>>1946131 Привет! Извини, я книгу не читал, но если судить ее по обложке, то кажется, что это что-то для домохозяек. Таненбаум - "Архитектура ЭВМ" это тоже для домохозяек. ее я читал Лучшая в галактике книга по системному уровню вот: >>1942749 Она большая и надо думать, зато будешь расти как разработчик, а не как пользователь ПК. Если тебе нужен еще ниже уровень (железо), то ты ошибся тредом (ты и так, в общем-то, ошибся), зайди к Сишникам, найди эмбеддеров, потыкай в них.
>>1946139 хм, антоша, спасибо То есть для с++ разработчика(в будущем конечно) лучше будет прочитать, то что ты рекомендуешь? А там есть про так процессор обрабатывает команды, грузит данные в память ну и подобные фичи, которые мы регулярно используем в наших программах. Короче, когда я пишу какую то команду, я хочу хотя бы на базовом уровне понимать как cout<<"Hello" попадает ко мне на монитор. Надеюсь ты понимаешь о чем я) и да спасибо за рекомндаци, сейчас скачаю. бобра и печенек тебе
>>1946147 >То есть для с++ разработчика(в будущем конечно) лучше будет прочитать, то что ты рекомендуешь? Ну т.к. речь идет о системной разработке, там все примеры на чистом Си. Говорится в т.ч. о том, как писать модули ядра. Но если не считать этого, то 80% вещей оттуда плюсовику знать, наверное, тоже очень желательно. >А там есть про так процессор обрабатывает команды, грузит данные в память ну и подобные фичи, которые мы регулярно используем в наших программах. Ага. Там про разное железо, и про разные операционки. Условно говоря, идет речь о планировщике потоков, говорится, как он устроен в Linux'е, под виндой, на макоси, и на какой-то BSD-хуйне, по-моему. А по поводу того, что она на английском, и займет много времени -- как я понял, ты пока еще студент, и спешить особо некуда, так что пусть, заодно английский подкачаешь, двойная польза.
>>1946173 ух, спасибо антоша, ты сделал мой день да, открыл, смотрю, конечно на мой скромный взгляд годнота еще та осталось только на русском найти это вин >>А по поводу того, что она на английском, и займет много времени ->>- как я понял, ты пока еще студент, и спешить особо некуда, так >>что пусть, заодно английский подкачаешь, двойная польза ну как бы да, но и дел на самом деле хватает тоже. но ты прав
>>1946257 На картинке написаное Ninth (девятое), 2018й год, я с рутрекера качал. В более старой версии хз что, но, конечно, всегда свежее = лучше. Допустим, про андроид тоже есть, а в старом может не быть. >>1946259 Емнип, в макоси двойное ядро - бсд-хуйня для POSIX-совместимости и второе, основанное на забытых некро-разработках, которое большую часть работы и делает.
>>1946339 Релакс, не имеет смысла долго выбирать книгу, которую почти наверняка не прочитаешь, не говоря уже о "премиумном коненте" в ней. Если под этим контентом подразумеваются 17-21 главы про сети и распределенные системы, то да, есть. Но пока до них неспеша доберешься, выйдет 228-ое издание книги.
>>1946362 никто не говорит про полное прочтение. по опуту, суть книги помещается в 60% основного текста далее идет материал, к которму вернешся в случае необходимости
>>1946291 >при чем тут перевод строки, если там синтаксическая ошибка - этот код просто не будет компилироваться А блять, в глаза долблюсь, показалось, что там \\.
блять крестоносцы ебаные вы вообще работаете? у вас в единицу времени сообщений на дваче пиздец просто питон редко отвечает, нейроночки еще реже, си вообще сдох зато в крестах блять пиздуйте давайте работать, байтоебы
>>1946400 Дак мы тут вчера пообсуждали стримеров на твиче, пока модератор не потёр. Еще к нам с университетскими лабами набигают, т.к. наш язык преподается в вузах. Плюс, ребята из Яндекса и Нвидии крайне некомфортно себя чувствуют, если целый день не приходят напомнить нам об этом. В добавок, мой шитпост чтобы ответить на твой шитпост.
>>1946400 Так тут школьники-сеньеры-помидоры из нвидии сидят же, чего ты хотел? Может с виду кажется, что тут что-то происходит, но обычно отвечают нерелейтед хуитой. Как минимум, по компьютерной графике, например. Я поначалу думал, что просто дауны отвечают и пытался с кем-то спорить, что-то объяснять, но потом понял, что это просто тред такой, чтобы рофлить над вкатышами наивными и кидать пасты уровня Эндрю Таненбаум энд Технолоджис.
>>1946404 бля лол я тебе открою секрет, что решает не инструмент, а предметная область или ты перед женой выебываешься, что умеешь махать молотком с прицелом? я знаю таких фронтов, что ты точно нахуй пойдешь со своими взглядами. И многие из них, о боже - может это для тебя секрет, умеет в плюсы, но выбрали красить кнопки так что не считай себя умнее других, плиз
Когда ассептор при поступлении запроса на соединение инициализирует серверный сокет, этот сокет биндинтся на рандомный порт, а не на тот порт на котором сам ассептор висит.
Какого хуя, собственно? Сервис развернут на одном порту, к которому и подключаются клиенты, а обрабытываюющие сокеты уже на каких-то левых портах. Получается, что к одному порту может быть подключен только один сокет, и ОС дальше как-то сама определяет, когда приходят пакеты, на какой сокет в какой порт их пихнуть?
>>1946632 Так работают сокеты, asio тут не при чём. Если бы у тебя юзался только один серверный порт, ты бы не мог работать одновременно с несколькими клиентами, а с разными ничего не мешает, и главный порт нужен для диспатчинга по разным портам.
>>1946668 Что делать тогда, если сервак должен хендлить сотни тысяч клиентов одновременно? Портов явно не хватит, тем не менее люди как-то делают
И как на сервере определяется, куда завернуть приходящие пакеты, в какой сокет они направлены? в самом пакете все равно есть только адрес и порт сервиса
>>1946688 > Что делать тогда, если сервак должен хендлить сотни тысяч клиентов одновременно? Портов явно не хватит, тем не менее люди как-то делают Юзать несколько серверов и балансировщик. > И как на сервере определяется, куда завернуть приходящие пакеты, в какой сокет они направлены? в самом пакете все равно есть только адрес и порт сервиса С этим уже ОС разберётся.
>>1945959 Благодарю, почему-то сам не догадался ночью и "дополнительный код" B из _copy во все перегрузки ниже тащил. Так немного громоздко, но хотя бы код в одном месте.
>>1945951 Да я примерно знаю правила вывода, было интересно можно ли как-то указать, написать что-то вроде template<> operator=<initializer_list<int>>(initializer_list<int>) =default; - чтобы код общего шаблона не менялся, но оно пыталось приводить аргумент к initializer_list в первую очередь, как если бы я сам явно скопировал его со всем кодом.
>>1945948 Да, извиняюсь, возможно это было не очевидно - но в таком случае я бы вовсе не писал в B никакой перегрузки.
>>1946724 >в таком случае я бы вовсе не писал в B никакой перегрузки Так b = 4.7f не скомпилится. Придётся либо (A&)b = 4.7f, либо b.A::operator=() = 4.7f писать. Компилятор сначала ищет имена в most derived. Если он там нашёл хотя бы одно (это будет operator=(B&), созданный по умолчанию), то в потомке он ничего смотреть не станет. Удаление "= delete" тоже не поможет, так как удалённый метод тоже в перегрузке участвует.
>>1936311 (OP) Не понимаю одной вещи. С одной стороны, видел советы по названию переменных и методов в camelCase. С другой, постоянно вижу в коде именования в стиле under_score.
нашел вот такое отсканеное дерьмо на просторах бля, уверен тут есть у кого книга Вильяма Столинга на русском! поделитесь, че вы псы в самом деле жопитесь
>>1947284 Загугли еще в качестве альтернативы "Operating Systems dinosaur book". Я не читал и хз насколько там глубоко, но это классика классики, рекомендуют всегда и везде. Правда, возможно, давно не переиздавалось. Хз.
>>1947503 Используешь стандартные структуры вместе с синхронизацией Либо пишешь свои thread-safe классы Либо используешь сторонние либы от Васянов Либо перекатываешься в lock-free Либо идешь нахуй
>>1947864 1 день на составление резюме на хедхантер и линкедин. от 1 дня до 2 недель на собеседования. И ты уже вкатился. Голод на прогеров бешеный, СЕЙЧАС БЕРУТ ВСЕХ.
>>1947961 Сделал им тестовое задание просто топово, позвали в офис на встречу. проигнорил, так как уже было близко к офферам в двух других местах, не стал заморачиваться.
Я же делаю все по Мейерсу. Как этот ебучий конструктор по умолчанию заприватить?
Потому что если я делаю Singleton() = default; как протектед, то в результате оно компилируется, да, но при этом конструктор какого-то хуя становится публичным, код: https://ideone.com/jwYk0J (то есть по итогу это нихуя не синглтон, а создается ДВА экземпляра - что за хуйня? смотри main() - я сейчас из-за этой хуйни полчаса багу искал)
>>1948091 >но при этом конструктор какого-то хуя становится публичным в классе Foo у тебя конструктор Singleton станет private, а конструктор Foo будет public всекаешь? хочешь запретить прямое конструирование Foo? делай его конструктор приватным..
Ебучие указатели, ненавижу. long long(A)[][MB][4]; //объявил массив A = (long long()[][MB][4])malloc(M MB 4 sizeof(long long)); //выделил память copy((A)[N][kk]); //передал функции адрес куда пихать void copy(long long a[]) { a[0] = N0; }//пихаю Получаю нарушение доступа к памяти. Причём до этого вместо лонгов был char и всё работало. Где ошибка?
>>1948759 Чёрт, странная тема, но похоже ошибка была из-за дебага в х86, вместо х64. Интересно почему тогда ошибка была именно при копировании, ведь N0 тоже long long. В любом случае вроде работает, недоглядел.
>>1948807 Я это конечно с дивана говорю, но потому что многомерный массив с константным размеров типов - это обычный указатель. https://godbolt.org/z/K7WEGK Или ты думаешь, что компилятор настолько поехавший, что хранит там тройной указатель, который разыменовывает? Нет, он просто складывает и умножает размерности известные в компайл-тайме.
>>1948867 Ты хоть понимаешь масштаб проблемы? Написал ты бэк на ++С, приходит тебе запрос /nosuchapi, а ты отвечаешь 200 { "success": false, "error": 4294967295 }. Это вот пиздец, по сравнению с которым nothrow - детский лепет
>>1949270 1. x+1 2. 3 - x+1 3. x+1 4. 2x+1 5. 2x+1 * 3 - x+1 А вообще лучше всегда использовать скобки для предотвращения глупых ошибок и удобночитаемости.
Сап, такой вопрос. Учусь в универе на программировании 1 курс, начинаем изучать С++ сразу через ООП ( как я понимаю, это довольно странно, но похуй.)
Назрел вопрос, в шапке есть книги по С++, одна из них Роберт Лафоре Объектно-ориентированное программирование в C++ Насколько есть смысл вкатываться через эту книгу, учитывая, что я хочу изучить С++ чисто чтобы не завалить универ (благо он будет у нас только до 2-ого курса) или же проще будет сразу Липпмана брать?
>>1949321 >Роберт Лафоре Объектно-ориентированное программирование в C++ 2004й год? А зачем? Бери Страуструпа, хули ты. Потому что чего ты опасаешься-то? Потратить много умственных усилий на язык, который ты потом дропнешь? Дак чем больше глюкозы ты потратишь на плюсы, тем легче потом тебе дастся твой пидорский раст или джаваскрипт, или что там еще. >чисто чтобы не завалить универ Не ссы, не завалишь. Если будут какие-то сложные лабы, неси сюда, ребятки помогут решить.
Анон, видел приколюндрий? https://www.toptal.com/c-plus-plus/interview-questions 7й вопрос, который "Implement a template function IsDerivedFrom() that takes class C and class P..." Сорян если видел. Просто реально приколюндрий.
>>1949355 Как ты dynamic_cast в compile time выполнишь? Задача про темплейты. Там есть ответ, если нажать клавишу (кнопку) мыши. Один для умных (std::is_base_of), второй для слишком умных. Вот я про него.
>>1949401 >Какие виды двоичных деревьев знаете? Вот ты со своими деревьями сиди дальше в НИИ пропёрживай штаны, чел)) >Напишите О большое для new. Охуенное знание. Зачем нужно? Нужно знать, что heap фрагменитруется, а вот уметь это формализировать - бесполезный трюк уровня "смотрите как я могу". Знаешь, как гений-алгебраист может не знать как взять самый простейший интеграл, точно так же 700к-нвидия пацан может себе позволить забыть какие-то основы CS; в то время, как задроченный студент обязан их помнить, т.к. могут спросить.
>>1949432 Ну в любой компании(всякие яндексы, хуавеи, нвидии, самсунги, стартапы, etc.) ключевые люди получают норм зп + акции компании, что может выйти в 700к. Но это единицы, работающие там годами и уж точно не местный шизик, который рассказывает как без образования на собес пришел и всё такое прочее.
>>1949444 Ну, во первых, я не шизик, во вторых, 700 стабильно за год между ревью получилось. Было бы дохуя меньше, если бы не грант акций, который выдавали по 150-200 вырос до 550+ (я все что было продал по 550).
Анон, объясни что значит, что язык темплейтов полный по Тюрингу? Значит ли это, что, грубо говоря, я могу нахуй геном человека расшифровать шаблонами на этапе компиляции, а в рантайме просто значения повыводить в консольку?
>>1949338 >Просто реально приколюндрий. Эти трюки описаны в древних книжках из начала нулевых. А в каких-нибудь журналах типа drdobbs возможно были описаны и того раньше.
>>1949986 Можно начать с этого template <class D, class P> bool is_derived() { struct S { virtual void stub() {}; }; struct SD : public D, S {}; return dynamic_cast<const P*>(&SD()); }; И додумать как быть с final и отсутствием конструктора.
>>1936311 (OP) Памагити! В универе заставляют писать на Borland C под DOS. Суть проблемы: 1)пик1: после редактирования файла L1ASM.ASM почему-то при компиляции не перезаписывается файл L1ASM.OBJ , хотя файл L1.OBJ , который компилируется из файла L1.CPP перезаписывается нормально. Т.е. если L1ASM.OBJ удалять каждый раз вручную, то все работает нормально. 2)Но если скомпилировать L1ASM.ASM с помощью Turbo Assembler без привлечения среды Borland C, то соответствующий файл L1ASM.OBJ перезаписывается нормально, сколько бы раз я его не компилировал. Значит, проблема где-то между Borland C и Turbo Assembler. 3)Ещё перед пик 1 появляется пик 3. Что с этим делать? inb менять IDE DoxBox от имени администратора запускал, ОС Windows 7 x64, в режиме совместимости с WinXP и Win95 запускал, не помогло.
>>1950021 Самое депрессивное что я видел за сегодня, держись, брат. Год назад уволился от одного из топовых работодателей рынка IT в России; там в числе прочего приходилось поддерживать сборку под DOS16, т.к. клиенты этой компании хотят сэкономить на железе, да и сам DOS бесплатный. После этого сидел без работы почти год, пердолил себе консольку в линуксе, и радовался жизни. Понял, что лучше быть бедным, зато пердолиться в нормальную консольку, а не эту вот.
Мощная программа Три дня вебинаров по 1,5 часа для полного погружения в тему — такого вы ещё не видели.
Реальные задачи Которые помогут закрепить знания и понять, в каком направлении двигаться дальше.
Кейс в портфолио На интенсиве вы создадите проект, который наверняка оценят потенциальные работодатели.
Комьюнити Вас ждёт общение с другими участниками и ведущим интенсива в закрытом чате в Telegram.
24 февраля (среда) Готовимся к созданию сервера на C++ Рассматриваем основы синтаксиса C++. Разбираем типы и структуры данных. Пишем первое простейшее приложение. Разбираемся с основными принципами ручного управления памятью. Устанавливаем среду разработки, изучаем её возможности. Применяем стандартную библиотеку. Создаём основу нашего сервера. Проходим квиз и получаем сертификат Junior C++ developer.
25 февраля (четверг) Создаём высокопроизводительный сервер на C++ Продумываем протокол общения между сервером и клиентом. Разбираемся с основными принципами построения многопоточного приложения. Разбираем, как работают сетевые соединения. Применяем фреймворк для организации многопоточного сервера. Пишем основную логику работы чат-сервера. Выполняем домашнее задание и получаем сертификат Middle C++ developer.
26 февраля (пятница) Сервер на C++: подводим итоги Улучшаем код сервера. Разбираемся, как собрать код в финальный исполняемый файл. Выкладываем наше приложение в облачный хостинг. Выбираем победителей, раздаём призы, получаем сертификат Senior C++ developer. Составляем резюме и устраиваемся на работу.
>>1950057 >Год назад уволился от одного из топовых работодателей рынка IT в России; там в числе прочего приходилось поддерживать сборку под DOS16, т.к. клиенты этой компании хотят сэкономить на железе, да и сам DOS бесплатный. Шо, железо дороже времени на портирование под DOS?
>>1950099 Looking for a position: Senior C++ developer Expected salary: $ 150 000 - 250 000 / yr
experience: 3 (full) days
CV: February 24 2021 (sreda) Got to the basics of C++ syntax. Parsed types and data structures. Wrote the a simple application. Understood the basic principles of manual memory management. Installed the development environment, explored its capabilities. Used the standard library. Created the basis of the server. Got a Junior C++ developer certificate.
February 25 2021 (chetverg) Built a high performance C ++ server Architected a communication protocol between the server and the client. Built a multi-threaded application. Understood how network connections work. We applied a framework for organizing a multithreaded server. Created the basic logic of the chat server. Got a Middle C++ developer certificate.
February 26 2022 (pyatnitsa) Improved the server code. Assembled the code into a final executable file. Uploaded the application to cloud hosting. Received a Senior C++ developer certificate.
>>1949921 ну возможность метапрограммирования на шаблонах используется типа для кодогенерации.. но когда дело доходит до реальных задач все равно пользуются внешними препроцессорами ха ха..
>>1950099 >>1950111 Неплохо. Наконец-то курсы на senior pizdabol na dvache. Жаль, пенсии по шизе в комплекте нет. У меня кореш ходил на их "интенсив" по питону. Говорит, там 30% времени это сидишь и слушаешь рекламу платных курсов.
Аноны, поясните за тредпулы. Какой смысл создавать 4 тредворкера, если они, как мне кажется, не используются? Вы пушите таск в очередь, и когда воркер достает один, мьютекс локается, и как я понимаю, все остальные потоки не смогут делать того же исходя из того, как я понимаю мьютексы. Когда работа над таском выполнена - мьютекс анлокается, достается новый таск и так по кругу. Так собственно где тут остальные 3 потока?
>>1950139 хм, как раз некоторые возможности шаблонов в раннем с++ и позволили некоторые возможности метапрограммирования в языке.. по сути вся книжка александреску и посвящена была этому.. а в сегодняшних стандартах есть прямая поддержка метапрограммирования.. без костылей..
>>1950234 Занятые треды заняты, а свободные треды висят на какой-нибудь Кондишн Вариабле в слипе, и просыпаются, когда пришла новая таска (триггернули CV)
>>1949303 Да. Сишисты со своими while(⚹s2++=*s1++) совсем двинулись. Да, лаконично, но это читаемость кода в говно превращает же, и по быстродействию никакого выиграешь с тремя строками - а прочитать три строки можно намного быстрее. Такая же лишняя когнитивная нагрузка как и хуёвые названия переменных.
>>1950309 По твоему while(⚹s2++=*s1++) быстрее работает, чем читаемая запись в три строчки? Вбей в годболт, там буквально одинаковый асм-код получается.
>>1950318 Такое используется для вычислений в системах с массовым параллелизмом (MPP). Например моделирование физических процессов с помощью методов конечных элементов и не только (CAE системы). Естественно, что машины с кучей процов, распределённой файловой системой и разделяемой памятью есть только во всяких Росатомах и Роскосмосах (ещё в МГУ есть). Соответственно вакансий под MPI хуй да нихуя и все они для патриотов.
Есть класс, назовём его Buffer. Буфер представляет из себя небольшую обертку над QVector, хранит дохуя импортируемых записей, поэтому хочется иметь копи и мув операции. Из этого следует, что от QObject наследоваться нельзя. Хочется иметь qml синглтон, который будет этот буфер менеджить - управлять импортом/экспортом, прокидывать буфер в какие-то вьюхи. Назовём это BufferManager. Тут начинается интересное. Хочется иметь возможность в qml делать что-то вроде
SomeBufferView { buffer: BufferManager.buffer }
Хуй там плавал! Никоим образом буфер прокинуть нельзя, он должен быть зарегистрирован в qml-движке, но это невозможно из-за копи и мув хотелок. Чо делать? Кроме как перевести BufferManager из qml синглтона в обычный с++ синглтон есть варианты?
>>1950395 Вью должен получать не сырой буффер, а модель для отображения. Посмотри туториал по моделям, там все расписано. А модель готовь в крестовом классе, и выкладывай в кюмл как проперти или функцией.
>>1950537 Пардон, я ошибся. Как раз моделям во вьюхах я хотел прокидывать буфер. В сыром виде. До BufferModel обёртки чё-то даже не допёр сначала лол. Спасибо, подтолкнул, буду пробовать.
>>1950597 Ну вот пример моего всратого пултреда. Когда втыкал pthread_mutex_lock не совсем понимал что делаю и зачем. Если поставить анлок мютекса на 30ю строку, иногда вылетает сегфолт и не все таски обрабатываются. Сейчас, когда всё как на скрине, работает нормально. Однако все еще есть сомнения в моем понимании мютексов.
>>1950565 Там единственное есть особенность: в отличие от виджетов, кмл вьюха не сообщает модели номер столбца, он всегда 0, поэтому их приходится различать по ролям, и соответственно на отображение влияет только кмл делегат, а не сообщаемые моделью роли (editable и т.п.). Поначалу несколько обескураживает.
Расскажите, пожалуйста, что почитать: 1) Чтобы круто хуярить нативные приложения на плюсах (Qt). Не то чтобы хочется, но мало ли, жизнь заставит. Там же есть какие-то устоявшиеся практики, вроде разбиения десктопного приложения внутри на бэкенд (в виде стейт-машины, возможно с вынесением в сервис?) и фронтенд. Нихуя не поятно, короче. Откуда я это высосал? Увидел где-то. А раз где-то увидел, значит, откуда-то оно взялось? 2) Книжки по ""архитектуре"" для бэкенда. Просто часто на собесах говорят - "нам нужен специалист с архитекторским опытом...." Дак вот, где этому учатся? Звучит как очень размазанное понятие, сферический конь в вакууме. Почитать дайте. Выкачал "чистая архитектура", еще не читал, но предвкушаю что водища.
Как прикрутить графон к плюсам? А то в бейсике можно было без регистрации и смс рисовать круг, линию и точку и на этой основе без задней мысли начать делать игры.
>>1951095 Ну дак я понимаю, брат, но если чему-то можно научиться, значит по этому есть книжки. Верно? Верно. Ведь если кто-то обладает ""архитекторским опытом"" и по этой теме нет еще ни одной книги, разве он откажется написать первую и навеки остаться в истории Computer Science? Книжки давай, чего выебываешься сидишь.
>>1951124 >Нахуй ты им с твоими книжками нужен? Мне плевать, нужен ли я им. Я для себя учусь. Чтобы когда пришел момент получать ""архитекторский опыт"", было на что опираться. А вообще, отстань, ты какой-то пустословный.
>>1951182 Да какой мем, анон явно не для работы спрашивает, наше дело лишь предложить технологии. Но даже если для работы, sfml в вакансиях писать тупо, он за пару вечеров учится же.
Аноны, посоветуйте простую реализацию нейросети, которая бы смогла классифицировать десяток объектов на картинке, почти как рукописные цифры определять, только это капча. Картинки генерирующиеся и довольно простые, выбирается один из вариантов.
Питон не покатит, это поделие хочу запускать на роутере с 70мбайт свободной оперативы и 600мгц процессором. да, я ебанутый
m_numbers[j] = numbers[j] будет заполнять только первые 6 элементов. Это неправильно
По задаче мне надо в огромный массив m_numbers из нескольких тысяч элементов скопировать содержимое из массива numbers (в котором шесть элементов), начиная с индекса m_num
поэтому там:
m_numbers[m_num] = numbers[j] m_num = это первый элемент,в который надо копировать значение из numbers Он может быть хоть стопятсоттридцатым,
То есть там это раскладывается в такое m_numbers[10000] = numbers[0]; m_numbers[10001] = numbers[1]; m_numbers[10002] = numbers[2]; m_numbers[10003] = numbers[3]; m_numbers[10004] = numbers[4]; m_numbers[10005] = numbers[5];
>>1951438 Что-то фигня получается, получилось тормознуто (обычный перебор циклом и присваивание поэлементно на моем объеме данных работает на почти 200мс быстрее чем std::copy
почти +200мс к времени выполнения на моих данных при юзанье std::copy, написал так: std::copy(m_queue.begin(), m_queue.end(), m_data.begin() + m_num);
>>1951713 >Ты лучше ответить, что за самопсинный стринг? Я не знаю, браток, я не тот чел, которого заставили его писать. Но спасибо за то что ответил на мой пост, мне очень приятно твое внимание. А так, я, думаю, ничего такого, просто сказали "напиши стринг", а он там стал че-то оверинжинирить, типа, блядь, а вдруг юникод, ой, а итераторы, ой, пук, а может COW сделать, как в 1992 модно было? Ой...
>>1951716 Не переживай, дружище. Ты на джуна же собеседовался, да? Исключительно Страуструпа в качестве первой книги рекомендовать надо, а не ту кучу непонятно чего, что навалено для в шапке. У Страуструпа там на пол книги размазана реализация то ли вектора, то ли стринга. Точно ответил бы. >>1951720 >Почти как в 90-х - готовой продукцией. Пиздос, устроился в фейсбук, а зарплату ретвитами и лукасами выдали
Как вкатиться в этот весь пердолинг через игори? Я вроде понимаю ООП, немного знаю стандартную библиотеку, ну и синтаксис базовый, который описывается в первых книгах из шапки, но при этом нихуя написать не могу. Подумал, что может через игори можно дальше как-то двигаться. Накатил SFML, сделал так, чтобы шарик на WASD бегал по бесконечному полю как в змейке, но это всё сложно как-то упаковать в классы, при этом не совсем понятно что лучше использовать для поля: вектор или массив, или вообще сишный массив даже. Хотел сделать поле клеточное, но не понятно как на это поле натянуть координаты и отслеживать это всё, как, например, заспавнить что-то в этой координате или механику drag and drop сделать для условных шахмат. Я порвался об барьер сложности, неумения, незнания, неопытности, что курить дальше?
>>1951873 Пишешь как можешь.... долбоебов рассказывающих что-то там про то что пишешь говнокод и про какой-то мифический хороший код - шлешь нахуй. Простреливаешь себе колено парочку раз и осознаешь как надо писать код. Всё
С++, это брутальный язык, который можно познать только через боль.. Но это как в жизни - путь набивания шишек
Бля, шо за хуйня в этих плюсах. Попробывал выравнить код разными конфигами в Visual Studio. Какого хуя они все код в нечитабельное говно с уебанскими переносами превращают? Что вообще можно использовать для форматирования? Жрать говно? И какие еще есть крутые ide для плюсов, кроме говняной студии, которая выглядит как высер мамонта из нулевых.
>>1951934 Ну епт, почему в vscode есть плагины, которые делают хорошее выравнивание и это даже не ide. А тут в ide я блять вынужден все сам настраивать, а по дефолту список из дерьма от гугломазил, после форматирования которыми хуеешь с того, как они там вообще работают.
>>1951936 Ты джаваскриптер, наверное? У меня есть знакомая джаваскриптерша, ее тоже почему-то сильно волнуют отступы, будто доебаться больше не до чего. Особенно доставил аргумент "питон говно а не язык, там отступы эти дебильные".
// Анон, по твоему опыту, на собесах по плюсам спрашивают SOLID, паттерны? Я за пять лет побывал на ~10 собесах, ни разу не спрашивали. Все вопросы касательно ООП ограничиваются особенностями плюсов, типа там виртуальных деструкторов, временных объектов и т.п..
>>1952087 Спасиб, только это мне не помогло Двач, напомните мне что делает мой код (в качестве переменных адреса памяти intptr_t): if ((переменная1 & переменная2 & переменная3) !=0) Обновлять кое-что
>>1952097 >if ((переменная1 & переменная2 & переменная3) !=0) Обновлять кое-что intptr_t - это "signed integer type capable of holding a pointer", т.е. не обязательно указатель, а может быть тупо используется как инт. Иначе мне непонятно, какого хуя ты там битовые флаги смотришь. Кинь код нормально, братишка, браток, дружище.
>>1952372 Понимаю. Но тут все просто. Беру строку, конверчу ее в чар и передаю в другую функцию сильно ниже. Я думал, что память нужно сразу очищать. А теперь как я понимаю, память нужно очистить только после того места, где я заюзаю переменную?
>>1952378 >Беру строку, конверчу ее в чар и передаю в другую функцию Возможно, ты передал указатель на строку внутри объекта std::string после того, как вызвался его деструктор, засим ты передал висячий указатель и обосрался.
Поэтому тебя, дубину, и просят запостить ВЕСЬ код, а не вонючий огрызок, который позволяет понять истинную причину сегфолта, а не заставляет гадать на кофейной гуще.
>>1952579 В начале была тупо оперативка, адреса хардкодились при написании программ. Не было умных ОС и компиляторов, которые организуют поверх оперативаи стек и кучу. Ты действительно можешь прочитьюать первые гоавы из учебников по ассемблеру, там разжёвывается прхитектура.
>>1952587 >адреса хардкодились при написании программ. Ага теперь понятно. Еще вопрос. Если куча работает медленнее а памяти сейчас много и она дешевая, то почему бы не обойтись без динамической аллокации вообще? Вместо поинтеров для char[] использовать string.
>>1952594 >Вместо поинтеров для char[] использовать string Не понял. Ты думаешь стринг - это не обертка над char[], а какой-то новый тип? > то почему бы не обойтись без динамической аллокации вообще? Ну так она работает быстрее за счёт того, что в реалтайме не нужно хуиту считать. Если сделаешь только один тип памяти, то она станет такой же, как динамическая сейчас.
>>1952610 >Не понял. Ты думаешь стринг - это не обертка над char[], а какой-то новый тип? Это я знаю. Я затупил. Правильно будет сказать - выделять место сразу а не динамически. >Если сделаешь только один тип памяти, то она станет такой же, как динамическая сейчас. Архитектуру я не собираюсь менять. Просто обходить стороной аллокации когда это возможно. Вот еще вопрос - у нас класс сout имеет готовую сущность (инстанс, не знаю как по русски) и она как объект тоже динамически создается кажый раз или как то по особому?
>>1952594 Кроме прочих недостатков стека, его размер сильно ограничен. Пусть у тебя хоть терабайт оперативы, ты не сможешь запихнуть в стек много больших объектов, он быстро переполнится. Иногда дефолтный размер стека можно изменить, но это сильно зависит от компилятора и ОС, и полагаться на это не стоит.
>>1952649 Ну картинки большие по определению. Допустим мы знаем что у нас будет в программе 10 объектов. Возможно ли их статически создать заранее в виде struct-ов и только модифицировать в ходе программы?
здарова братва короче сейчас перекатываюсь из игроиндустрии, где писал на спп хочу подготовиться к собесам через пет проект вопрос: есть ли у вас, примерно, идеи чтобы такого замутить, чтобы показать и знание крестов и знание питона?
>>1952665 Препод сказал что в Хроме утечки памяти потому что экстеншены на джаве пишут всякие проходимцы. То что он съедает это не особо напрягает. Интересует cкорость.
>>1952594 >Если куча работает медленнее а памяти сейчас много и она дешевая, то почему бы не обойтись без динамической аллокации вообще? В системах, где важна скорость и предсказуемость (допустим, ты делаешь ракеты, бомбы и говно), так и делают. Можешь чекнуть стандарт lockheed martin, JSF++ называется.
>>1952594 >Если куча работает медленнее Делал кучу для wasm. Там просто объекты <= 512 байт (у стандартного линуксного malloc из libc вроде так же) выделяются сразу массивами по 64 (ну у меня так) штуки. Такая куча работает очень быстро.
>>1952835 > https://ravesli.com/uroki-cpp/ Выглядит интересно. Этим вообще можно заменить книги базового уровня типу Праты или Липпмана? Что-то вроде, читаешь главу -> пишешь код по изученному в подглаве, вышеупомянутых авторов немного отвратно читать из-за воды, а тут прям по делу всё расписано.
>>1952854 Чел, ты долбоеб? Ты делаешь побитовое умножение адресов указателей, какого дьявола ты пытаешься добиться? Ряяяя не разрешают, UB Нету здесь UB, просто ты долбоеб и делаешь какую-то хуйню; и получишь какую-то хуйню, которая абсолютно никогда никому не потребовалась бы; в т.ч. тебе, даже учитывая что ты долбоеб.
>>1952854 >слажения Сынок. У тебя вся жизнь впереди, а ты уже всем недоволен. Скажи твоя мама тебя люлит? Ты любишь свою маму? Иди и обиими её. Потом продолжим.
>>1952870 Хром на плюсах написан. Но, скорее всего, с использованием гуглового виденья плюсов - с отключенными эксепшнами и запретом на все, что их кидает. Лень смотреть https://github.com/chromium/chromium тбх фам, т.к. фаерфокс лучше
>>1952883 Препод сказал что это возможно проверить по увеличению загрузки памяти и скорости. Причина - экстеншены. Да, фаерфокс он советовал как альтернативу.
Да что за залупа ебаная. Юзаю либу, пишу маленький прожект поделку. Захотел перенести и переименовать этот проект. Оказалось что в ебучей вижуал студии это сделать не так-то просто. Создал новый проект, перекинул туда ранее билдищийся код с гитхаба. И дальше начинается необъяснимая хуйня. Билд ломается, сыпется куча ошибок, указывающих на кишочки либы. Захожу, там всякая хуйня уровня namespace "std" has no member "string_view". Три часа ебусь, переустанавливаю vcpkg, либы, пробую менять версии. Н-и-х-у-я не помогает. В итоге до сих пор сижу сосу хуй, вместо того, чтобы писать код.
>>1952895 Да, ты прав. Через 3 часа написав сюда я догнал, что это за хуйня. Я забыл в новом проекте выставить поддержку последних плюсов. Эти пидоры ничего для людей сделать не могут. Походу там уже вся Индия работает.
>>1952891 >Суб 10:36:58 >>1952899 >Суб 10:45:46 >Через 3 часа написав сюда я догнал, что это за хуйня. А не пиздишь ли ты часом? Алсо про версию крестов нормальный человек подумал бы в течение 5 секунд после твоего сообщения анализатора кода.
>>1952082 Скачать бесплатную IntelliJ IDEA Community Edition и воспользоваться её git клиентом. Открываешь своей проект, выделяешь кусок файла, жмёшь правой и выбираешь что-то вроде Show history for selection, смотришь, наслаждаешься. Поддержка C++ в самой IDE какая-то примитивная вроде есть, для работы с гит клиентом её хватает. Для остальных задач используешь Qt Creator, они с Идеей друг другу никак не мешают.
>>1952910 >нормальный человек Нормальный человек тут ты один? Тут ньюфагов типа меня не сидит? >Через 3 часа написав сюда я догнал, что это за хуйня. У тебя явные проблемы с пониманием прочитанного.
>>1952082 >>1952940 Ставить Идею чтобы посмотреть блейм это, извините меня, кринж. Ладно еще Атом какой-нибудь, хуй с ним. Но блядь. Идею. Да даже в qtcreator'е вашем вы пробовали нажать Alt-G, Alt-B? А? Ну легко запомнить же, G значит Git, B значит Blame. Tools -> Git -> Current File -> Blame
>>1952867 бля с грамматикой проебался, не заметил) но вообще с такими сообщения иди нахуй, ок? >>1952864 да это вообще не я, просто как тред ни открою, так везде UB UB UB UB UB UB
>>1953007 > аноны, есть ли у вас кулстори с переката откуда-то в кресты? Зачем перекатываться в кресты? Кому в здравом уме придет в голову такая мысля? Разве что какому-то микрочелику который хочет в геймдев, земля ему пухом. Выкатываются только из крестов. Разве не так? Я вот несколько раз выкатыавлся в другие языки, но меня всегда засасывало обратно. Типа, начнешь вот на Go работать, сперва кайфуешь и оргазмируешь фонтаном, а потом начинаешь чувствовать, что вот здесь вот явно переборщили с защитой от долбоеба. Или начинает напрягать факт наличия сборщика мусора в твоем языке. Абсолютно ж ненужное удобство, которое своим наличием разве что ограничивает сферу применений языка. В итоге добро пожаловать, снова.
Гайс, как нынче принято тестить либы разных версий в никсах? Раньше делали chroot jail и совали туда все зависимости. Сейчас поди в докере тоже самое делают, я прав?
>>1953178 >Раньше делали chroot jail и совали туда все зависимости. раньше были профессиональные платные тулзы для тестирования под линуксами, но по сути делали они софтварную виртуализацию, да
>>1936311 (OP) Сап. Учусь на первом курсе на софт енджениринг. Преподы - аутсорсные долбоебы.При этом задачи и тесты непомерно сложны. На фоне читинга по прохождению тестов сплачивается коллектив. Думаю летом попробовать написать совместо игру с некоторыми из команды. И возможно создать маленькую студию. Это конечно мечтоы, но почем бы не попробовать. Пока люди еще на энтузиазме, а я знаю чтобы бывает когда осознаешь истинное положение дел. Я то сам не упал бы духом. Но вот за них не знаю. Поэтому думаю надо пилить пока не поздно. У кого есть опыт руководства и попытки распределить таски между командой? Что посоветуете? Присмотрел уже опен сорс на основе которогу будем делать.
>>1953382 >Что посоветуете? Советую хуйней не заниматься. А уж если прям точно намерен заниматься хуйней, то не лезь в плюсы и оупенджеэлы и всё остальное. Берите юнити, запрягайте прям сразу половину людей моделить/рисовать ассеты или хотя бы пиздить/ковырять их в блендере/фотошопе, остальную половину лепить говнокод / тягать конструктор.
Если будете там чёт код какой-то писать - соснете с вероятностью 100 процентов.
Просто без контента, пусть даже хуевого, реально ничего не получится. А что-то там процедурно делать вы не умеете и не научитесь до приличного уровня.
>>1953382 Бро, что там за непомерно сложные задачи на первом курсе? Вас же не заставляют писать компилятор? Создавать студию, в которой никто из участников не имеет опыта, и для каждого из них задачи с первого курса непомерно сложные -- ну ты понял. Ты хотя бы финансово в эту идею не вкладывайся. Пусть будет кружок по интересам, а не студия. Вы пососете, но опыт получите, и это очень здорово. Молодцы. А задачи скинь, любопытно.
>>1953394 >процедурно Зачем используются процедуры? Разве на ооп не сделать? Я вообще минималист. Мне главное чтобы логика работала. А там уж допилю как-нибудь графику. Если сосну - заплачу артисту если геймплей будет что-надо и мне самому доставлять будет.
>>1953399 Я скидывал тесты вверху. Картинки с инглишом. Проблема конечно не в сложности задач но в том что по полочкам не раскладывают. Типа - смотрите это оператор он делает вот так. Нука напиши свой. Вместо того чтобы просто сказать что это для удобства в первую очередь.
>>1953408 Он про процедурную генерацию контента видимо, а не процедурное программирование. Но так то кресты мультипарадигменные, и в стл тащемто куча именно процедур.
>>1953398 Движок для игры или другой? Я вообще консольной текстовой игре буду рад. Потом простой пиксейльный графон. Вообще если геймплей будет такой, что сам готов буду годами играть, то построю целое коммюнити вокруг этого на ютюб и в пораше(нет) А потом и артисты сами подтянутся.
>>1953496 Это две очень разных записи. matrix foo = bar; не использует оператор присваивания, оно использует конструктор копии. Эта строчка эквивалентна этой: matrix foo(bar);
>>1953516 Я уже нашел консольный оупен соус. Теперь надо разобратьяс в коде и прокачать AI до максималки. Для меня это приоритет. Потом добавлять PCG и лутбоксы. Ну а потом DLCшная рента и профит.
>>1953521 Давай браток. Не забывай на все вопросы отвечать "ну игра же еще находится на стадии разработки". На дваче есть пользовательский раздел для геймдева, тебе правда лучше туда. Сюда не надо. Туда.
>>1952839 а книги базового уровня вообще не надо читать, они ничего тебе не дадут выгодней всего взять "язык программирования с++" 4е специальное издание страуструпа и пробиваться через нее с боем а до этого осилить k&r а сверху накатить майерса последнее издание и "шаблоны" вандервурда, это чтобы вкатиться в последние стандарты плюсов
если ты будешь бить пуховые подушки, ты не научишся драться с каменными великанами
https://pastebin.com/yVzN9UzF Прошу подсказки, почему этот алгоритм поразрядной сортировки не влезает в 1 секунду в каком-то тесте, опаздывая аж на 0,1 секунд? Что его так сильно тормозит? Как не загромождать пространство циклами, пушами на каждый из 10 векторов? Есть ли перегрузка '+' для сложения векторов? В нуфаготреде проигнорировали.
Бро, извини что не по делу, но тебе точно заменить все это дело на вектор векторов, типа std::vector<std::vector<int>> L; И обращаться к своим элементам вот так: L[1].push_back(L[0][0]);
В итоге, допустим, заместо той очистки что у тебя сейчас есть, ты мог бы написать две строчки: for(auto &vec : L) vec.clear();
Это никак не повлияет на быстродействие, что там тормозит я не в курсе, но прежде чем сдавать это куда ты там сдаешь, прими мой совет к сведению.
>>1953754 Нет, не троллю. Я год назад последний раз код писал, и то были простые алгоритмы. Говорю же, я из ньфаг-треда.
>>1953761 Спасибо на том, а то я не понимал, как это уменьшить в размере. Может 100 применений clear и отнимают 0,1 секунд. >но прежде чем сдавать это куда ты там сдаешь В yandex contest. Там автоматически через тесты программа прогоняется и код никто не видит, поэтому я и сдаю говнокод, ведь препод палкой за такое бить не будет. >>1953768 Когда учил алгоритмы C# нам препод говорил, чтобы мы руками в степень возводили вот я и написал свою функцию. Значит pow тоже родной щас впишу.
>>1953745 По алгоритму хз но сразу видно что самый большой проеб это L.erase(L.begin()); у тебя каждый раз происходит копирование всех оставшихся элементов на одну позицию к началу. Pow замени на обращение к массиву { 1, 10, 100 ... }. Векторы вставляй инсертом а не пушбеком.
Как это вообще работает? В функциях просто рандом в нужном диапазное конечно же передается в поля структуры, почему обе переменные в итоге имеют одно и тоже значение?
>>1953823 Извини, ты очень плохо задал вопрос, братишка. У тебя вся работа делается в двух функциях, которые ты не показал. А "Просто рандом" говорит абсолютно ничего, рандом бывает разный.
>>1953924 А хотя причина вот в чем - т.к. память не выделяется, то локал тайм возвращает указатель на статическую структуру внутри библиотеки. Те реально все четыре вызова твоих функций возвращают один и тот же указатель. Тебе надо или сохранять значение где то ещё после каждого вызова, или вывод ить результат после каждого вызова. И вообще это сишные функции, используй крестовые.
>>1954002 >>1953998 Дак если программа маленькая, то освобождать в ней память нахуй надо; имеет смысл только чтобы на тебя косо не посмотрели. Многие линуксовые утилиты, типа всякие cat'ы-huyat'ы память выделяют, но не освобождают; потому что делать что ли нечего, память очистится вместе с закрытием программы. А так лишние вызовы. Хотя то си, а это плюсы, тут в теории в деструкторах что-то важное может быть; но нихуя нет. Так что оставьте человека в покое, чего вы давите на бедняжку.
>>1954029 Скоро Go 2 выйдет, с дженериками. А вторая часть всегда лучшая, посмотри, например, на Шрек 2. Какой-то смысл в плюсах на бэкенде окончательно пропадет.
>>1954028 Я хотел сказать, что чистить память после работы программы это как мыть руки после того как ты посрал. Если программа маленькая, и срал ты не два часа поносом, то руки моют только ханжи.
Пацаны, у вас есть какие-то любимые утилитарные библиотеки? Допустим, я для логирования spdlog использую, 8/10, снял пару баллов за то что синглтон. Для сравнения, boost::log оценил бы на 2/10, это кромешный пиздец, литерали троллейбус из хлеба. А вот boost::program_options наоборот относительно заебца, 6.5/10. А вы что за собой таскаете в (почти) каждый новый проект?
>Explicitly freeing the memory would only waste time managing the heap just before we'd exit anyway.
>What's implied here is that the way the operating system recovers the unfreed memory is more efficient than the program could achieve on its own.
В текущем году (2021) ls, возможно, как-то иначе себя ведет, не смотрел код, но не о нем конкретно речь; такая точка зрения, такая практика все еще имеет право на жизнь. Зачем писать лишние строчки кода, если они абсолютно ничего кроме проеба нескольких секунд твоего времени, увеличения компайлтайма и замедления работы программы не делают? Разве что для того, чтобы усмирить ОКР-ных невротиков-перфекционистов. Но о них пусть санитары заботится, согласись.
>>1954222 ==28743== HEAP SUMMARY: ==28743== in use at exit: 21,781 bytes in 52 blocks ==28743== total heap usage: 243 allocs, 191 frees, 116,307 bytes allocated А, не, все так же работает, как и в 2011. Просто valgrind, походу, за эти годы перестал считать это проблемой, и не записывает в "утечки". cat, du, apt туда же.
>>1954254 Дак здесь нет ни UB, ни даже каких-то мерзких грязных хаков. Получается, можно заявлять, что самые используемые человечеством компьютерные программы ну наверняка же это gnu utils эти практики применяют и всем заебись? Еще можешь gdb и make прочекать, та же картина. Для тебя все это не аргумент?
Конечно, вся эта тема неуместно смотрится в c++ треде, т.к. тут RAII и говно, совсем другие реалии. Но т.к. речь изначально пошла о чебзике, делавшем свою laba1.cpp в исключительно процедурном стиле, то хули нет.
>>1953778 >самый большой проеб это L.erase(L.begin()) Так, а че с этим делать тогда? У меня по алгоритму, допустим, числа 73 25 81 93. Сначала идет сортировка по последней цифре (младший разряд), - 73, 93 отправляются в L3, 25 в L5, 81 в L1. Дальше они собираются обратно в L. Потом цикл повторяется, пока прога не дойдет да самого старшего разряда, тут их 2 (в проге 10). Я это к тому, что в младшем разряде может быть 3 единицы, а в более старшем 1 и если я буду инсертать, то потом при сборке придется обозначить, что у меня 1 логически верное число в массиве а не 3 физических. То есть, без стирания тоже никак не обойтись.
>>1953745 Radix sort это по сути тот же самый counting sort, только для каждого разряда отдельно. Ты перемудрил. Во-первых, тебе не нужны отдельные массивы на каждый разряд. Во-вторых, разряды должны быть в системах счисления с основаниями степеней двойки. Для них достаточны сдвиги и маски, а так у тебя две очень тяжёлые операции: % 10 и степень.
>>1954356 Сейчас ты каждый раз смотришь на первый элемент, а потом его удаляешь. Вместо этого логичнее смотреть на элемент по индексу ii а потом стирать все целиком.
Алсо, я понял, что от тебя хочет Яндекс, и ты занимаешься хернёй. Просто читаешь числа как строки, переворачивает их, сортируешь, переворачиваешь обратно и выводишь. Все функции стандартные.
>>1954368 Если в 10-й не получится, - попробую в 2-й системе считать, хотя разве это значительно увеличит быстродействие? Может спизжу алгоритм counting sort для тела цикла, так и получу лучшее время. >>1954374 1 реализую. По второму скажу, что яндекс - это просто платформа. В задании именно radix sort просят, да и вероятно, задания и тесты писал вузовский препод.
>>1954385 >попробую в 2-й системе считать, хотя разве это значительно увеличит быстродействие? Есди в двоичной, то ты будешь по одному биту сортировать за раз. Да, это долго. Лучше побайтово идти, тогда тебе нужно всего 256 счётчиков. Сначала сортируешь по первому байту числа, потом по второму и тд.
>>1954385 >. В задании именно radix sort просят, Ну так-то при сортировке строк у тебя именно он и работает, только искаропки, но преподу вероятно нужно ваша реализация. А так в мой вариант делается за пару минут.
>>1954443 В любом нормальном code style guide любой нормальной компании запрещено использование "using namespace *;" директивы. С подключением, дебилушка.
Крестаны, как лучше всего обрабатывать ошибки в конструкторах, не используя исключения? Я пишу очень байтоебский проект (кастомный JIT, долгая история) и мне важен максимальный перформанс, но при этом не хочется срать уродливым кодом.
>>1954468 ну вообще то страуструп для того и ввел в язык механизм исключений чтобы обрабатывать ошибки в конструкторах, у него не было другого выбора, это он в "дизайне и эволюции" написал а так если не хочешь использовать исключения, то нужно пользоваться приемом двухэтапного конструирования объекта, делая is_success() и прочее что то получше - использовать один из порождающих паттернов или несколько, по ситуации недостаток первого подхода - очевидное уродство, недостаток второго подхода - необходимось работать через указатель все это в соответствующих книжках было написано четверть века назад
>>1954475 хмм, а если я буду кидать исключения только из конструкторов, а все отсальные методы будут использовать условный std::optional для обработки ошибок, то я не особо сильно обосрусь по перформансу? Такое вообще принято делать или это быдло-кодинг и анти-паттерн?
>>1954483 не знаю, если ты задаешь такие вопросы, то для байтоебского проекта лучше делай в стиле как обрабатывает ошибки хром-браузер, в котором вообще не используют исключений, погугли это будет тебе проще понять и надежней
>>1954259 А потом он запускает свою софтину в ОС, которая не убирает за тобой ресурсы. Ну или, опять же, в деструкторе может быть всё что угодно, шаред-мемори, семафоры в ней же, и т.д., которые освобождены не будут даже в мейнстримном юниксе.
Проверяешь аргументы до вызова конструктора, а new используешь с nothrow.
В принципе, в этих случаях — >>1954492>>1954658 получается то же самое, только логика проверки будет как раз в фабричном методе, так что плодащь размазывания логики уменьшается.
>>1954626 Вот у тебя есть апи, куда входит конструктор и документованные значения параметров. Если кто-то неправильно использует апи, получает в рожу ассерт. Все честно и эффективно.
>>1954698 >>1954700 А что за вакансия? Что-то там в штаты на удаленке за 4к+$? Алсо в данную секунду забираю твой второй вариант, чтобы у тебя геймдев остался.
>>1954374 >Сейчас ты каждый раз смотришь на первый элемент, а потом его удаляешь. Вместо этого логичнее смотреть на элемент по индексу ii а потом стирать все целиком. Реализовал это. Самый жирный тест вместо 1090 мс занял 134 мс, доходил до 2 мб при лимите в 64, но такая проблема и не стояла. Спасибо за помощь тебе и остальным.
>>1954962 %f прочитает 4 байта, а int у тебя может оказаться 2х байтовым. Если варарги расположены в памяти, то ты выйдешь за границы и прочитаешь часть стека. Поэтому кончай с laba1.c и используй fmtlib, тут плюсы всё-таки.
пацаны, вот без хуйни только я работал вашим вот байтоебом (на си и чуть с++) психанул от низкой зп и перешел к другану в питон бэкэнд и вот это все прошло два года и я решил сменить профессию скажите, насколько high performance вообще в россии востребован? А то еще с уника интересуюсь этой историей, но судьба пока не закинула в область Сейчас есть и время и подушка, чтобы нормально вкатиться кресты все это время держал в тонусе - иногда даже контрибьютил во всякое дерьмо короче нужно ли в ДС, что по зп или стоит съебывать в другую страну?
>>1955412 >high performance Всмысле HPC вещи типа MPI? В Нижнем Интел вроде как подобными вещами занимается. А так больше нигде не встречал (хотя я и не искал).
>>1955436 ну из ДС в нижний не очень хочется) у нас, зуб ставлю, н видиа чем-то таким занимается но если это делают только они, то хуево - нахуй надо замыкаться на одном работодателе
>>1955440 >>1955412 Смотря какой HPC. Обычно это связано всегдо со всяким численным моелированием, то есть нужно знать предметную область и вообще иметь академический бэкграунд нормальный. Обычно такими вещами занимаются всякие додики после физфаков, аспирантур и прочего. Просто сферических задач уровня распараллель нам тут хуйню не бывает.
>>1955412 >прошло два года и я решил сменить профессию Расскажи, нахуя? Разве неспеша пердолить Джангу - это не рай на земле? А по поводу C++, за те пару лет, что тебя не было, требования ощутимо выросли. Я вот собеседуюсь сейчас, и охуеваю с того, что спрашивают в банках; а что спрашивают в нвидиа - страшно представить. Если ты до ухода в питон работал с "с++ чуть-чуть", а не дрючил его круглыми сутками, если по плюсам прочел не сильно больше Страуструпа + (всего) Мейерса, то ловить здесь откровенно нечего. Я не наезжаю, я просто предупреждаю, что, возможно, ты переоцениваешь свой былой уровень. Особенно если байтоебом ты работал в НИИ/оборонке. Тогда совершенно точно переоцениваешь, и подумай хорошенько, прежде чем делать резкие движения.
>>1955444 имеешь ввиду, что не вар туда пробиться никак? потому что у меня мага робототехники, а не матешечки
>>1955448 ну рай ней рай - бэкэнд это интересно (и я не на джанго), но без движения нет жизни я поработал уже в двух областях - хочу еще до 30 парочку зацепить а что там такого спрашивают? прям пиздец как жеска?
>>1955452 да и кст за бугром high performance самые высокооплачиваемые прада совершенно не хочется жертвовать личной жизнью ради переката если все прям настолько пиздец как жестко, что ты додик который 17 часов в день красноглазит байты - то в пизду лучше перекачусь в мл но подискутировать на тему попадания в НРС и правда интересно, вообще говоря
>>1955455 >я поработал уже в двух областях - хочу еще до 30 парочку зацепить >да и кст за бугром high performance самые высокооплачиваемые >то в пизду лучше перекачусь в мл Какой-то манямирок пиздец. Конечно же ты не залетишь в любую наукоемкую область, причём довольно конкуретную, после работы говнокодера.
>>1955466 залетишь, не выебывайся в мл вкатываются люди, посмотревшие два курса от стенфорда и имеющие СВОЙ ПЕТ ПРОЕКТ а у меня опыт работы уже 5 лет и мне 26, так что уже на джуна я точно залечу плюс стоит понимать и тему "наукоемкости": мл это по большей части трясуны, наука там только в очень жестких rnd центрах и в phd историях. Туда залетать можно только по фану, тк получают такие люди не сильно больше гребцов а вот НРС уже реально сложно и челенжево, но у меня нет знакомых, чтобы спросить как вообще там все происходит и вот узнаю на любимом дваче) Даже недавно семен из dlcourse написал в ОДС, что перекатился из геймдева а геймдев, я тебе так скажу, даже не сравнится с обычным проганьем - там все про логику, чем про оптимальность и прочее (вот пример недавний с ГТА идет туда же) Так что, пацанчики, не нужно уж совсем усложнять это все Есть прям совсем замкнутые на дико-узких спецах области, но мл точно не такой пример Да и работники дико замкнутых областей также дико замкнуты на эту область, что тоже не очень хорошо (но кому как)
>>1955471 Блять, чел, я не знаю, где ты там работал 5 лет, если у тебя такие представления о вещах. Когда говорят про мл, говорят про технические компании, где программисты сидят с phd почти все. Когда говорят про геймдев, говорят про разработчиков движков, разбирающихся, как в системной программировании, так и в математике, а не про говнокодеров, таскающие прямоугольники в конструкторах. Я не знаю, куда ты там вкатываться собрался с пет проектами и курсерой блять, охуеть вообще.
>>1955476 > Когда говорят про мл, говорят про технические компании, где программисты сидят с phd почти все ага, это у меня манямирок, да? > Когда говорят про геймдев, говорят про разработчиков движков, разбирающихся, как в системной программировании, так и в математике, а не про говнокодеров, таскающие прямоугольники в конструкторах. ну тут ты вообще упоролся конечно. Увы, но нет, говорят именно про говнокодеров люди, занимающиеся разработкой движков - это как раз таки нормальные программисты > Я не знаю, куда ты там вкатываться собрался с пет проектами и курсерой блять, охуеть вообще. я и не собирался, мне хватает моего образования, чтобы понимать что там происходит, а не курсеровских "ну линейная регрессия это как если бы мы провели провели прямую" и прочее объяснение для даунов
>>1955480 Чел, ты меня заебал. Я тебе говорю, что на с++ нету работы без предметной области. Ты должен спрашивать вопросы, уровня как вкатиться в численное моделирование, как вкатиться в эдвэнсед статистику, etc, а не, как вкатиться в плюсы. Потому что на таких позициях плюсы идут просто в довесок, не смотря на то, что уже сами по себе являются довольно большим пластом знаний.
>>1955490 во, супер, спасибо что поправил но я думал что НРС настолько пронизаны математикой, что не нужно отдельно говорить но понял тебя тогда задаю как раз эти вопросы мне типа нужно в phd идти с такими запросами? потому что бэк - это круто, да но с++ + предметная матеша - это прям уровень
>>1955486 Колхозный совет: valgrind'ом чекни. Если в дебажной и релизной сборке отличаются результаты, 92% что ты где-то ты проебался с памятью, и используешь неициниализированную. В дебажных сборках она нулями активнее забивается, а в релизных - хуем по губам. >>1955480 Чел, вот тебе совет, но можешь не слушать. Если тебе ~26 лет, ты за пару лет добился чего-то в питоне (допустим), и сидишь, довольный, ощущая себя дохуя способным познать что угодно, стоит лишь кинуть на это взгляд и иметь хоть какое-то желание, плюс немного времени -- это иллюзия. Если ты чувствуешь, что ты способный парень, и, в принципе, нвидия может и подумала бы, а вот какой-нибудь яндексо-сбер тебя 100% сразу же захочет себе в штат, стоит тебе только открыть рот -- у тебя не иллюзия, у тебя бред. Прежде чем принимать какие-то решения, типа, увольняться и дропать питон, можешь сходить на один собес по плюсам, чтобы реальность больно ударила тебя по ебалу, и ты отправился обратно чиллить на свое теплое местечко. Но можешь не слушать, просто имхо.
>>1955501 чел я совершенно не питаю себя иллюзиями, что меня хотят яндексы сберы и нвидии. Понятное дело, что уровень конкуренции там это пиздец полный. А уж опыт на питоне там явно ничего не дает, может даже и хуже делает, хуй его я тебе говорю: я реально готов ебашить ради вката - вопрос не в этом вопрос вообще стоит ли игра свеч переходить на с++ чтобы пилить легаси - сомнительное удовольсвтие реально меняться и уволиться хочется именно ради чего-то стоящего, пусть даже с падением зп и статуса (мидл -> джун)
народ, я вот не хочу прерывать вашу дискуссию по поводу хайлоад но короче тема такая, я ТОЖЕ поработал байтойбом пару лет в унике на чистом си, потом ушел именно вот этой макакой в геймдев теперь хочу перекатиться в с++ (и кст не пиздите, что у вас зп мелкие, там есть и сопоставимые и выше, чем в вебе и нейронках) но джуновских вакансий вообще (в дс) пиздец мало из 1600 с++ных около 60 (!!!!) джуновских хули делать? где искать работу? я не хочу в веб да, тут много пишут, что кресты это предментая область я понимаю, но в ЛЮБУЮ предметную область надо зайти ты не родишься с 3 годами опыта в численном моделировании помогите плезз
>>1955486 >как отдебажить релизную версию? Т.е. версия одна, просто во время запуска и дебага программы разные результаты, во время запуска не получается то что получается во время дебага.
>>1955486 >>1955538 >>1955541 Никак. Это невозможно. Просто IDE говно, да и язык не очень. Закрываем тред. тебе уже посоветовали лог, чтобы сравнить как должно работать и как работает. вангую неинициализированную переменную и другое ub
>>1955510 Я думаю, если ты реально два года работал на чистом си, то после пары-тройки книг, просмотра cppcon по вечерам и пары проектов для себя сможешь сразу на миддл-левел идти.
>>1955583 ну выше вот ребята чуть ли не попиздились на этот счет мол матеша сила - чистый спп могила и пробиться нереально в целом, учитывая, что спп реально сложный и уже довольно спецефичен, я верю им но буду делать как ты посоветовал, спасибо) а то не хочу в макак веб идти - хочу с мужиками с конской косичкой байти пилить и 300к/сек получать
>>1955510 > и кст не пиздите, что у вас зп мелкие, там есть и сопоставимые и выше, чем в вебе и нейронках + реально пиздят может у джунов и есть какой-никакой разрыв, но по пути к сеньеру это максимум 10ка, что не очень-то и существенно на фоне премий и тд они, видимо, насмотрелись на 400+ к у джунов джавы, но, ребятки, уж лучше получать меньше, но нахуй джаву
>>1955584 Ну, ты наверное не хуи пинал на сях, а делал что-то конкретное. Видео, драйвера, железки, сокеты, параллелизм, может даже численные методы на всяких бласах и лапаках - что угодно. Я исходил из того, что ты реально что-то где-то знаешь и сможешь сам развиться и найти как применение своему экспириенсу в проектах, так и самому язык освоить.
>>1955605 Ну вот. Какой-нибудь условный сименс может взять, например. Или всё, что работает с электроникой. Я пару лет назад в Касперском собеседовался, например, и у них тоже была похожая тематика открыта. Что-то с защитой машин. Я не пошёл, потому что не моя эта тема. Но собес приятный был: лишь пара задачек по языку в начале минут на 10, а потом болтали про опыт и всякое, что на ум приходило (что-то про линковщики, TCP, кеши, философские вещи типа нужны ли исключения и другое).
>>1955632 Но тут другой анон недавно писал, что его собес в касперском не то чтобы хорошее впечатление оставил, так что это похоже сильно от команды зависит.
>>1955647 >собес в касперском не то чтобы хорошее впечатление оставил Да не, все норм, там проблема во мне все-таки была, это я на эмоциях написал.
Вот сегодня был собес в один большой банк, и меня опять чутка триггернуло. 1. ~Два часа дрючили по C++98. И каждый раз когда я говорил что здесь UB (допустим, где-то идет работа с массивом после того как он был удален), до меня докапывались, и спрашивали "не ну а что на практике-то произойдет, как оно выразится?". Ну вот откуда мне знать и какая нахуй разница, а? 2. Или, допустим, код, в котором throw by value + catch by value (в базовый класс, т.е. со слайсингом) + rethrow потом. Я говорю, типа, ловить надо по референсу, чтобы не было лишнего копирования и трабл с полиморфизмом (=слайсинга). Мне говорят, не, так не годится, рассказывай нюансы. Rethrow будет копии или оригинала? М? Я считаю, что программисты для того и учат лучшие практики, чтобы забыть про худшие и чем они чреваты. Тем самым освободив место в бошке под новую информацию. Узнали? Согласны?
>>1955678 Нет, другой. Не скажу. Красный логотип, на "А" начинается. В Сберыч я тоже собеседовался несколько лет назад, и прошел. Я тогда совсем зеленый был, вопросы тоже по C++98, но не совсем плохие - типа, напиши хэштаблицу на коленке, потом трахни пару байт, и еще парочку. Или, вот есть такие-то данные, придумай как их сжать. Но не совсем без кринжа, допустим, 40% собеса дрючили по ромбовидному наследованию зачем-то. Если в Сбер хочешь, то иди в Sberdevices, там начальству ~38-45 лет, а не 45-60, так что все адекватно. Проверял.
>>1955500 >но с++ + предметная матеша - это прям уровень Это не уровень, это сегодняшние реалии к которым с++ прикатился за последние 10 лет. Собес на более-мене приличную должность состоит из 10% вопросов по плюсам и 90% предметная область (часто матан всякий). Вот типа у нас тут хуё-маё и зрение с облаками точек. Как вы их будете классифицировать и трекать. А у нас тут HPC под FEM. Как вы будете дрочить BREP модель из NRBS так, чтобы железо вывозило.
>>1955506 Плюсовый джун это самое дно. Нищий, загнанный и бесправный он вынужден постоянно бороться с полчищами орков, которые плодятся в НИИ по всей стране.
>>1955510 >ты не родишься с 3 годами опыта в численном моделировании Заканчиваешь какой-нибудь универ или МФТИ и спокойно вкатываешься как к себе домой в Интел (Нижний Новгород это пиздец конечно, но стерпится-слюбится).
>>1955708 ну блять не все заканчивают мфти знаешь ли я вот из мгту им дауна и у нас с матешей не так жестко как у них теперь на помойку что ли пиздовать?
>>1955710 я конечно мимо, но не согласен аналогия хуевая не пишут закрыто бывает, что ты стучишься а тебе говорят иди нахуй а бывает, что даже зыкрытые двери открываются и то и то примерно с одной частотой происходит
>>1955707 Ну дак от опыта зависит, ты попробуй, расскажешь нам. >>1955703 Ну вот кстати да, через НИИ можно вкатиться в плюсы, если совсем все плохо. Попинаешь хуи там годик, но, во-первых, скорее всего неплохо проведешь время, почитаешь книги, познакомишься с Qt (НИИ обожают Qt). А там уже и перекатишься. Если после годика в НИИ у тебя все по-прежнему плохо, то перекатишься сперва на галеру. Если на галеру пиздец не хочется, то дрочишь алгоритмы месяцев шесть и из НИИ сразу в Яндекс.
>>1955605 >can, uart, spi Это всё и сейчас на C пишется. Окукливается в отдельный подуль и потом через интерфейсы стыкуется с бэкендом на C++. Ну то есть опыт не совсем релевантный, даже если ты писал в стиле "C с классами".
>>1955716 почему хуйней сразу? я вот пилил у себя в гейдев стартапе обработку облаков точек мне зашло но я писал на питоне тк сроки, а я кресты не знал, увы но область мне зашла, а в ней без крестов - соси бибу теперь хочу переписать проект на кресты, кинуть в гит и хуярить на работу плюс опять же: го, питон, это все очень круто и хорошо но плюсы это вещь, которой через лет 10-15 вообще никто не будет знать из вкатунов - все будут мл ящики трясти и в таком контексте нужны будут норм плюсовики и даже вот сейчас: крупные конторы юзают плюсы - факт. работать в рогах и копытах лично мне остопиздило >>1955719 да знаю вот, поэтому и парюсь так бы с ноги уже двери открывал (потом извинялся бы и аккуратненько прикрывал тк опыта все равно не оч многа)
>>1955717 >Просто не понимаю нахуя так делать Я написал это в таком формате ради шутки. Извини, если для тебя это не оказалось очевидным. Извини, что как-то зацепило твое внимание. У тебя синдром Аспергера, братишка? Поправляйся.
>>1955665 Бест пркактикс это когда новый свежий проэкт. В банках тонны кода десятилетиями пишутся и они вполне адекватные вопросы тебе задавали. Сам имел дело со сберовским проектом. Там кодовая база с начала 2000-х тянулась со всякими delete this в деструкторах.
>>1955721 >но плюсы это вещь, которой через лет 10-15 вообще никто не будет знать из вкатунов - все будут мл ящики трясти и в таком контексте нужны будут норм плюсовики Страус скоро отъедет, потом случится раскол среди последователей и на свет появится новый язык для людей. А то что новое - оно для молодых, их проще и дешевле обучить. Остальных дружно сбросят за борт к акулам. Да-да, тех кто бился как ЛевЪ за 700к в нвидии.
>>1955727 >Бест пркактикс это когда новый свежий проэкт. Ну, не согласен. Практика "ловить эксепшны по референсу" не имеет абсолютно никакого отношения к возрасту кода, это всем известно еще с начала девяностых. И, встретив такую хуйню как ловля по value, абсолютно ничего не стоит это просто исправить. Я пытаюсь представить себе код, который я мог бы поломать такой правкой, и у меня не получается.
Вопрос "что будет при работе с уже удаленным массивом" - тоже адекватный? Как бы ты ответил? Только честно. Спойлер: если ты собирался ответить что-то про возможный сегфолт, падение, то ты ответил неправильно. Лично я считаю, что надо детектить и убирать говно, а не сидеть и разбираться в его сортах.
Если не секрет, чем в Сбере занимался? Эквайринг? Процессинг? Что-то внутреннее?
>>1955743 знаешь, я искренне верю, что выучить язык - это не проблема с крестами все так, потому что он реально очень сложен, на фоне всех го джавы и си шарпа. И то , проблема в том, что он дико старый и нахуеверчено пиздец сколько всего вот пример: я работал на си, относительно долго - два года об ооп вообще только слышал но на си шарп пересел довольно быстро к чему я это? ну случится великий раскол, ну появится новый язык и что? не выучится что ли этот новый язык?
>>1955752 Я не в самом сбере работал. Я аутсорсил их проект (считай легаси копал). У них выросла нагрузка на систему и надо было разгрести говно и понять как повысить поризводительность и функционала туда допихать. Ну а рефакторить код под бест практис это путь в никуда. Для заказчика никакой business value это не несёт, а напрудить туда новых багов легко (тестами не обложено, внятной документации на систему нет).
>>1955752 >Вопрос "что будет при работе с уже удаленным массивом" - тоже адекватный? Как бы ты ответил? Только честно. По сути это обычная порча памяти, когда ты по левому адресу что-то пишешь и читаешь. Exception при этом не возникает. Само удаление вряд ли приведёт к изменению данных, разве что старый указатель после delete будет/может указывать в специальное место (тратить процессорное время на забивание нулями/спец значениями ненужных данных - зачем?). Если далее по тексту никто не выделяет память, то можно смело работать с массивом за вычетом увеличения его размера.
>>1955665 > откуда мне знат То-то и выдно, що ты как попугай затвердил стандарт, а опыта маловато! С неопределенным поведением ты будешь сталкиваться всю свою недолгую и мучительную карьеру (некоторые его используют). Так-то.
>>1955783 > Само удаление вряд ли приведёт к изменению данных Эх, молодежь. > разве что старый указатель после delete будет/может указывать в специальное место Расскажи подробнее, к чему приведет обращение после указывания "в специальное место". > (тратить процессорное время на забивание нулями/спец значениями ненужных данных - зачем?). Free list там пропустят, а ты не балуй!
>>1955786 >некоторые его используют Согласен. Ну я бы не стал писать использовать UB, если бы делал бэкендный банковский софт.
Мой ответ был: -возможное падение, либо гарантированное, если программа собрана с нужными флагами. [хз зачем про флаги высрал, просто вспомнилось санитайз че-то там] -думай еще -а почему это важно знать? -чтобы задетектить проблему, когда увидишь симптомы -дак valgrind'ом можно задетектить -вы вообще работали с valgrind'ом? он очень медленный; наша софтина, наверное, даже не запустится. -[пук] но ведь... [среньк] наверное можно как-то модульно проверить.... [пук] ладно... давайте следующий вопрос...
>>1955501 >а вот какой-нибудь яндексо-сбер тебя 100% сразу же захочет себе в штат, стоит тебе только открыть рот -- у тебя не иллюзия, у тебя бред. Почему тогда я легко устраиваюсь везде
>>1955789 >Free list там пропустят, а ты не балуй! Какой лист, там про массив речь, данные хранятся в памяти последовательно. Дедуль, таблетки прими, да утку опорожни, а то через край сейчас потечёт.
>>1955807 >Почему тогда я легко устраиваюсь везде Ну дак ты просто умный дохуя. Сиди, гордись, наслаждайся собой. Мы вот тоже восхищаемся всем тредом, какой же ты восхитительный. Умничка просто. Расскажи, как ты таким стал? В чем секрет твоего успеха? Без иронии, серьезный вопрос.
>>1955789 >Расскажи подробнее, к чему приведет обращение после указывания "в специальное место".
Это зависит от имплементации аллокатора памяти. У меня есть опыт в эксплуатации уязвимостей кучи ptmalloc3 (дефолтный аллокатор в glibc), поэтому буду говорить за него.
Если аллокация была большой (больше ~130 килобайт чанк), то new за кулисами использует системный вызов mmap для аллокации динамической памяти. После delete данная память анмаппится и дальнейшее обращение к ней повлечёт за собой сегфолт. Если аллокация была маленькой, то за кулисами вызывается системный вызов brk для увеличения дата секции (если включена рандомизация адресного пространства и сам бинарь является позиционно-независимым, то куча отделена от дата секции и увеличивается отдельно от нее в результате данного системного вызова. Если же рандомизация адресного пространства отключена, то куча - это просто продолжение дата секции с правами на запись и чтение). Так вот, если удалить маленькую аллокацию и обратиться по указателю, по которому чанк освободили, то будет обращение в прежний валидный адрес в куче, что является багом под названием Use after free, который эксплуатабелен в большом количестве случаев в крупных и сложных программах (браузеры имеют тонны UAFов и по сей день, например). так как создает эффект overlapping chunk.
А вообще, это не то, что должны спрашивать на собесе на дефолтную цпп-макаку. Бьюсь об заклад, сам интервьюер не до конца понимал то, о чем он спрашивал, так как ответ на этот вопрос ОЧЕНЬ СИЛЬНО зависит от имплементации аллокатора памяти, коих у тебя может быть несколько, даже в пределах одной и той же ОС - например, имплементация аллокатора в glibc (аналог ntdll.dll в шинде) в Линуксе - ptmalloc3. Но браузер мозилла использует jemalloc в качестве аллокатора памяти, где многие вещи работают по-другому. У хрома так вообще есть свой кастомный гугловский аллокатор с блэк джеком и шлюхами.
>>1955822 >читаю на работе и дома круглые сутки А можешь накидать нам какой-то ридлист? Просто то что в шапке - объективно устарело, и, судя по тому что тот чел который его составлял, пропал -- явно нежизнеспособно. Т.к. наверняка он вскрылся, или в тюрьме, или еще чего. Не стоит ему верить, в общем. А вот этот ридлист слишком однобокий: https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list Нету какой-то кругозоритости в этом списке, плюс он сам себя перекрывает.
>>1955831 Ебать ты задрот, чел. Ты просто ебнутый. В хорошем смысле. Кстати, можешь немного раскидать про конторы в РФ, которые безопасностью занимаются? Может, есть какие-то компании, о которых у тебя сложилось стойкое впечатление. В частности интересует Infowatch.
>>1955838 Ну, кстати, я и так знал всё, что он написал, хотя сильно много с аллокаторами я не работал, просто много читал, плюс пару своих интересны костылил.
>>1955831 Вот этот анон рубит. >>1955833 Как будто твои коллеги (авторы либ, ты...) смогут все делать по стандарту. Нет, оно будет падать, эксепшен не вылетит, корка не запишется.
>>1955831 быстрофикс Достаточно, чтобы была включена рандомизация адресного пространства для того, чтобы куча была отделена от дата секции, при этом бинарю необязательно быть позиционно-независимым.
Но так это работает в Линуксе (и скорее всего во всех остальных POSIX-compliant никсах), за винду не скажу, так как не пользуюсь ею и не работают в ней.
Нужно создать тред пул, который будет менеджить несколько тредов. Треды будут просыпаться в нужном количестве, как только появится работа и спать, пока ее нет
Хотелось бы красивое и быстрое решение, раньше я очень любил boost::asio, удобно добавлялись треды, быстро все работало Есть ли сейчас решение лучше? Буст практически не использую, и тянуть его проблематично под винду
Гугл предложил эту статью с корутинами. Я плохо понимаю что это из себя представляет, и как тред пул будет работать эффективнее с ними https://habr.com/ru/post/519464/
Что лучше? Или лучше вообще самопальный сделать с конд_вейтами
>>1955866 да хорош уже парень красава, да но имхо - такие вещи должен знать каждый программист это тоже самое как: "как распознавать на изображении предметы с хуевыми фичами и что такое хуевые фичи" или любой другой вопрос, который должен знать человек с лет 5 опыта
Поясните за виндовый crt Я могу в проект залинковать две либы из vcpkg: hui-lib:x64 и ebalo-fw:x64-static? Я еще когда буст компилил, узнал что на винде, помимо дебаг-релиз, статик-шаред есть еще сингл-мультитред и статик-шард рантайм. Но так и не понял нахуя, а самое главное зачем
На работе переписываю в одно рыло легаси софт десятилетней давности с бейсика на шарп Прихожу домой, ебу байтики на С++ в своем пет проекте и коммичу в гитхабо-опенсурс...
(каждый день занимаюсь коддингом больше 10 часов... Странно что не перегорел, хотя в таком темпе уже больше года, но мне нравится... При этом на фоне включаю лекции по программированию и в свободное время читаю программерские бложики/статейки/книжки)
И....
Нахуй никому не нужен, и выживаю на 600$ в месяц
p.s. был тут разговор про эту тему - что текущая рекрутинговая система программистов, говно полное. Если у тебя не знакомых и ты не альфа чед - то вероятность устроится куда-то кроме галер или госконтор равна шансу заработать миллион в пирамиде.
Потому что эти долбоящеры берут в основном по рекомендациям... Ах да, вспомнил как это красиво они сейчас называют "мы лучше откажемся от профи, чем возьмем неспособного" (и эти же ребятки потом ноют что программистов нет)
То есть весь шанс тут в том, что тебя увидит HR-шлюха, скучающе кликающая вконтактики, что ей будет не похуй на тебя и что она уже не пристроила своих знакомых и друзей этих знакомых.
>>1955924 Я открыл резюме в конце января, к текущему моменту пришло штук 30 писем, по двум из них ответил, пособеседовался и получил два оффера. Остальное проигнорил (нереально на всё успеть, да и многие позиции были скучными, плюс текущая работы отнимала время). И у меня всего три года опыта. Так что не совсем понимаю, в чём твоя проблема. Или ты просто не в мск?
>>1955925 >>1955924 Только за сегодня прищло 12 писем плюс несколько из мск и ещё штук 5 улетело в спам от каких-то подзалупных агентств. Ещё по телефону постоянно доёбывали (думаю вообще его убрать из резюме). Не мск, опыта правда поболе чем 3 годика.
>>1955924 >То есть весь шанс тут в том, что тебя увидит HR-шлюха, скучающе кликающая вконтактики, что ей будет не похуй на тебя и что она уже не пристроила своих знакомых и друзей этих знакомых. А как ей ещё зарабатывать то, если мохнатка быстро в тираж уходит. Хороший HR сначала заводит знакомства с годными спецами, а потом их по кругу продаёт из конторы в контору. Всем заебись от этого (ну кроме тебя).
>>1955931 >Только за сегодня прищло 12 писем Это ничего не значит. Их рассылают ботами. Ты попробуй хоть по одному из них пройти до собеседования с техлидом... Нихуя не выйдет, и дело не в навыках, отфутболят еще на уровне общения с аутсорсной шлюхой hr (там их тоже специально набирают ебанутыми - до сих пор угораю как одна такая расписывала на хабре что она набирает резюме только тех, чьи фотки в фейсбуке ей понравились)
>>1955950 Открываешь лекцию на втором монике, кодишь свои задачи, пока идет лекция. По-началу сложно , потом привыкается. Лекцию слышишь во время пауз (ну там запуски тестов, компиляции, кодомакакинг, рефакторинг - то где мозг не надо напрягать... А когда надо напрягать, ставишь на паузу)
>>1955960 >Походу просто из манямирка Какой же это манямирок, когда зарабатываешь меньше 600$ вот уже какой год?
А вот то что в хорошие компании берут в основном по знакомству - уже давно факт, поищите голосования - больше половины программистов именно так и устраиваются - друг привел. Вторая половина - чеды, которым просто по природе все достается.
То что там вам спамят на почту.. Мне тоже спамят на почту все включая яндекс, только это тупо спам и ничего большего. Даже до собеса не доводится, ибо никому не известный хуй не нужен.
Не, я понимаю если бы говорили "мы вам перезвоним" после собеса, или после тестового задания, или даже после чтения резюме. НЕТ блядь, Мне так говорят еще до всего этого, еще даже не читая мое резюме.
По опыту скажу, что берут джунов часто берут не профильно, а именно С/C++, чтобы в зависимости от проектов их можно было куда нужно слить. Далее, джунов никогда не берут в маленькие компании, где их не смогут вытащить на нужный уровень/перекрывать в случае косяков. Т.е. 50+ человек в компании, ориентированных на C/C++, а такое в мухосранске невозможно организовать. Причем легко найти сотни компаний вебщиков с 20 людьми, которые ищут джунов, просто потому что им так дешевле будет.
Да, такой минус С/C++ галерок, рабоать можно только в крупных городах. Об этом почему-то мало рассказывают с самого начала.
>>1955922 у фаулера "немодный" для сегодняшнего с++ подход - иерархии классов основанные на наследовании, динамический полиморфизм.. а сегодня сообщество с++ развлекается шаблончиками и статическим полиморфизмом..
>>1955911 >залинковать две либы из vcpkg: hui-lib:x64 и ebalo-fw:x64-static? в большом копро проэкте скорей всего так и будет но, конечно, это оче нежелательно когда еще работал на работе, на сопровождении, то часть трудноуловимых ошибок была как раз связана с тем что библиотеки в составе приложения линковали разные версии либ и всякое такое, а переделать это уже было нельзя
>>1955887 >"как распознавать на изображении предметы с хуевыми фичами и что такое хуевые фичи" или любой другой вопрос, который должен знать человек с лет 5 опыта знакомые чилики, работающие в говношарашке, делающие потобные задачи, просто использовали opencv, кек считались экспертами че было в потрохах opencv считали магией написанной более высокоразвитыми существами,
>>1956270 имхо, так у всех не в дс я смотрел у себя в городе - там пиздец лучшее, что я смог найти - это си шарп 90к с++ нет и в помине все пхп и с# максимальную вилку указал сейчас мб что и изменилось, но хз
Сап программаторы. Есть вопрос. Существует родительский класс заклинаний (Первый пик), дочерний класс(Второй пик). Необходимо заобкастить, допустим, заклинание Fireball, желательно не создавая новых объектов, т.e. преобразовать тот же объект класса. Но если так нельзя, я не обижусь. Расскажите пожалуйста нубасу, как делать.
>>1956389 могу одну продсказку дать - хранить общие параметры для фаербола в каждом инстансе - плохая идея, flyweight паттерн попробуй
не понимаю, зачем тебе наследоваться, когда новый класс ничего нового не предполагает
блядь
stih -> element arrow - это блядь стрела в луке, из говна и палок, когда стихия - это называется bolt wEAkness остальное я скину на оригинальность, может ты делаешь средневековый постал
>>1956453 Да какую литературу, людям которые игры пишут нет времени книги читать. Например, в майнкрафте, ты думаешь, каждый блок в игре хранит внутри себя свою текстуру, эффект замеделения, свечение, время добычи, тип устойчивости итп? Нет, он просто хранит указатель на общий тип такого блока, в котором указаны эти параметры.
пацаны, а у меня вот ноль часов опыта в плюсах и 3 года опыта в си мне через два месяца (желательно) нужно залететь на работу, очень хочу плюсы вопроса два: 1) Я недавно делал MVP для одной компашки по облакам точек (кстати поразительно как часто я вижу их упоминание, думал это специфичная тема) на питухоне. Когда допилил, то резко узнал, что проект не одобрили тк чувакам резко стало похуй на это вот зрение, но исходники остались. Я собираюсь переписать эту хуйню на кресты и выложить на гит, раз уж всем так похуй. Это будет норм плюсик или тут каждый первый вкатун в кресты сидит с пиздатым пет проектом на гите? 2) Кресты я помню чуть по унику + недавно прошел довольно клевые (на мой взгляд) курсы на степике. Но вот то, что вы обсуждаете тут я прям вообще не слышал ни разу. Конечно знание си помогает, когда речь идет о работе с памятью и тд, однако часто хуй пойми о чем речь в треде. Понятно, что многое из того, что я видел (А ля эта хуйня, что CFTшник затирал) набито шишками и хорошим таким опытом. Но все же вопрос задам: что вообще из таких специфичных плюсовых вещей должен знать джун? а мидл? про сеньера лучше нахуй промолчу тк еще лет 5 на него работать 3) Реально ли джуном залететь на зп 100к? Сейчас это моя зпха и терять в ней я не хочу, тк ДС итак довольно дорогой. Вот вроде и все, скажу всем спасибо, если поможете. Пока есть силы и время (уник ток этим летом закончил), хочу влелеть в плюсы, тк нравится и интереснее чем веб и тот же мл. Образование норм, по крайней мере свой вуз частенько вижу вакансиях "приемущество отдаем пидорасам отсюда-то" я распизделся да, сорян, просто время смены работы довольно нервное - не от хорошей жизни из конторы своей бегу)
>>1956404 >arrow - это блядь стрела в луке, из говна и палок, когда стихия - это называется bolt Кастанул на тебя Melf acid arrow, добил болтом из арбалета.
>>1956482 1. Норм плюсик. Даже если в гит никто не посмотрит — тебе просто будет что дополнительно рассказать на собесе. 2. Проедься по A Tour of C++ и Effective Modern C++ , можно по диагонали. В принципе можно проехаться за неделю по основным концептам. 3. Да, реально.
>>1956490 блин, даже не ожидал, что мне ответят спасибо больше) а третий пукнт это "да, реально, но ты охуеешь от поиска" или "да, реально, в целом в дс такие зп"?
>>1956499 Как повезет В принципе не думаю, что охуеешь
Зависит уже от тебя. Например, если алгоритмы знаешь и дерево обойдешь, то можешь и в яндекс легко залететь хотя бы на сотку, даже без знаний языка Если нет, то в любое другое место поменьше.
>>1956499 >>1956482 Я не знаю, что тебе там пишет какой-то хер, но лично я, пишуший на плюсах давно и работая пару лет парттайм, обсирался на собесах люто по цпп и стлу. Даже протиав всяких майерсов и прочих.
>>1956515 Вот этот дело говорит. Если именно прям по языку собесят, а не по алгоритмам и смекалке, то подливятся практически все. Причём обсираются собеседник и собеседующий по очереди.
>>1956482 Когда у тебя ничего нет на гите, по другому на тебя смотрят, мол еще хуй знает что ты можешь выдать и как сильно насрать в коде По поводу залететь - нахуя тебе залетать джуном при трех годах коммерческого опыта на си, хрюшам вообще похер си там, или сиплюсплюс или си шарп, а зп они тебе назначают По поводу того, что знать нужно - это че в голову бахнет лиду, то и будут спрашивать. Огромное количество вопросов вообще не имеет никакого смысла, могут быть дебильные вопросы, могут быть сложные, просто находи ответы там, где проебался и иди дальше собесайся.
Помню, меня спрашивали как можно отпустить владение поинтера от shared/unique. Я блядь представить себе не могу, насколько костыльным может быть код, чтобы там такую хуйню пришлось делать. А ребятки типо шарящие, как на говно смотрят.
>>1956534 > Помню, меня спрашивали как можно отпустить владение поинтера от shared/unique. кек > По поводу залететь - нахуя тебе залетать джуном при трех годах коммерческого опыта на си, хрюшам вообще похер си там, или сиплюсплюс или си шарп, а зп они тебе назначают да у меня то и на шарпах есть полтора года (бля в шарпах очень крутой ооп, в си++ мне не так зашел конечно), просто не хочется прийти и типа такой "ой я бля мидл сейчас вас всех научу как нахой надо", по крайней мере за 2 месяца таким точно не станешь а ждуном есть вар, думаю
>>1956543 ну в целом, я с тобой согласен вообще я думаю, что твоей команде и тех спецам похуй, сколько тебе платят (в пределах разумного) для адекватной компании 90 - 100 - 120 это довольно небольшая разница, так что если будут жопится (это я тебе >>1956541), уж лучше не иметь с ними дел, это, возможно, только начало маразма. В дс много неплохих контор, с хорошими процессами, наличием менторсва, которым важен сотрудник. Там и зп адекватные (часто вижу, что некотроые джуны в ДС на зп 120 сидят и ок, а чего такого?). Алсо: я работал у ребят, которые спросили "какая вам зп норм?" Я сказал 40, тк был студентом и таких денег в жизни не видел, так еще и на стажера шел. Ударили по рукам, а в итоге в договоре было прописано 70, лол. Это не янедекс и не сбер, не ИБМ. У чуваков штат 100 человек - но отношение к сотрудникам нормальное. После них лично я для себя и сделал выводы: если компашка норм - зп не жопят, если не норм, то зажопивание зп - только начало - лучше валить
>>1956520 Я скажу тебе честно, если бы я работал уже на питоне и нормально получал, я бы не полез в цпп. Можешь точно так же залететь в наукоемкое что-нибудь. Ну ты сходи на собес и охуей кароче. Если бы у меня был выбор и я уже не заинвестил многеи годы - не стал бы точно.
>>1956556 бля я только более менее определился не идти в питон, братан) имхо цпп дает больше возможностей 1) легче перескочить в другие языки, если надо. По крайней мере мне даже цпп уника хватило, чтобы врубиться в основы си шарп 2) больше возможносей: тут тебе и cv и hpc и хайлоад и числодробилки и железо. А питон что? Веб да мл (и то в мл нужно прям математиком быть, прям ебать, еще теперь на каждой второй вакансии ШАД требуют, мне 24, нахуй мне еще 2 года на шад тратить?)
>>1956554 А у меня вот было в резюме 230, так на 230 оффер и сделали, хотя у самих в объявлении вилка до 270 на эту позицию. И я постеснялся торговаться. А теперь у всех моих коллег зп выше, а я не знаю, что делать, котовиться через полгода что-нить другое искать, или всё же как-то попросить о повышении...
>>1956565 Чел, ты какую-то хуиту несешь. В какие языки перескочить блять. Ты перескочить можешь хеллоу ворлды писать. А что-то серьезное точно так же нужно годами дрочить. >больше возможносей: тут тебе и cv и hpc и хайлоад и числодробилки и железо. Так тут точно так же нужно образование и шад. Что ты собрался в hpc или cv делать? Только ко всему этому еще плюсы дрочить. Ты похоже вообще не представляешь, что там сейчас происходит со стандартами, стлом и всем остальным.
Это всё разговоры какие-то школьные блять: РЯЯ ЖЕЛЕЗО ТРУ ПРАГРАМИРАВНИЕ ВЕШАЛКА ИЗ ВИТОЙ ПАРЫ РЯЯЯ Это только в твоих фантазиях ты такой охуенный интеллектуал занимаешься там чем-то охуенным, а на деле твои hpc и числодробилки - это распильная хуита с мамкиными учеными, пишущие какой-то говнокод, железо - это какое-нибудь отечественное говно за зп вдвое меньше рынка, а на любой хорошей позиции в хорошей компании сидят жесткие задроты-инженеры с phd, которые посылают тебя сходу нахуй и никаких вкатышей не берут тем-более. Конкуренция охуевшая и залетают практически в любую область люди с сразу с универа.
>>1956623 Блять, да проскакивают, только это ситуации уровня >топ технологическая компания хантит топового чела с публикациями на топовых конфах на 2x прайс сеньера Я подозреваю, что в любой другой области с такими же усилиями любой чел будет каким-нибудь CTO и получать не меньше.
>>1956565 >>1956649 >>1956652 пацаны, вы бы лучше шли ебашить если вам понадобиться, вы не только питон выучите, есть еще много адской хуйни которая может понадобиться для большего рейта, питон - самое безобидное
>>1956649 у вас блять биполярка у всех какая-то, ей богу блять одни говорят что все ок другие ноют блять реально идите нахуй уже я конечно мимо, но я тоже считаю что перескочить в другой язык - много не надо времени и да, чтобы нормальные вещи писать тоже вы вообще так сильно к языку привязываетесь - просто пиздец ясен хуй хуй нет ни одного языка безпредметной области бэк, вэб - тебе важнее знать как бдшчки работают или http, а не как работает zip в питоне или ГоРуТиНы в го. Выучить последнее - много не надо мл - тебе похуй на каком языке писать свои модели графика, числодробилки - матан матан матан и знать как работает железо. По поводу стандартов крестов - бля ну я думаю, что проект пишется на одном. И если вы хуярите на ++17, то нахуя разбираться в 11? но это просто коммент язык - инструмент с++ - кривой и сложный, но тоже "инструмент" не надо вот так себя вести, как будто вы бедные - несчастные убили лучшие годы чтобы изучить с++ и подцепили проклятие "ничегонимагувыучить". Раз не перекатываетесь - значит не хотите А теперь к дрочке на шад. Это обычный, хороший вуз. Я бы к себе на работу брал бы не шадовца, а человека с опытом вообще, когда у тебя 3+ лет опыта, то какая нахуй разница что ты там заканчивал с таким же успехом можно говорить "не ну НРС только для выпускников 17 лицея" я знаю очень умных ребят из МАИ, у них нет пхд, но они шарят, да. И работают в мэйлах и яндексах а знаю тупых мфтишников - и они сидят в лабах хуйней страдают хватит уже ярлыки вешать, уважайте себя, а то после таких все прогеров маньками считают А еще и искренне не понимаю, что вы так к пхд прицепились. Пхд - это способность 4года разбиратья в узкой проблеме - не более того чаще всего ты делаешь исследование твоего научрука, а не свое
>>1956678 >маньки перекатываются из говнокодинга в цпп >спрашивают, чё там как в цпп >говоришь, что сложно и хуево >РЯЯЯЯ А ВОТ Я ТАК НЕ ДУМАЮ Я ВОТ ПИСАЛ НА ПИТОНЕ И Я ЭКСПЕРТ ВО ВСЁМ ВРЯД ЛИ ЦПП СЛОЖНЕЕ НАУКА-ХУЮКА Я ТУТ СОРТИРОВКУ НАПИСАЛ НЕДАВНО УМНЕЕ ЛЮБОГО УЧЕНОГО Блять, ну идите нахуй тогда отсюда, что сказать еще.
>>1956683 я бы не стал бомбиться, если бы вы просто говорили, что "чел это сложно" но вы прям прибедняетесь пиздец и пхдшники на вас ссут, и синтаксис языка каждые 5 секунд меняется, и занимаетесь вы вообще только легаси к тому же еще и у сеньеров зп в 15к рублей до вычета налогов (а у плюсовиков налоги 60 процентов) как бы камон, понятно, что тяжело. А где легко? думаешь в джаве просто? у тебя там другой тип проблем, то то и всего
>>1956692 >А где легко? думаешь в джаве просто? у тебя там другой тип проблем, то то и всего Да, не думаю, а знаю. Почему ты считаешь, что кто-то прибедняется? Посмотри просто по линкедину чуваков из нормальных технологических компаний и прикинь что как.
>>1956678 А почему все так любят забывать, что qt-форсошлепы тоже сиипипшники? Наверное потому, что кутешники зарабатывают и им некогда сидеть на дваче.
>>1956695 я в свое время работал в геймдеве на юнити причем макакой, как вы их называете так вот у нас там порой такая дичь была, что просто хуеешь то кватернионы тебе gimble lock дают, то какое-нибудь ебанутое ограничение платформы, то нормали переворачиваются не так, где надо. С ui так порой вообще пиздец и хотя мы ряяяяя макаки сидим клацаем по клавишам - проблемы тоже есть так что везде сложно
>>1956696 > Думаешь везде просто? > Да, не думаю, а знаю. > Посмотри чуваков из тех компаний ну блять, во первых я не ебу как вообще это связано во вторых покажи там, на кого мне посмотреть бля
>>1956702 Я тебе к тому, что если ты посмотришь на любых сеньйров-помидоров из всяких самсунгов, хуавеев, нвидий, интелов, там будут максимально жесткие чуваки с топовым образованием, пхд, статьями и огромным опытом, и это с учетом того, что раньше порог вхождения был ниже и область знаний меньше.
>>1956704 посмортел у яндекса обычные ребята причем много из моего вуза - бауманки те, кто совсем крутые, у тех лет 15 опыта (не только из мгту) причем не все начинали в яндексе сейчас еще самсунг знаю но если учесть, что у меня туда знакомого из МИЭТ взяли - думаю примерно такая-же ситуация Upd: не нажал enter и успел глянуть их expert software заканчивал Международный Университет Природы, Общества и Человека «Дубна» про публикации стоит говорить что-нибудь?
>>1956704 короче ладно, я устал что-то доказывать если тебе ок жить в мире а ля "ну если не поступил в мфти или мгу, то нечего и соваться" или "ну если не взять и не получить пхд, то нечего и думать даже", то ок, твое право мне больше нравится жить с мыслью, что некоторые вещи можно затащить, если иметь желание чем хуже бэкграунд, тем сложнее, да, но упорство необходимо (хотя человек из университета природы меня прям вдохновил, может и с бомонкой можно куда-нибдуь норм пройти) кстати можно вспомнить, что Витек Рогуленко из МГИМО в шад поступил так что я заебался двачевское нытье слушать уже всем добра и успехов
>>1956704 Смешно. Топовые чуваки давно не в этой стране, и давно со своим успешным стартапом. Если кто-то кажется по резюме топовым, но всё еще здесь и наёмник -- ты имеешь дело с фэйкером. И это все понимют, кроме тебя.
P.S. Знакомый техлид в хуавей.раша вообще без вышки.
>>1956749 я с уважением отношусь к ребятам из физтеха очень сильная школа математики - базару ноль но я ни за что не поверю, что есть хотя бы один выпуск, где нет хотя бы одного дауна
>>1956753 Это не ирония, это больше константация факта. Раньше не знаю как, а вот сейчас довольно много даунов, для которых учёба = всё скатать и всё спихнуть, выбить оценку повыше в основном, конечно же, женщины. Если физтехи что-то до сих пор и могут, то это ботать за ночь кванты.
>>1956759 еще, опять же при всем уважении к физтеху, у меня не очень мэтчится этот вот великий дроч на МФТИ (он бомбанул вместе с бомбежкой мл, как я понимаю), но вместе с тем не такое уже и большое кол-во достижений в области ИИ в россии либо я чего-то не понимаю
>>1956546 добавь в threadpool::init дефолтное значение параметра 0 чтоб удобнее вызывать, тем более дальше логику менять не придется
Зачем здесь rvalue? void add_job(std::function<void()>&& call); ... pool.add_job(foo); Типо из-за упаковки foo во временный std::function? А что, если RVO произойдет?
Почему тут так хейтят геймдев и его ответвления? Я ещё зелёный, но хочу попробовать вкатиться в своём городе на вакансию UE4, там студия игори портирует всякие, ещё и требования считай нулевые в плане движка (пишут всему научат, всё покажут, а я для первой своей работы только за).
>>1956546 По диагонали прочитал, и увидел изменение переменной кондвара _m_idle_counter без мьютекса. Смотри, почему так нельзя: >Т1, строка 179: захватили мьютекс >Т1, строка 180: проверили условие - ложно, тут ВНЕЗАПНО тред прерывается >Т2, строки 161-162: делаем _m_idle_counter++ и notify_one(). Тред засыпает обратно >Т1, строка 180: так мы уже проверили, что условие ложно, то засыпаем обратно (уже навсегда) Lost wakeup в самом чистом виде. Поэтому переменную, на которую завязан кондвар, нужно всегда изменять только под мьютексом этого кондвара.
>>1956940 Многие не знают до сих пор. Два года назад мне приходилось 40-летнему синьору объяснять, зачем я переменную кондвара изменяю под мьютексом ("просто сделай её атомарной", лол).
Какую коллекцию лучше использовать из стандартных или сторонних легковесных?
Есть некоторого рода сущности с двумя идентификаторами: главным и побочным (обычные int'ы). Нужно по идентификаторам возвращать объект-описание, содержащий определенную информацию.
Проблема в том, что идентификаторов пара. Для различения большинства сущностей достаточно главного, при этом у этих сущностей побочный идентификатор не влияет на то, какую информацию нужно отдавать, но есть сущности с одинаковыми главными идентификаторами, у которых побочный идентификатор имеет значение.
Бонусом хотелось бы, чтобы для всех неизвестных значений побочного идентификатора отдавалось некоторое значение по умолчанию.
Иллюстративный пример:
1,1 - А 1,2 - А 1,3 - А 1, - А
3,1 - Б 3,2 - Б 3, - Х
4,1 - С 4,2 - Д 4,* - Е
Естественно, на этапе компиляции ничего не известно, все подгружается при работе программы из файлов данных.
Ничего адекватнее map'a из map'ов, при этом вложенные будут иметь значения по умолчанию, пока не придумал. Может, есть что-то более удачное (map с ключом в виде пары? Но как искать?)
>>1956778 > threadpool::init дефолтное значение параметра 0 Дык есть же ж > Типо из-за упаковки foo во временный std::function? А что, если RVO произойдет? Разве не надежнее просто rvalue поставить, зафорсить оптимизацию? Это же не гарантируется стандартом, это по желанию самого компилера, может, захочет, а может - нет. Особенно когда имеешь дело с msvc стараюсь форсировать такие вещи. Переубедите меня.
>>1957058 Я видел префикс _ для приватрых переменных. Я видел префикс m_. Но зачем _m_? Да ещё с венгерской нотацией только для флагов. Алсо, в C++11 можно две закрывающих '>' подряд ставить в шаблонах, без пробела. И я бы объединил get и worker_wait - блокировал бы сразу, пока не придёт задача или сигнал, что пора заканчивать. Иногда полезно их разделять, но не в этом случае. И два мьютекса и два кондвара тут не нужны, здесь это только чревато: в одном случае _m_cv делает нотифай под одним мьютексом (строка 146), а потом ждёт под другим (строка 165). Гонки и/или дедлоки очень вероятны.
Почитай C++ Concurrency in action, там есть примеры потокобезопасных очередей и тред пулов.
>>1957107 1) _m_ Выделяется лучше, m позволяет легче отличать функции от переменных, функции через _M_, например. Не очень красиво, но мне удобно не прыгая двадцать раз по коду понять что написано 2) три символа, ибо у меня IDE вызывает тулхелп после 3го символа
Анон, подскажи как в сетевой кодинг вкатиться. Какая-то литература, статьи, а то я кроме как "как написать сервер за 10 минут" нихуя найти не могу толком, где бы все вещи объясняли по пунктам и клали в рот. Или может вообще проще сразу boost asio сидеть дрочить?
>>1957174 Та же хуйня с sid::unordered_map, которую за каким-то хуем назвали так вместо std::hash_map, якобы чтобы не конфликтовала с другими реализациями с hash_map в названии.
Но у кьюта нет адекватного http + намного тяжелее буста, норм пацаны сетку либо на бусте либо на нативе делают https://habr.com/ru/post/192284/ типо того boost::beast мощный имхо, хотя может тут смогут его грамотно обосрать
сетка - это просто файл в который ты пишешь, ничего больше
>>1957171 только поаккуратнее с 'сетевым кодингом', в компаниях это немного другое, будешь совсем не клиент-серверами заниматься
>>1957218 а) не работает б) даже если бы работал - это все равно неудобно ц) я долгое время юзал m_, но очень сливается с глобальными и статическими, особенно, когда есть статические приватные и неприватные. Если ты не пишешь проект на 20к строчек тебе на такие вещи будет глубоко похуй. К слову в тредпуле я далеко не все свои предпочтения выразил, просто тогда бы его анон отказался читать бы. Серьезно, если у тебя сегфолт, на колстеке 20 функций, которые ты писал год назад и в душе не ебешь что там происходит.. 'наводить мышкой', 'контрол клик' - от таких вещей пропадает желания вообще что-то делать
Помню мне еще за пробелы в скобках предьявляли любители нечитаемых условий типо (((a+b)-((MAX(a(b-a))>b))),b)a)))) ) )) )
Страуструпа от корки до корки стоит читать? Он пишет о каких-то особенностях, триках, подводных камнях или только документацию пересказывает? Я выкидыш из learncpp.com и думаю, идти Страуструпа навернуть или просто Мейерсом продолжить, пописать ещё что-то.
>>1957680 >надо уметь Пора бы уже понять, в it все работают выше пределов своей компетенции. Если кто-то чем-то пользуется, 95% что он не умеет этим пользоваться.
Анонасы, как реализовать в приложении на opengl консоль, как в играх, как в q3, например? Меня интересует: 1) Часть с мультитредингом. Как синхронизировать данные, чтобы что-то там менялось между drawcall'ами? 2) Писать в переменные можно как-то более эффективно, чем просто лапшой уровня if(string=="var_name") var_name = value? Ведь там может быть параметров очень очень много.
>>1957990 >1) Часть с мультитредингом. Как синхронизировать данные, чтобы что-то там менялось между drawcall'ами? Хотя, сейчас я думаю, что там никакой мультитрединг вообще не нужен, наверное и можно просто в колбеке клавиатуры конкетенировать строку и смотреть чё там.
>>1957990 в графику никогда не лез, но вроде это такой же квадратик, просто нужно затемнить всю 3д графику и нарисовать окошко если не ошибаюсь графика делается в одном треде (могу ошибаться) все остальные заняты прочим процессингом
а if string == "set" это уже не туда точно. тебе нужны дескрипторы к каждой команде, и все это завернуто в хеш мап, чтобы все в итоге выражалось в что-то вроде console_process(const cmd_descriptor & descriptor, std::vector<std::string> params) { }
и она по дефолту использует глобальный дескриптор с самыми верхними командами, потом раскрывается и рекурсивно распаршивает столько поддиректив сколько нужно, пока не доберется до нужного колбека, и дернет его с оставшимися параметрами, типо
set network_buffer const 1024
сет идет в глобальном дескрипторе хеш-мапы, потом в дескрипторе хеш-мапы берется buffer, в буффере уже колбек, в который запихиваешь два оставшихся параметра
>>1957990 Рисуешь 3д, потом рисуешь задник, потом текст из массива строк. События от клавиатуры обрабатываешь между рисованием, они меняют твой массив строк (эмулируешь терминал). Смотри в исходниках q1.
>>1957680 >>1957748 >>1957758 >Эксепшены надо уметь готовить Ну вот поясните, умельцы. Что значит "эксепшны надо уметь готовить"? В чем заключается ваше секретное умение? 1) Конструктор пытался, но не смог? Пусть кинет эксепшн. 2) Функция должна была выполнить какую-то работу, а не смогла из-за невалидного инпута/неподходящего состояния нужных объектов? Кинь эксепшн 3) Планируешь вернуть из функции кинуть return code сложнее чем bool - подумой, будет ли кто-то его анализировать в месте вызова? Если никому это нахуй не надо, либо ничего не даст -- то просто кинь эксепшн. 4) ????????? всё
>>1958016 >>1958005 Не, как рендерить-то понятно. >тебе нужны дескрипторы к каждой команде Что ты имеешь ввиду, расскажи плиз? Я прост вообще никогда со стрингами всякими дел особо не имел. У меня команды будут вида "переменная знак значение", уровня var = value или var += value. Значения могут быть float, int или vec3f условно. Мне прям какие-то вложенные штуки не нужны, наверное.
>>1958030 Переменные свои регистрируй ты, тогда будет некая база данных и в ней один алгоритм вида нашёл - поменял: addvar("foo", &global_foo, VarInteger); Там же будет сохранение /восстановление. Ну или классы сделай, если хочешь поебаться.
>>1958030 в этом то и фишка дескрипторов - в гибкости, создавать можно на основе темплейтов, если позволяют знания тут долго обьяснять, если серьезного ничего не нужно - зачем себе жизнь усложнять, сделай ифкейсами, KIS если прям по красоте хочешь - думаю, начни с класса дескриптора команды, завернутой в глобальный хешмап, типо, хешмапа типо std::unordered_map<std::string, cmd_descriptor>, там инстансы: .emplace( "set", set_cmd_descriptor ) .emplace( "restart", restart_cmd_descriptor ) .emplace( "connect", connect_cmd_descriptor )
ну а в самом дескрипторе коллбек std::function<void(const std::vector<std::string>&> и типо ты дергаешь что нужно global_descriptorp[user_cmd].call(params) одним вызовом
Если без сложностей, проделай сначала такое, потом опыта наберешься - сам поймешь как лучше
>>1957440 имхо, я у страуструпа советую читать 2 книжки - "дизайн и эволюцию" и "4е специальное издание", все остальные книжки у него неудачные даже к 4му специальному изданию есть претензии а именно пара глав по проектированию где много воды мимо безработный челик любящий читать для развлечения
Здарова Сачачь. Есть такая проблема но хер с ним. Вроде учу язык,скоро выучу основы,но не могу понять как писать блядский код. Смотрю ебучих блогеров и думаю как?