>>1888665 Тупая картинка. То, что на современных плюсах делается в одну строку, на С надо пилить на 20 строк. Да даже плевать на плюхи из коробки. Автоматический вызов деструктора - это уже величайшее изобретение человечества, из которого вытекли смарт поинтеры, локеры мьютексов и другое авто управление ресурсом.
На днях начал пытаться в программирование и С++ в частности с прицелом на Unreal Engine (уже своровал нужные курсы с Udemy), но немного свернул с нацеленного пути и решил написать себе программу-секундомер своей мечты под Виндовс 10, которая могла бы: - иметь кнопки с настройками и циферки секундомера как два разных окна - держать окно с циферками поверх всех окон, в то время как окно с настройками было бы НЕ поверх всех окон или могло бы сворачиваться в трей отдельно от окна с циферками - реагировать на комбинации нажатых клавиш даже если окно секундомера не активно Ну пока наверное всё. Пока асилил логические/циклические конструкции, вот это всё, ООП прям на четверть шишечки (вроде всё понел, но хуй знает как пойдет). Скачал Qt для своей цели, планирую посмотреть на Ютубе какой-нибудь плейлист по обучению Qt и пытаться что-то зделоть параллельно гугля код Qt приложений и секундомеров в целом. Насколько сильные по шкале от 1 до 10 меня ждут обосрамсы и превозмогания?
>Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам.
У меня типичная ситуация: я в 2014 еще будучи школяром выбрал ПЛЮСЫ как язык для вката (до этого знал qbasic и Pascal, но эту хуйню даже в расчет не беру, поэтому будут плюсы первыми), прочитал книгу "С++ для чайников", дошел до указателей, охуел, закрыл книгу. Вернулся через два года, прочитав параллельно Таненбаума про архитектуру ПК. Дочитал ту книгу "для чайников" полностью, но особо не въехал, при попытке самостоятельного кодирования не мог ничего сложнее чем калькулятор сделать. Еще через два года поступил на ИБ, там был сем где мы кодили на плюсах, плюс я параллельно прочитал Лафоре про плюсы и сделал все задания. Но при попытке самостоятельного кодинга ситуация почти полностью повторилась. Сейчас решил заново изучить плюсы, чтобы работать с Unreal Engine, но решил сделать это более цивильно, чтоли.
Собсна у меня вопрос по строчке, приведенной выше гринтекстом: я могу уже приступать к изучению плюсов, или мне надо изучить еще какой литературы про устройство пеки/ос/железа/памяти/ассемблера нахуй/неба/аллаха?
Огромная просьба не крыть меня хуями, и не орать о том, что такому дауну как я даже пытаться нихуя не надо, а сразу идти в макдональдс. Спасибо заранее
Как подготовиться к собесу? Опыт работы есть, но со временем что-то из головы улетучивается, а что-то просто со временем и стандартами меняется, вроде этого https://pastebin.com/raw/HBAv7Knj в 17 стандарте собирается, а в 20 нет
>>1889623 Так если на вектор переделывать, нужно дрочиться будет с копированием элементов и как в си с памятью работать. Про шаблоны я даже не понял о чем ты, если честно.
>>1889640 > Так если на вектор переделывать, нужно дрочиться будет с копированием элементов и как в си с памятью работать. Про шаблоны я даже не понял о чем ты, если честно. https://wandbox.org/permlink/exdgSm1CtJUsK4a1
>>1889659 Переживаешь за тех, кто не сможет сюда перекатиться? А ведь они так и будут сидеть в прошлом треде, пока он не уйдёт в архив, и тогда им придётся уйти из C++.
Анансы, подскажите, где можно найти курсы\туториалы\книги по изучению плюсов согласно современным стандартам? В идеале сразув 20, но хотя бы 17. А то везде говно мамонта, тот же труп страуса 4 издания 13 года. А стандарт там еще более дрвений.
>>1889712 Помогите советом пожалуйста. Я хочу вращать плоскую фигуру в 3 осях, и отображать получившуюся проекцию на плоскость картинки. В документации Qt нашел подходящий метод rotate, но почему то он вращает фигуру неправильно, смещает и искажает ее. Как сделать правильно? Может есть другие методы? transform.rotate(60.0, Qt::YAxis); poli->setTransform(transform); На второй картинке результат.
>>1889739 Представляю, это может быть правильно, только если ось Z направлена ко мне под каким то углом, а не точно перпендикулярно монитору. А она направлена перпендикулярно монитору.
>>1889741 Кажется, твой QTransform делает тебе перспективу, откуда такой и эффект. QTransform differs from QMatrix in that it is a true 3x3 matrix, allowing perspective transformations. QTransform's toAffine() method allows casting QTransform to QMatrix.
>>1889745 Чел... А еще у меня угол поворота с каждым разом становится все меньше и меньше, хотя я ожидаю, что он всегда будет на 60 градусов поворачивать. А еще когда он все таки поворачивается на 90 градусов, он дальше не поворачивается, хотя по идее должен крутиться и дальше, в том числе и в отрицательном направлении. Только мне бы сначала разобраться, почему при повороте происходит искажение.
>>1889748 Сработало, анончик! Сделал poli->setTransform(QTransform(transform.toAffine())); теперь перспектива исчезла. Теперь бы разобраться с еще двумя проблемами >>1889750
>>1889750 > А еще у меня угол поворота с каждым разом становится все меньше и меньше, хотя я ожидаю, что он всегда будет на 60 градусов поворачивать. Функция принимает угол в радианах или градусах? Угол там суммируется при повороте или просто присваивается новое значение?
>>1889770 Градусы. Скорее всего он просто каждый раз умножает на cosa текущую длину по оси Х. А для того, что мне нужно, он должен умножать на cosa изначальную длину фигуры по оси Х. Хз, как это контрить, видимо я должен сам ручками скейлить фигуру после поворота, видимо так и задумано. Плюс еще надо каждый раз ручками сдвигать фигуру подальше от оси Y, иначе она к ней постоянно стремится.
Sup, потсоны! Спешите обоссать видеть, великовозрастной питонщик пытается освоить плюсы за 21 день карантина, пока все идет гладко как ментовская дубинка в сухую сраку и вот сразу трабл, не могу понять сути const / extern, точнее этот конкретный случай: - главный app.cpp, дополнительный alpha.cpp - alpha.h инклюд в оба, но ввиду указания ифндеф в какой-то один, какой? - если в app заинклюд а в alpha.cpp нет - тогда откуда pts знает о SOME, ведь она const а значит static и должна быть видна только в alpha.h & app.cpp -если в alpha заинклюд а в app.cpp нет - откуда в мейн знает о pts?
>>1890060 подозреваю конечно что это тупой вопрос, наверное в app инклюдит сначала а pts просто начинает искать SOME в области видимости app.cpp ну короче можете начинать обсирать
>>1890060 Тут прикол в том что дефайн объявляется не глобально на весь проект. А только конкретно внутри каждого cpp.
Поэтому на самом деле и app.cpp и alpha.cpp инклюдят все содержимое из alpha.h...
Вот так: - app.cpp инклюдит alpha.h и объявляет дефайн из ифндефа. - alpha.cpp инклюдит все содержимое из alpha.h, потому что оно не знает ничего про app.cpp и то что там был дефайн
Вся суть что в с++ единица трансляции (тобишь файл cpp) не имеет никаких связей с другими единицами - она не знает ни о каких переменных /дефайнах/функциях из других единиц.
Поэтому, какие бы дефайны не были объявлены в app.cpp, но в alpha.cpp их нет. Тяжелое наследие древних времен, когда код писали в одном-двух файлах.
Так для чего нужен этот ифндефайн? А для того, что у тебя может быть длинная цепочка инклюдов, и чтобы внутри например app.cpp этот alpha.h не вставлялся стопятсот раз.
Короче, смотри как - каждый cpp файл независим и ничего не знает о содержимом других cpp файлов - исключение, если cpp файл видит что-то типа extern, тогда он знает что эта переменная/функция описана где-то в другом месте и это будет разруливать уже линковщик, а не компилятор. - команда include - это не какой-то там подключение чего либо, как в других языках. Это команда "взять содержимое из файла, и вставить его в место этой команды". Вставлять можно что угодно - например строки текста в стринг
Поэтому если еще не понял, просто скопируй все содержимое из файла alpha.h, и вставь в оба файла app.cpp и alpha.cpp это содержимое вместо инклюда. Тогда по компилятору поймешь как работают дефайны
p.s. сейчас лучше использовать "#pragma once" вместо ифндефайна - быстрее будет компилироваться и не придется придумывать ебанутые названия дефайнов.
>>1890618 Согласно стандарту, это имплементейшн-дефайнд™. Ну а вообще всё хранится в виртуальной таблице, так что да - один указатель. Можешь сдлеать sizeof на различные классы и посмотреть, когда он появляется.
>>1890727 QT - это QuickTime, такая эппловская штуковина для слушания музычки.
А Qt - это фреймворк, в первую очередь для создания десктопных приложений с окошками, но в нём есть ещё всякое, в частности, работа с сетью и БД. Также есть Qt Creator -это уже IDE с поддержкой Qt.
>>1890744 > WinAPI А ещё LinAPI, MacAPI, AndroidAPI ... > неосиляторов Осиляторы, наверное, вместо одной строчки на Qt каждый раз пишут пикрил, где в каждом блоке кода по 100 строчек заполнения структур, выделения памяти, дескрипторов, ресурсов, вызовов процедур, проверок, обработок ошибок.
>>1890897 Сишка должна быть простой насколько возможно, чтобы было легко написать компилятор даже для самых экзотических платформ и мочь портировать на эти платформы существующий код. Можно было бы улучшить сишку до уровня крестов и юзать на таких платформах подмножество, но это подмножество было бы везде разное, и вместо универсальной сишки получилось бы дохуя диалектов.
В сишку можно было бы завезти нормальные макросы и потом превращать сишку во что хочешь, добавляя при помощи макросов новые конструкции языка. Почему так не сделали, а если сделали, то почему такое не прижилось? Я нашёл ролик любительский проект, интересно мнение других. https://github.com/eudoxia0/cmacro На голой сишке приходится очень много однотипного кода писать, и при этом в некоторых местах требуют именно сишку из-за её простоты.
>>1891424 Представляешь, как поверх таких макросов появится овердохуяллион кривых языков без документации? Читая исходники проектов на сишке, будешь каждый раз учить кучу языков? > cmacro M4 давно придумали.
У меня есть структура состоящая из трех полей. Одно поле это значение, а другие просто какие то свойства (число от 1 до n). Допустим я отсортировал кучу таких объектов (n^n) по возрастанию значения. Теперь мне нужно сделать так: перебираю каждый объект и мне нужно посчитать сколько элементов, которые по значению меньше чем текущий объект и при этом у них ни одно из оставшихся двух полей не совпадает. Есть ли в плюсах или вообще в программировании для этого какая нибудь структура данных для быстрого подсчета таких объектов?
>>1890908 >и мочь портировать на эти платформы существующий код Пишешь int на десктопе: 32 бита, всё работает. Пишешь int на ардуину: программа багает по непонятной причине, у тебя нет COM-порта, чтобы отладить, бежишь покупать новый программатор, он не работает, для него нужны проприетарные драйвера, закачиваешь проприетарные драйвера и прошиваешь прогамматор, программатор видит, что ты работает не с винды и говорит строгое "нет", бежишь за новым программатором, бежишь за новым ПК с ком-портом, принтфишь ошибки в UART, спустя час узнаёшь, что здесь sizeof(int) равен двум байтам.
Крестаны, если у меня в хедер файле есть класс всего лишь с одним методом (допустим, это класс, наследующий от std::exception, который оверрайдит метод what для кастомного исключения), нужно ли все равно разделять объявление и определение между .hpp и .cpp файлами? Я знаю, что можно и так, и так, но что там по конвенциям по этому поводу?
Бля, аноны, как же очко болит. Кресты слишком нудные и перегруженные, но от любых других ЯП жопа сгорает из-за ущербности и ограниченности. Пилят же всякие обётки над сишкой с сахаром, так почему нет обёрток над крестами? Чтоб ценой производительности я получил чуть меньше ебли. Согласен даже на производительность уровня гоферов, главное чтоб совместимость с крестами была. Недавно хотел на WinRT покодить на чём угодно кроме крестов, но все биндинги от самих майков работают максимально через сраку. Нахуй так жить?
>>1891670 Вот в каком месте они перегружены? Может если ты пытаешься выучить плюсы со всеми их нюансами за неделю, то да, так может показаться. А иначе нет. Никто же не заставляет тебя в каждой твоей laba1.cpp использовать как можно больше нюансов
>>1891691 Стой. Ты винапи используешь что ли? Там да. Хуйня бывает не удобная, но потом втягиваешься. А так есть всякие штуки из std для упрощения жизни. Можно почти как на питоне писать
>>1888626 (OP) >Код на C++, как правило, медленнее аналогичного кода на C приблизительно на 0-20% а в ряде случаев C++ оказывается даже быстрее И в каких интересно случаях кресты быстрее Си??
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; записи должны быть упорядочены по времени отправления поезда; вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры;если таких поездов нет, выдать на дисплей соответствующее сообщение.
>>1888763 При эксепшене где? Если в конструкторе соответствующего класса, то нет, вызовутся только деструкторы объектов-членов, которые успели сконструироваться. И тем не менее, ничто не мешает отловить исключение в конструкторе и зачистить ресурсы хотя за такое и положено пиздить.
>>1892311 Никак, вектор векторов - это не двумерный массив интов, а одномерный массив указателей на самостоятельные одномерные массивы интов. Через tmp.data() можно получить указатель на "внешний" массив.
>>1892366 Хочу, чтобы единственную нормальную ide вижуалку портировали на линукс, но там в легаси-исходниках всё настолько плохо, что даже на x64 не могут портировать, что там лялех.
ПОСОНЫ. Установил vcpkg. Пытаюсь через него подтянуть sfml. Ошибка линковщика 2019: Error LNK2019 unresolved external symbol _WinMain@16 referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) . Пробывал абсолютно все, что только можно. Вскод вроде как саму либу видит, синтаксис подсвечивает, но все равно почему-то выдает ошибку. Что за хуйня? Гугол не помогает.
>>1892203 пчел, как ты используешь свой обоссаный optional, если у тебя в конструкторе происходит неведомая хуйня, требующая обработки? Вставишь булевый флаг валидного состояния объекта в качестве костыля? Камон...
>>1892664 Только писать на чистом си - анальный ад. Правильные проекты смотрят, где реально перф проседает, и то переписывают на чистый си, который идеально юзает кэш ЦПУ, а все остальное, за пределами hot-loop'ов можно хоть на джаваскрипте писать.
Имхо, есть смысл переписать немного устаревший FAQ. Как бы, основу оставлю, но хочу добавить туда как минимум "как учить правильно", "знания на джуна" и примерных работодателей.
Стасян, есть возрастающия последовательность чисел, которые надо где-то схоронить. нужно две вещи:
1) итератор по контейнеру всегда будет проходить в том же порядке, как числа были добавлены или, в моём случае это всё равно, что пройтись по сортированному списку на возрастание.
2) в идеале, константная проверка на есть ли число в контейнере или нет. ну можно, конечно, и log_n
>>1892962 Запили на обычном set, потом проверь, удовлетворяет ли тебя производительность. Если в результате профилирования оказалось, что виноват set, то только тогда можешь начинать думать в сторону танцев вектора и lower_bound
>>1892790 Настраивать её по-моему какая-то пытка, цветовую схему просто так не поменяешь, ЕМНИП. Да и за лицензию надо платить, Community по-моему в коммерческих целях использовать нельзя.
>>1893379 Майки же не просто так выпустили vscode. Это как переход с COM на .Net. Деды продолжают копротивляться, а прогрессивная часть комьюнити уже вовсю перекатывается.
>>1893397 VS Code - это же просто текстовый редактор типа Vim/Atom/Notepad++/Emacs/Sublime, где часть функционала необходимо прикручивать сторонними программами, где даже настройки необходимо выполнять через конфигурационные файлы. Или я отстал от жизни?
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; записи должны быть упорядочены по времени отправления поезда; вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры; если таких поездов нет, выдать на дисплей соответствующее сообщение.
Написал программу,которая переставляет столбцы в соответствии с ростом характеристик,но почему-то неправильно считается сумма элементов столбца,в котором есть хоть один отрицательный элемент.В чем может быть проблема?
нубовопрос, есть ли в std функция позволяющая верно с заданным допуском определить: (0.3 == (0.1 + 0.2)) или все пишут велосипеды по алгоритмам умных дядек?
>>1893740 Где точно не обоссут за бициклы - так это в крестах, в которых на любой вопрос "подскажите либу, чтобы X" отвечают "напиши сам, чо как не мужик".
Что значит первая колока процентов? И как понять что это за функция в топе? Это я часто память выделяю или через size и [] часто к элементам обращаюсь?
Составить описание класса для определения одномерных массивов целых чисел(векторов). Предусмотреть возможность обращенияк отдельному элементу массива с контролем выхода за пределы массива, возможность задания произвольныхграниц индексов при создании объекта и выполнения операций поэлементногосложения и вычитания массивов с одинаковыми границами индексов, умноженияи деления всех элементов массива на скаляр, вывода на экран элемента массива позаданному индексу и всего массива.Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса
>>1894030 ну принудительное добавление break после каждого case и проваливание выполнения до конца всех case это точно уебанство, я думал намного лучше будет, сколько раз программировал,
Пользователи Visual Studio Code здеся? Помогите разобраться. Вот есть tasks.json. Там задаются параметры сборки: путь к компилятору, с какими аргументами запускается, etc. Запускается по Ctrl+Shift+B. Есть launch.json. Там описан запуск экзешника, дебаг. F5, Ctrl+F5. А есть ещё c_cpp_properties.json. Он нахуй нужен?
>>1893956 >>1893964 Потому что enum в теории - это enum MyEnum {FOO, BAR}; MyEnum myEnum; myEnum = MyEnum::FOO; // ок myEnum = BAR; // пошёл на хуй, не знаю что за BAR. И во всех нормальных языках оно сделано так. Но в крестах то ли ради совместимости с сишкой, то ли ещё за каким-то хуем имеем то, что имеем.
Пришлось переставить винду и не могу найти в VS Community 2019 расширение чтобы цветом выделялись скобки { } Bracket Pair Colorizer 2. Начал искать и понял что оно под VS Code который у меня вроде тоже был установлен, хотя работало расширение у меня не в VS Code.
Что за хуйня на пике???? За каким мужским половым хуем код лезет на диск D? И что ещё более странно что всё это работает/компилируется на другом ПК где подобной папки вообще нет. Где вообще этот путь прописан в проекте???
>>1894380 Тебе же блядь на человеческом языке прямо в ассерте написали, что нужно читать документацию по ассертам. в коде есть assert, который разворачивается во что-то, где есть __FILE__ и __LINE__, которые подставляются на этапе компиляции
>>1894402 Ты чё, тупой блядь? Есть макрос __FILE__, который при сбороке нетвоей говнолибы раскрылся в то, что ты видишь. Найти него можешь в скомпилированной dll
>>1893452 Это по сути конструктор IDE. У тебя есть проект, ты решаешь какими инструментами его лучше делать (языки, версионка, тулчейн, devops) и потом всё что тебе нужно накатываешь плагинами (и чутка донастраиваешь json конфигами). Всё что нужно под рукой, в едином UI и под любую ось.
>>1893552 >Описать структуру с именем TRAIN Гуглишь структуры с++. Читаешь, создаёшь её с необходимыми полями: >содержащую следующие поля: название пункта назначения; номер поезда; время отправления. >ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; Гуглишь чтение с клавиатуры с++, массивы с, циклы с++ >записи должны быть упорядочены по времени отправления поезда; Гуглишь сортировка массивов пузырьком/перестановкой >вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры; Гугли вывод в консоль с++
>>1894562 >Я хочу делать то, что до меня никто не делал Лмао. "То, что до тебя никто не делал" ты будешь делать, только работая в R&D какой-нибудь топовой в своей области компании. Всё остальное, что бы ты ни придумал, было уже сделано 10 раз
>>1894562 Возьми сколь угодно маленький, но полноценный, практически полезный, проект и охуей от того, сколько там существует собственных решений - от самого приложения до функционала которое оно реализует. На выходе всегда получается нитакоекаквсе решение.
пчелы, решил реализовать бинарное дерево, такой думаю - "ну щас по изи пойдёт, чё там делать?". А вот нихуя!!! У меня почему то в зависимости от порядка объявления указателей меняется поведение, и из-за того указателя, который объявлен последним по порядку приложуха падает, что делать, кто то сталкивался?
>>1894592 Код не запускал, но возможно, что дело в неинициализированных указателях. Если ты явно им не присвоишь nullptr (например, в конструкторе или прямо в объявлении полей), то там может лежать случайный мусор. Более того, некоторые компиляторы в дебаг режиме специально инициализируют указатели в невалидные значения, чтобы потом можно было легче ловить баги. Можешь пройтись дебаггером и посмотреть, чему равны твои right и left.
Боже, какая же хуйня ваш питон, хуже крестов. 4 часа ставил torch+cuda через pip, в итоге залупа на воротник. Подбери нужную версию питона, подбери руками зависимости, прочитай пол гитхаба чтоб найти issue с ошибкой, прочитай как обойти баги питона - прям в ошибке интерпретатора дают ссылку на костыль, блять. В итоге нихуя не работает. Установка по инструкции в документации не работает. Куча открытых issue с 15 решениями и ни одно не работает. Другие либы конфликтуют между собой, pip ставит пакеты через раз. Ну и пиздец. Сейчас полез на ютуб за инструкцией для дайнов и сразу нашел двухчасовой видос по установке tensorflow, где чел больше часа не мог сделать pip install tensoflow.
>>1894592 Как минимум, в методе m_add при добавлении нового узла хоть под него выделяется память, но указатель на нее в this->right или в this->left предыдущего узла не записывается
>>1894598 Так я о чём. Потушил пердак. Теперь вопрос. Как мне ML пердолить на крестах без питона? Cuda слишком сложно, уже пробовал, на уровне написания игрового движка. А есть ли более высокоуровневые фреймворки? Чтоб хуяк-хуяк слоёв, трэйндату на них и в продакшен. Или только в D или джулию вкатываться с такими запросами?
>>1894792 Крестики просто работают. Они делают что я хочу. А питон живёт своей жизнью в аквариуме. Даже у красноглазых пердолей нет такого, у них хоть man есть. А в мире животных питона даже кодеры фреймворков не знают что делать с багами и как фиксить.
>>1894888 Так под CPU он одной командой ставится, да. А вот как с CUDA завести не понятно, гуглится тысяча проблем и миллион нерабочих костылей. Всё сводится к откату на прошлогодние версии или использование старой Винды.
>>1894609 Сформулирую свою мысль иначе. Что писать идеи есть. Вопрос, где можно посмотреть на структуры программ. При этом не уровня hello world но и не архи сложные проекты. Дабы не набивать набитые другими шишки.
>>1894991 Самое лучшее ПОЗНАНИЕ - это набивать шишки самому. Только так понимаешь, те или иные бест практисы. Или наоборот, понимаешь, что они хуйня (такое тож есть, например все многоуровневое ООП с паттернами от банды 4х)
>>1894764 Сама по себе куда очень простая и учится за один-два вечера. Только вот для того, чтобы писать на ней нейронки, нужно абсолютное понимание как они работают. С простыми архитектурами ты справишься, но писать с нуля state-of-the-art - заебешься. Вдобавок, большая доля машоба - это обработка данных и анализ результатов. Для этого всего тоже необходим питон.
>>1895057 Спалю мини инсайдик. В Озоне идет серьезный разговор о переписывании самых нагруженных микросервисов с го на С++, т.к. го просто не вывозит. Такие делы.
>>1895085 При чем тут поиск? Да и я не понмаю зачем ты срач хочешь начать, гошка никогда не позиционировалась как более быстрый язык, чем плюсы, суть в более простой и быстрой разработке. Да и вообще это тред плюсов
Анон, чтобы не насиловать контейнер объектов, я использую vector<reference_wrapper<const Foo>>, и сортирую, ищу и храню индексы уже этого контейнера ссылок. Это нормальный подход? Тем самым я отвязываюсь от основного контейнера Foo (который у меня umap), и при обработке не насилую данные лишним копированием. Альтернатива, как я понимаю, контейнер указателей, но ебана, в 2к21 сырые указатели использовать это пиздос. А умные, на мой взгляд, здесь избыточны.
>>1895038 bitset::count? Смотри исходники библиотеки. Недолгое гугление показало, что MSVC через цикл считает (https://news.ycombinator.com/item?id=20915547). Если хочешь гарантированной скорости, то используй напрямую интринсики __builtin_popcount / __popcnt, правда тебе на всякий случай предстоит сношаться с CPUID, если хочешь полной переносимости.
>>1895088 Я кстати недавно делал ачивку на кодингейме, где надо решить 15 задач на каждом языке. Так вот среди всех поддерживаемых языков, включая баш, пхп, паскаль, перл, бейсик и хаскелль, самым хуёвым и дегенеративным я считаю именно ГО. Тому есть несколько причин. Во-первых, довольно мудацкий кодстайл, закреплённый СИНТАКСИЧЕСКИ. Пиздец даже в питухоне такого нет, поставил скобочку на следующей строке - всё критикал еррор нахуй, переписывай. Во-вторых, отсутствие дженериков не обоссал только ленивый. Гофобляди очень долгое время сопротивлялись что НИНУЖНА, пока даже их необучаемый фюрер (выступающий, кстати, еще и против подсветки синтаксиса) не осознал, что копипаста и ?interface в 2020 это нихуя не хорошая идея. Тогда они, конечно, мгновенно переобулись. Ну и наконец множество просто откровенно ебанутых решений в дизайне, наподобие оператора := , имени типа справа, НЕИСПОЛЬЗУЕМЫЕ ПЕРЕМЕННЫЕ как критические ошибки. В целом, ГО считает тебя за дебила, и похоже только они, не замечая подвоха, языком и пользуются.
>>1895492 Ты прикалываешься? У меня даже в c++ настроено чтобы неиспользуемая переменная давала ворнинг, а все ворнинги ошибки. Потому что в реальном применении (а не хеллоуворлдах на кодегольфах) это 99% опечатка где то и ошибка в логике или вообще дыра в безопасности
>>1895068 я не путаю: сначала "старые пердуны" написали инфраструктуру озона на си-шарпике и все более-менее работало, потом пришли эффективные менеджеры или старым манагерам моча в голову ударила, они разогнали старую команду, выкупили новую команду хипсторов, которые начали пилить им микросервисы на говне, и тут, внезапно, инфраструктура перестала держать нагрузку? лол
>>1895749 А какие именно типы складываешь? предположу что-то в духе int и long int Как я понимаю она тебя тупо предупреждает о том, что в начале нужно привести всё к 8 байтовому типу а потом уже складывать.
>>1895648 >>1895782 Да нет, на всех толках говорят, что сначала эксперементировали с гошкой и плюсами, перевели на них пару сервисов и решили писать на гошке, т.к. на плюсах слишком запарно
>>1895783 Нет, ну в каком-то смысле ты прав. Язык все-таки имеет право на существование. Гоферы они как дети же. А спички, как известно, детям не игрушка. Дай типичной гомакаке кресты, так он и сам покалечится, и хату спалит такого в проект накоммитит, что откатывать замучаешься. Без ГО некоторым категориям людей программирование было бы недоступно. А так они могут работать в тех областях, где не важна производительность, читаемость и здравый смысл.
>>1895850 Фига маняпроекции, то-то же требования для джу на на гошке - знать как работает память и шелдуеры горутин с шелдуером процессора, элкэшей и поднаготной ос, а для синьора с++ достаточно в штаны не срать
>>1896320 Приключения крестобляди или как сложить int a + b
Как все уже поняли, недостаточно просто написать
sum = a + b;
Ведь при переполнении это UB. Понятно, но наверное можно же проверить?
sum = a + b; if(a + b > INT_MAX) error();
Стоп. Так же условие никогда не выполнится из-за переполнения. Да и это уже целых 2 UB
sum = a + b; if(sum < a) error();
Ну не, так не выйдет, ведь UB уже произошло, компилятор имеет право выкинуть всю проверку. Ладно, шутки в сторону, давайте проверим заранее. Так, а что писать? (a + b < INT_MAX) мы уже пробовали. (Ахаха, подловил. Надо писать не меньше, а меньше или равно) А, точно.
if(a <= INT_MAX - b) sum = a + b; else error();
Так, пагадите! Что-то тут не так. Допустим у нас a < 0 и b = 0 И мы только что (наберите воздуха в грудь), во время сравнения Вычли с underflow. Минус сколько-то минус макс_инт меньше чем влезает в инт. Переполнение в другую сторону, тоже UB Переписываем нахуй
if((b > 0 && a <= INT_MAX - b) || (b < 0 && a >= INT_MAX - b)) sum = a + b; else error();
Скобочки посчитали? && и || не перепутали? Вот теперь заебись! И это крестоблядь должна писать вместо каждого сложения в программе. Ассемблерный выхлоп показывать не буду. Чтобы ночных кошмаров не было.
>>1896339 уточнил, потому что у нас в гейвропе на руки столько не платят, хоть ты супер мега Себястьян Лёб 15 чемпионатов мира по погроммированию подряд выиграл
вот пример, гугол в Австрии предлагает аж целых 43 тыщи евро год конечно брутто - Васян конечно съёбывает со мкада в Австрию, получает первую зарплату жалкие 2 тыщи на руки азаза и охуевает, половину надо за жильё отдать
>>1896351 о том и речь... вот приведи пример реальной задачи, где надо инта сложить, чтобы оверфлоо не запорол нам допустим привёл пример, тогда как два лонг лонга сложить? на что ты оветишь - а нахуй оно? логично, что если пиздец как приспичило факториалы комбинаторики высчитывать - то ты воспользуешься длинной арифметикой, а в 99.999992% случаев складывая 2 инта проверку на оверфлоо ты только за бонус к зарплате сделаешь
>>1896394 тогда у конпелятора должен бить интринс на проверку этого бита, не?
или как идиот писать ассемблерный кусок и фраппер на него? хотяяя для дядиного кода почему бы и нет... и заодно добавить пятистрочник со скобочками и битовыми операциями и ведь хуй кто настучит - формально и практически код правильный и надёжный, дядя не потеряет клиентов и бабки изза оферфлоо
Аноны, привет. Не бейте плиз палками за вопрос не по языку В общем мне 24, есть опыт работы во встраиваемых системах - 2 года, и в разработке высокого уровня (пилим один научный софт на Юнити-с# + задачи по комп зрению на питоне) - тоже два года. Присутствует профильная вышка Сейчас контора, а точнее стартап, в котором я работал - распался и ищу новую работу. вопрос следующий: стоит ли вкатываться в с++ разработку, имея следующие факты 1. С++ знаю на уровне курсов, поделок и пр, то есть НЕ промышленная разработка 2. Не хочу терять в зп (на прошлом месте было 80) 3. Запас денег на два месяца - ровно столько могу зарыться и ботать И вообще в целом стоит ли вкатываться в с++? Что на нем сейчас разрабатывают? Что именно Вы делаете на своей работе? Вообще я сильно в недоумении что делать: легче всего свалить также в Юнити или питон, но душа лежит в нормальное программирование, на нормальном языкеочень прошу не кекать с меня и палками не пиздить) буду очень рад адекватным анонам)
>>1896472 оставайся на решётке и питончике. более злачного места чем зрение сейчас трудно найти. пройдись по конторам, которые автоматы приёма стеклотары и прочей встраиваемой хуйни производят.
>>1896472 Ну только если вкатываться в комп. зрения на крестах... Если есть такие вакансии - то можно, иначе - нахуй не надо. Помни, что предметная область важнее языка.
>>1896472 Тебе верно советуют - смотри на содержание/предметную область. Сам копаюсь со зрением в эмбед. И у нас всё что ты перечислил плюс вёб. Вкатываться можно через любое место.
>>1896566 так а я кому-нибудь нужен без опыта на крестах? у меня зрение на питончике было, а вакансии питон + cv это, как правило, пилить сеточки. Хз насколько это интресно, но звучит не очень. А что касается крестов, так куда ни гляну, там кресты сбердевайс, беспилотник, яндекс беспилотник - сполшные кресты эшелон ниже - тоже сплошные кресты, так что черт его знает кому я там всрался со своей решеткой да питоном
>>1896681 Ты не догадываешься, почему тебе никто не отвечает? Что значит "наладить взаимодействие"? Ты хочешь встроить в свою программу браузер, или что? Если да, копай в сторону веб-движков, в том же Qt есть WebEngine. Или тебе нужно просто отправлять HTTP-запросы? Тогда бери любой HTTP-клиент и копай в сторону API (например, https://2ch.hk/api/index.html ), только с двачем тебе всё равно придётся юзать webEngine, чтобы показывать капчу.
>>1896650 Не, ну а каких задач ты ожидаешь например от беспилотников? Сбор данных с навигационного оборудования (радары, лидары, камеры) - системы реального времени и низкоуровневые пердоли с железом. Обработка данных - овердохуя матана. Лидары - дифгем. Трекинг объектов - теорвер. Камеры и радары - функциональный анализ. Конечный автопилот для коптера - теория управления (самое сложное). По всем сценариям на голом с++ не вывезещь и будешь обоссан.
>>1896351 Дебич, ты когда последний раз работал с числами больше 262? Что ты собираешься делать во время выполнения, если overflow всё-таки произойдёт?
>>1896746 > Дебич, ты когда последний раз работал с числами больше 262? Толсто. > Что ты собираешься делать во время выполнения, если overflow всё-таки произойдёт? В приведенном коде не произойдет.
>>1896987 Наоборот, фубар самый удобный, в отличие от неюзабельного говна выебывающегося внешним видом. Но я фубар всё равно дропнул, но из за звука. У фубара плохой звук, так что удобство уже перестало иметь значение.
>>1895749 Я решил просто нахуй отключить варнинги и все. Как вообще можно их использовать если при подключении ЛЮБОЙ библиотеки там какая-нибудь хуйня да будет. Вот банальный пример, библиотека которая уже почти часть стандарта все равно срет варнингами. В итоге оно все перемешивается и хуй поймешь где твой варнинг, а где либовский.
>>1896351 К слову, понимаю что кормлю толстого, однако в стандарте есть описание NaN (Not a Number) Как итог переполнение можно определить через сравнение самого с собой.
Может кто-нибудь порекоммендовать библиотеки для шифрования? Особенно интересует шифрование AES. Нашёл пока Crypto++. Но может есть ещё годные варианты?
Доброго времени суток. В общем у меня ситуация такая: закончил универ на погромиста, нашел вродебы нормальную работу на C#, но за время обучения в универе больше всего нравился С++, и я вроде бы и не против поучить его в свободное время по гайдам/книгам, но до сих пор не уверен нахуй он мне нужен будет? Учить язык ради того, чтобы просто его знать - затея явно не для меня. Тут и вопрос к вам: нахуй нужен С++? Мне известно, что на нем делаются вставки кода во всяких узких местах приложения (но я же не могу быть программистом узких мест, который приезжает как слесарь на проект?). Наверняка пишется физика/графений для игр, но я не знаю линал/геометрию/физику/матан. Какие основные направления использования С++ и что еще там нужно знать?
>>1897875 Компаний с нагрузкой уровня озона на карантине - не так много. И учитывая, что бэкенды тех, о ком я знаю - на С++ (Амазон\Гугл\етц), то вероятно по-этому у других компаний затыков и нету. Ну и там люди еще работают сильно квалифицированнее и опытнее, чем микрочелики из озона.
>>1897877 Не очень понятно, у Озона по идее тоже не очень большие нагрузки должны быть.
Сколько у них заказов в день? Ну миллион, допустим. В пике может быть до 100 заказов в секунду.
Это чудовищные объёмы для именно торговой инфраструктуры, вот упаковывать и перевозить такой объём заказов, но не для бекенда, если он нормально спроектирован.
Естественно, количество просмотров будет больше, то это более простые операции.
По-моему это и на питоне можно сделать.
Мне кажется, что в таких случаях сам бекенд спроектирован неудачно, база товаров и магазинов и работа с ней.
>>1897888 Ну никогда не поверю что для такого не хватило go, ну и думаю что там куча микросервисов и на передачу данных тратится гораздо больше времени чем на вычисления.
>>1897888 мне кажется они так решили сэкономить, потому что типа считается что держать инфрастуктуру на технологиях майкрософт выходит дороже, чем на каком-нибудь опен-сорс стеке ну это первый слой понимания ну а второй слой понимания, что когда решают перейти с одного технологического стека на другой, это просто топ-менеждеры наебывают реальных собственников компании, это идеальный способ выдоить с фирмы как можно больше бабла как правило, после такого переписывания компания начинает загибаться очевидно что в россии озон сегодня давит вайлдберрис, да даже ламода, лол, также его дават небольшие специализированные интернет-магазины те не смотря на то что объемы озона растут, они растут не так хорошо как должны были а сейчас кризис будет долгий, снижение потребления, не вариант вообще что озон не загнеться
Пишу либу динамической бинарной инструментации на плюсах. Есть немало классов, методы которых я не хочу вынимать наружу в API, при этом мне известно, что злоупотребление вложенными классами - это не есть good practice. Что посоветуете сделать?
>>1898115 олсо, dyninst - оверкилл для меня. Вся моя инструментация по большому счету заключается в инжекте бряка в адрес каждого базового блока в заданном диапазоне адресов, потом процесс трейсера ловит сигтрапы и снимает соответствующие бряки.
Нужно было бы мне инжектить трамплины - заюзал бы dyninst или в крайнем случае фриду.
>>1898162 Это в упомянутых дби влёт делается без надобности городить всякие трейсеры. Берешь фриду, пишешь пару строк на JS которые выполнятся в контексте нужного процесса, получаешь трассу
Единственная с натягом причина писать что-то новое - минимальный функционал для каких-нгибудь обрезанных систем. Но даже в этом случае выдрать из той же фриды кусок и подпилить - более быстрое решение (если ты не шиз офк)
решил тут вспомнить как обучался по самоучителю, нашёл свои стары файлы. Поясните почему элемент массива n1array[1] равен нулю если он инициализирован с const int https://ideone.com/zweIS9 n1array[1]=0 второй элемент не был инициализирован явно
Позже заметил...Ой, нихуя себе, с++14 с идеона даёт другой ответ...
>>1898240 В n1array, про который ты спрашиваешь, везде 0. В других массивах ты не юзал {}, вот он и не инициализировал их чем попало. > int n1array[n1] {1}; > int n2array[n2]; > int n3array[2];
>>1898264 Что за момент? Если тебя удивляет, что в неинициализированных то нули то нет, считай, что это просто совпадение. При обращении к неинициализированным переменным в программе начинается undefined behavior, это значит, что дальнейшее поведение программы не определено стандартом, то есть вести себя она может как угодно. Поэтому нельзя вообще допускать подобных ситуаций.
Сап двач. Пишу код, в котором ассемблерную вставку вставляю в PE файл. На моменте, где надо скопировать эту самую вставку и изменить пару адресов начинается ебала)) Пытаюсь скопировать один участок памяти в другой участок памяти, но вместо ассемблерной вставки копируется какая-то хуйня(вместо 60 e8 ... копируется e9 ca). Подскажите плз где я объебался и как это пофиксить(я думаю что с указателями, но не понимаю как). На первом пике то что нужно копировать, на втором то что копируется.
>>1898558 Т.е. у меня сейчас переписывается не функция, на которую указывает указатель, а сам указатель? Мне надо содержимое функции shellcode переписать.
>>1898590 Обязательно через delete, это динамчески выделенная память в куче, а в С++ нет сборщика мусора. Когда почитаешь о выделении динамической памяти, почитай про RAII, и будет тебе счастье.
>>1898226 >без надобности городить всякие трейсеры Нет. В Линуксе dyninst использует ptrace в качестве отладочного API, засим тот процесс, где используется dyninst, и является т.н. "трейсером"
>>1898716 Хотелось бы самому всё сделать. Сначала там ввести понятие сетки пиксилей, потом создать инструмент кисть, который при зажатой кнопке перекрашивает близ лежащие к курсору пиксели. Вот на что нужно опираться ТУТ?
>>1898663 Я фриду имел в виду, написал же js-скрипт А логику ведения логов можно в самом скрипте реализовать (правда раз это ИО из джса, то могут быть проблемы со скоростью)
>>1898710 То что у меня на первом пике в первых двух строчках памяти записано(60 e8 00 00 00...), если перевести эти 16ричные числа, то это будет набор ассемблерных команд, которые я оформил в виде ассемблерной ставки, на которую ссылается shellcode.
>>1888626 (OP) Сап, двач. 1. Хочу сделать такой же красивый gui, как пикрелейтед1. В окошке несколько прямоугольников c надписями(до 10^6), между некоторыми рёбра-курвы. Разумеется далеко не все прямоугольники надо рендерить одновременно, нужна навигация в таком окне + изменение масштаба - удалить, приблизить, чтобы не слишком эти самые прямоугольники руинило. 2. Хочу сделать такой же красивый gui, как пикрелейтед2
Чем воспользоваться, чтобы сделать, так чтобы не лагало? Qt, Opengl, winapi, directx?
>>1897119 >>1897179 >>1897250 > не забивать хуй на ворнинги > нахуй отключить варнинги > мимо 1.5кк варнингов с этой хуйнёй Пиздец говнокодеры. С кем только в одном треде сижу... Даже жалко стало того, кто запустит ваш проект через пару лет и не сможет собрать это говно с тысячами варнингов. Или будет отладчиком десятки багов вылавливать...
Правильно ли я сделал, что скачал визуал студию и поставил галочку только у "стандартные приложения виндовс на С++"?
Только вкатываюсь, собираюсь хеллоу ворлд писать из книжки какой-то птицы 2016 года. Пофилософствовать любит автор конечно, неудивительно для пернатых.
Симёныч, что посоветуешь чтоб хранить и считать числа до гугола? (он же 10^100, он же 1e+100, он же 1 и тыща нулей). Конкретно в этой задачке перебираю все тыщу чисел, что состоят из девяток и выявляю остаток при делении на некоторые числа.
>>1899135 Кретин. Варнинги варнингам рознь. У меня вчера студия написала "ОШИБКА: название функции должно быть с большой буквы", при том что это имя она сама сгенерила))
Кто vs code юзает там можно как в mvs ide настроить выравнивание текста? Чтоб точку с запятой или закрывающую скобку ввел и автоматечески отступы, пробелы там появились.
>>1899761 перекатиться в жс и признаться самому себе, что оплот компьютерных технологий на данный момент и на ближайшие лет 30 - веб. Лоу лвл пердолинг остался в 80ых, сейчас не нужОн, так как 80-90% этой работы выполняют сами железячники, которые высирают платы и двигают электронами туда-сюда.
Привет, двач-крестач. Начал изучать кресты - понравилось. Далее планирую обмазаться QT. Сейчас учусь по степику и на данный момент из 38-40 задач не вкурил только 2-3, остальные так или иначе решаю. Также читаю книгу "С++ без страха". Вроде как на степике программа ничего так составлена, буду продолжать. Посоветуйте еще какие-либо ресурсы, книги, каналы, etc. Кроме этого, прошу пояснить за операторы изменения типа данных: статик и динамик каст. Со статиком ясно, я даже его применял, а динамик-то как используется?
>>1900032 >динамик-то как используется Практически нет, в 99% это признак хуевой архитектуры, и _ОЧЕНЬ_ _ОЧЕНЬ_ редко он нужен в каких-то сложных плагин-системах, и то не факт
Sup /pr/, я в пизде, мне срочно нужна ваша помощь с С++ Тупо дальнейшая жизнь вместе с зачетом решается сейчас этим
Есть две задачи, которые нужно сделать, они обе решаются через fstream или чот такое Я валенок, нихуя не понимающий в С++, я пытался блять чот нагуглить, чот решить, но просто нихуя не помогает и меня кроет паничка сейчас, я не в состоянии тупо это написать
Если кто-нибудь из анонов сможет написать за меня эти две проги - скину косарь или мб даже 2, мне уже похуй на деньги на всё остальное, есть вот ток эти два косаря из того что могу предложить, реально пизда как нужно
Задачи: 1) В файле задан список слов. Составить список уникальных слов с указанием, сколько раз они встречаются в исходном списке. 2) В файле задан текст. Написать функцию, определяющую длину слова. Применяя эту функцию, в выходной файл записать слова с указанием их длины.
>>1900069 Короче с мобилки мне писать лень да и твоя судьба мало интересна. В первом случае тебе нужна структура данных хэшмап. Алгоритм примерно такой Пока есть слова в файле Прочитать слово Если слово есть в хешмапе увеличить этой записи значение на 1 Если нет то добавить в хешмап запись об этом слове с значением 1 Потом вывести все слова где счетчик ровно 1 Вторая задача примерно так Заводишь два вектора, для слов и для длин Пока есть слово в файле Прочитать слово, записать его в первый вектор, а посчитав его длину, во второй Потом выводить в файл чередуя слово и длину
>>1900014 >так как 80-90% этой работы выполняют сами железячники Ну нет же. В любой конторе, которая делает что-то, что можно потрогать руками, нужно к одной железке присобачить другую. Оттуда и возникают пердоли.
>>1899659 Да не, это же просто отступы, после открывающей скобки, например. А мне нужно выравнивание текста когда нажимаешь ; либо } ну как в visual studio, я ж написал
>>1900199 которые получают 20к деревянных, жря говно с паяльником в очке и имея х50 знаний веб-господин по объему. Веб-господин же получает 100к+, не будучи даже синьором, и ссыт на пердолю-опущенца свысока.
>>1900014 > и признаться самому себе, что оплот компьютерных технологий на данный момент и на ближайшие лет 30 - веб. Лоу лвл пердолинг остался в 80ых, Да я это понимаю. И размер зп и возможности карьерного роста/трактора в вебе несравнимо выше, чем у железячникав. На порядок выше. >перекатиться в жс Так и сделаю. Уже все коллеги-железячники выучили жс и стали веб-господами, один я прогаю микрики как долбобоб за копейки.
>>1901115 По идее с модулями можно обеспечить нормальную область видимости без всяких namespace detail, модули изолируют максросы и, программа максимум, можно в большинстве случаев вообще обойтись без хедеров, а просто сделать import foo.
И в конце концов получится мешанина из всего подряд
Анонче, какие навыки на работе нужны кроме синтаксиса языка? Вот из вакансий понятно, что к синтаксису ещё нужны алгоритмы и структуры данных, гит, паттерны иногда и в принципе всё. А что по остальному? Есть ли какие-то мастхэв либы или фреймворки? Boost и Qt первыми приходят в голову, но что если накидать условные шахматы с эффектами в SFML или работодателю вообще похуй на мой гитхаб и всратые пет-проекты уже 10 раз всеми реализованные?
>>1901221 >работодателю вообще похуй на мой гитхаб и всратые пет-проекты уже 10 раз всеми реализованные this м на либы тоже похуй - они постоянно новые появляются
Ребят, что спрашивают вообще по цпп на собесах? Никогда не ходил на собесы, на работу попадал по научке в универе.
Стэк у меня с компьютерной графикой.
Просто не хочется прийти и обосраться от вопросов про какой-нибудь сpp20 с каким-нибудь нерелейтед говном типа реджекса или что-нибудь низкоуровневое с какими-нибудь оптимизациями под разные архитектуры и прочее.
Сейчас почитываю про cpp14/17/20, решаю задачки на литкоде. На плюсах я давно пишу, и читал всякие бест практисес конечно, но код у меня на уровне cpp11 всегда или даже ниже, так как в компьютерной графике все эти новые фичи особо не нужны. Что мне стоит знать/уметь? И стоит ли на новые стандарты вообще налегать?
>>1901704 Глубина примерно 10. Параметр один: usigned long long. Но она впринципе очень часто вызывается. Каждую губину несколько раз. Если я перепшу это через какие нибудь циклы с goto это может существенно ускорить?
>>1901683 Вызов никогда не "бесплатный". Нужно сохранить какие-то регистры, какие-то восстановить, провести несколько манипуляций со стекаом. Но дорого или нет - зависит от конкретной решаемой задачи. Если у тебя внутренний цикл больше трёх-четырёх десятков инструкций процессора, то скорее всего вызов функции вообще не играет роли с точки зрения скорости.
>>1901707 >>1901704 >>1901683 Понятно, что идейно рекурсия всегда дороже и по времени и по памяти. Но еще даже в сишке была tail recursion оптимизация, не говоря про современные компиляторы. Зависит от юзкейса кароче. Иногда это будет прочти то же самое. Иногда нет. Ну и непонятно, что происходит с кэшем на самом деле.
>>1901696 c++11 вполне хватит. если на графений пойдёшь - спросят за геометрию, модели освещения/тени, работу с текстурами. начнут с простого и пока не завалят, чтоб понять насколько хорошо соображаешь.
>>1901731 многопоточность скорее как плюс ко всему остальному (этим обычно какой-нибудь синьёр заведует). ну и там традиционно спрашивают контейнеры и оценку сложности алгоритмов (O-нотация)
>>1901914 Сравни 3*sizeof(std::underlying_type_t<MyEnum>) и sizeof(long)
Enum под капотом может оказаться и int8t, и uint64_t. Размер long зависит от разрядности и от ОС (в win64, win32 и unix32 это int32_t, в linux64 это int64_t)
>>1888825 9/10 превозмаганий, но ты справишься. В основном из-за кривых кутей а лучше ничего нет Сделай сначала все в одном стандартном окне, потом по запросам в Гугле поймёшь как сделать второе модальное окно и глобальные хоткеи.
>>1901977 Потому что вызовы вложенные. Если у тебя три функции, внутри одной из которых вызывается две других, которые занимают по 40% общего времени, то слева у тебя будет 80+40+40, справа 80
Ок, спасибо, я понял, что vs по времени считает. А она может посчитать сколько на каждую функцию в тактах тратится? А то время это такое. Вдруг у меня в момент замера процессор на что то другое отвлечется.
>>1901998 Он вроде честно считает сколько времени выполняется именно твой код без учёта переключения контекста. Всё что в большинстве случаев нужно - сократить количество вызовов и время вызова каждого метода.
Хочу создать игру как agar io если зайти и увидеть как она устроена внутри то это c++ код скомпилированный в wasm причем клиент обращается на какой то адресс api получает в формате json сервера и подключается к ним. Вопрос как сделать типо такую игру? у меня есть идея сделать clash of clans но в браузере. То есть чат плюс строительство. Как это все устроено изнутри? я так понимаю сервер должен принимать много сообщений, общаться с базой данных (я выбрал postgres) отсылать что то назад при этом копий сервера должно быть много то есть впереди нужен прокси балансировщик какой то(наверно?) так что реквестирую гайды (и книги) по таким темам как
- как на c++ писать свое api - как писать такие сервера, которые и жнец (общение с базой) и на дуде игрец (принимает и отсылает сообщения) - как работать с базой (right way) - как написать вот эту приемку сообщений ( я так понял нужен типо брокер сообщений) - как писать прокси балансер, возможно писать его не придется и есть готовые решения (я нищюк и мне нужно чтобы я смог арендовать какой нибудь серверок за 4 баксов на дигитал океане, при необходимости взять еще один ввести пару команд, и вуаля у меня уже два сервера) - как все это соединить вместе
библиотеку общения я уже выбрал это будут uws - websokect
для клиента меня интересует - как наилучшим образом делать графику в веб ( opengl норм?)
Хотелось бы именно гайды с уклоном на продакшн. Не просто статью подключаемся к базе, а типо вот пишем реальный брокер сообщений пригодный для боя хоть сейчас, с глубоким объяснением что и как и где устроено внутри.
Сенкс!
советую всем посомтреть как сделана игра agar io и deep io (их сделал один человек)
>>1902043 Я бы посоветовал пикнуть С# для твоей цели, на плюсах охуеешь все это писать с нуля в одиночку, особенно если у тебя опыт программирования на плюсах меньше 6 лет.
>>1902364 > wasm > Я бы посоветовал пикнуть С# Чел, не советуй такое. Васм в шарпе очень медленный, медленнее жс. Если уж хочется игру в браузере на шарпе, то комбайн в виде Юнити и то лучше будет. Алсо, 2дэ можно и на жс написать.
Надо прикрутить к проге работу с файлами. Прога будет крутиться пару часов, а то и суток на компе. Время пиздец как важно. Поэтому вопросы следущие: стоит ли мне думать о процессе записи в файл или оно само все сделает? Чтобы оно не открывало и закрывало файл каждый раз, чтобы число записать, а таких очень много (около 10^10 ). Если в несколько файлов буду писать и при этом для каждого создам свой fstream оно же сначала в буфер для каждого файла писать будет? Можно буфер настроить как то для большей эффективности или нет? Можно ли сделать, так чтобы он писал в буфер пока оперативка не кончится, а потом начинал в файл данные писать, но не мешая основной программе, чтобы она не простаивала?
>>1902933 Заведи несколько буферов в оперативке. В один пишешь числа свои и при заполнении свапаешь. Полный буфер вторым потоком дампаешь в файл. Ну эт топорное решение. Тебе ещё надо будет придумать как дамп сделать если exception вылетит.
>>1902972 Спасибо большое. Вероятно, я потом еще вернусь с вопросами при потоки и организацию записи, чтобы не было такого, что первый буфер заполнился, а второй еще не освободился, а я писать в него хочу.
анон, вопрос по конструкторам перекатываюсь к вам из си шарпа, и немного удивился, когда увидел крестовый синтаксис конструктора можно написать так: struct P { P(int x, int y) : x(y), y(y) {} int x; int y; }
в простых случаях пишется ок, но жопой чую, что нечитабельность будет охуевшая, если код разрастется разве не удобнее так?
struct P { P(int x, int y) { this->x = x; this->y = y; } int x; int y; }
Есть какие-то причины писать 1 способ, а не 2? Вроде как второй с способ понятнее и читабельнее
>>1903114 Дебил, пока не напишешь код и не запустишь профилировщик студии, всё свои высеры про "медленно" и "не хочу тратить время" можешь засунуть себе в очко
>>1903124 В первом случае члены класса сразу инициализируются, во втором сначала вызываются конструкторы по умолчанию, потом происходит присваивание. На практике обычно пишут что-то вроде:
>>1903175 Идёшь и беседуешь. По месту станет понятно что тебе ещё освоить. Чтоб не рефлексить сходи сначала в конторы которые тебе не сильно интересны.
Как организовать адекватное закрытие программы? Прога в файл данные пишет, но мне ее надо будет закрывать и заново открывать. Нельзя же просто закрыть, а то данные повредятся
>>1903190 Ну типа в школе инсте универе у тебя есть 2-3 попытки сдать. А собесов у тебя штук 20 в разные конторы и потом каждый год ещё повторно можно собеситься. Короче изи мод.
>>1903216 В винде придётся задавать callback через winapi. Создай оконный проект в студии и копипастой оттуда забери нужный код. В линуксе можешь сделать callback на нажатие Ctrl+C: void on_exit(int); signal(SIGINT, on_exit);
>>1903246 Спасибо. То что надо. Если использовать только обычный fstream, то ситуация печальная. Из за дрочки диска проц грузится на процент. Завтра буду делать что то
1) если std::cout << "mamku ebal"; откуда компилятор знает что это стринг? он ведь считает этот литерал массивом чаров, верно? 2) использование макросов моветон? #define to_int(x) static_cast<int>(x) так, например.
>>1903342 1. Там и нет стринга. Там operator<<(const char*) https://www.cplusplus.com/Й/ostream/operator-free/ (А вообще то бывают неявные приведения типов) 2. Пиши просто функцию. Она оптимизируется скорее всего. В макросах нет типов, это минус.
>>1903343 >А вообще то бывают неявные приведения типов это когда: std::string s = "mamku" std::cout << s + "ebal" я так понимаю за макросы пример неудачный, просто в общем не раз читал что говно и нинужно
Почему Дефендер начинает ругаться и удалять программу без подписи, если создавать её ярлык в Startup? Вроде нету вредоносного кода, но всё равно ругается.
>>1903560 Лучше бы он браузеры мейл ру так удалял. Алсо я однажды скомпилировал пример программы для подмены событий с клавиатуры. Так там такое началось, что я подумал мне сейчас омон дверь вынесет..
За сколько времени можно до джуна по плюсам доползти если с языком знаком на уровне "Си с классами", а алгоритмам и прочему научили в ВУЗе? Одной книги Страуструпа и одной Мейерса ведь недостаточно, надо же ещё что-то, наверное.
Нужно учить различные сортировки и деревья? Слышал мнение, что это крайне мало где нужно. Сам за несколько лет максимум использовал std::map, списки, векторы и ещё пару костылей, вызывал std::sort. Не зря начал изучать?
>>1903759 > Надо писать код Код из туториалов? Из книг? Свои проекты? Используя фреймворки? Решая задачи на литкод? Опен сорс проекты на гитхабе? Всё сразу? Постоянно это слышу, но никто не объясняет какой именно код нужно писать.
>>1903852 Ты не понимаешь. НАДО. ПРОСТО. ПИСАТЬ. КОД. Пусть он не компилится и пишешь ты синтаксическое говно - главное писать. А потом хоба - и ты сео яндекса. Ясно?
Подскажите, можно ли здесь получить размер динамического массива через указатель name? Насколько я понимаю, нет, но понимаю я пока примерно нихуя, поэтому обращаюсь с вопросом. Про искусственность примера знаю.
>>1903852 Любые хуевые пет-проекты. Хуевый тетрис, марио для даунов, беспонтовый п2п чат. Что угодно, главное писать самому, пытаться хуево дизайнить.
Самый важный совет, который я могу дать с высоты своего помидорского опыта - никогда не старайся сделать идеально. Перфекционизм не нужен. Самое важное - делать корректно, а хуевый код потом порефакторишь.
>>1903973 > хуевый код потом порефакторишь Ахуенный совет. По своему опыту знаю, что говнокод из первых свои проектов проще переписать с нуля, чем рефакторить.
>>1903980 Да даже если переписать - все равно ок. Самая распространенная ошибка, на которую и я наступал - пытаться сразу написать хорошо, и в итоге не написать вообще ничего.
>>1903993 ну то есть длина массива: strlen(name) + 1 (+1 потому что в конце строки /0) размер одного элемента sizeof(char) == sizeof(*name) == 1 байт (но не всегда)
>>1903973 В с++ это так не работает. Тут надо дрочить и практику, и теорию (чтобы знать все 13 видов инициализации) Просто писать говнокод никуда не продвинет.
>>1904015 Вот единственное, что продвинет любого программиста куда-либо, это писать код. Я не знаю 13 видов инициализации, это не мешает мне работать. Но штук 7 знаю, да.
>>1904015 Не надо ничего дрочить. Нужно научиться стабильно закрывать таски (закрывать чтоб работало и стабильно, чтоб не упираться в крупный рефакторинг). Ты не поверишь, но кроме тебя ещё есть целая стая долбаёбов, которые обсираются с выработкой требований, тестированием, сроками, бюджетами и прочими делами. Твой код никогда не дойдёт до прода, если ты его будешь облизывать.
>>1904080 Из моих знакомых: Бэкенд яндекс маркета, поиск мейлру, Местный 3Д около-САПР в Align Technology, Говнобраузеры в яндексе и мейле, кернель драйвера в Нвидии, всякие роутеры\свитчи. Ну и игры само собой.
>>1904080 недавно пилил видеонаблюдение с распознаванием лиц, машин, забытых сумок и прочей хуйни. сейчас ADAS систему пилим - чтоб машина сама подсказывала водиле, что впереди столб и надо руль повернуть.
Мне нужно вычисления произвести очень большие. На моем компе часов 15-20. Есть ли аренда какая компов мощных? Чтобы во первых быстрее, а во вторых свой комп не насиловать
>>1904148 Нет. Я сейчас чекнул в инете эту тему. Там часто много чего мне не надо. Мне важно чтобы проц на ядро был сильный. Программа не параллелится. И 10гб диска. Видюха не нужна. Программа должна отработать. Гигов 5 файлов она на диск запишет. Я это потом заберу к себе.
>>1904159 А ты можешь, например, вычисления разбить на части? Могу 5 машин дать, только они работать будут полтора часа. Как работать перестанут можно ещё сделать.
>>1904160 >>1904162 Спасибо большое за услуги такие. Я могу и заплатить. Но на данном этапе я не могу распараллелить. Но могу параллельно делать на следущем этапе. Сейчас все же приоритет на одно ядро. А у тебя tg есть?
>>1904175 Ну естественно, что ты нихуя не можешь себя выдавить, я же тебя на протяжении пяти лет в череп ебал без усталости, в частности в уши. Раздолбал все в твоей смешной пониёбской башке до неузнаваемости. Забавно осознавать, что ты еще способен функционировать как живой организм, тупо калобактерия, пародия на человека разумного, хотя с какой стати парашная прыщеблядская грязь стала походить на человека, я хуею блять, нахуй ты такой говнопидор живешь?
>>1904344 > А если я например захочу свою поделку выложить куда-то, VS поможет как-то? > Или надо будет CMake добавлять? Тащемта шмек де-факто стал стандартом, в любом случае его придется добавлять.
>>1904355 Я просто вспомнил как пытался на винде скомпилить какую-то штуку, а там был premake5 внутри. В итоге остался с окровавленным нечто вместо зада.
>>1904372 > FREE for Open Source projects > FREE for students and teachers > FREE for education and training Так же можно EAP версию использовать, если совсем плохо с деньгами. А так оно стоит 90$ в год.
>>1904372 Давай предположим, что ты работяга 200к\м на руки, крепкий ДСовский мидл.
Контора до налогов платит за тебя, допустим, 300к в месяц (округлим) -> 3.6кк в год. Шлион для организаций стоит 200 бачей в год - 15к рубасосов.
Используя математику уровня /b понимаем, что если покупка Clion'а сделает нас на 0.4% продуктивнее, чем в работа вскоде\эклипсе\любой другой бешплатной параше - то это выгодная покупка. И догадываемся о том, что хороший тулинг сделает нас ОЩУТИМО продуктивнее, а не на десятые доли процента.
Контора оплачивает студию и решарпер - где-то косарь триста бачей в месяц, и это капля в море, по сравнению с зарплатой годовой. А продуктивность выше ощутимо, если бы я ебался с бесплатным софтом
Где можно подробнее прочитать о том, как в плюсах выделяется память? Статическая ведь вся не выделяется на стеке, либо же это просто несколько стеков? С динамической кое-как понятно, а как работает всё остальное понять уже сложнее. Я в попытках нагуглить и понять кусками дошёл до того, что вся программа работает на одном стеке, чего быть не может по логике.
>>1904493 Стек в этом случае это структура данных абстрактная или стек именно операционки? Потому что стек на линуксе - 8МБ, на шиндовсе - 1МБ, если брать первый же запрос из гугла. Не совсем понимаю как всё в один мегабайт укладывается то.
>>1904505 А это можно как-то отследить? Может в VS есть инструменты для этого из коробки? Из диспетчера я вижу, что простейший пример для расчёта массы коробки в один поток занимает мегабайт оперативы, но это не то ведь.
>>1904476 А когда ты выходишь из манямирка, то оказывается, что в конторе есть ещё июни за 70к/м и контора твоя в ДС2-3-4-5... с зп на 25-30-35% меньше. Потом оказывается, что сэкономленные деньги падают прямо в карман гендиру (~3k$ карман не тянут). И становится не так однозначно.
>>1904490 >Статическая ведь вся не выделяется на стеке Статическая вся на стеке. Я тебе больше скажу - когда ты выделяешь память в куче (ака динамическая память), указатель, содержащий адрес в куче, возвращаемый нью или маллоком, сохраняется на стэке. Стэк всему голова. >С динамической кое-как понятно Куда сложнее, чем статическая. Статическая память выделяется на стэке и саморазрушается при выходе из области видимости или вообще из функции (что тоже сама по себе область видимости), если бы ты знал хотя бы один из языков ассемблера - вопросы о статической памяти отпали бы сами по себе. Погугли что такое стэковый фрейм и как вызов функции выглядит в ассемблерном листинге, сразу все поймешь.
По поводу динамической - она не привязана к ABI в отличие от статической, а привязана к реализации аллокатора памяти в куче (а таких дохуя - ptmalloc3 (реализация в glibc), jemalloc (браузер огнелис ее юзает, например, ну и в бздяхе она дефолтная), виндовый аллокатор памяти и т.п.). В гугл хроме вообще кастомный гугловский маллок. Если ты не лоу лвл хакер или не разрабатываешь аллокаторы памяти, то устройство оной изнутри тебе знать необязательно, просто помни, что в unmanaged языках ты должен освобождать динамическую память вручную (офк мы не говорим про умные указатели и RAII в целом в плюсах, но за кулисами там такой же delete, просто обеспеченный деструктором классов-оберток над указателями).
>>1904633 > Куда сложнее, чем статическая. Я имел в виду именно вот принцип, то что компилятор в каком-то нужном (для меня рандомном считай) месте выделяет память, которую потом нужно освободить. Просто сложно представить, как вот какой-то большой проект весь хранится на одном стеке, даже учитывая, что объекты на стеке умирают за областью видимости.
> если бы ты знал хотя бы один из языков ассемблера Писал только на ассемблере процессора intel i8085 математические функции и уравнения в вузе, и позже немного на gas подобное же делал, где и со стеком больше уже работал, вопросы не отпали.
> Погугли что такое стэковый фрейм и как вызов функции выглядит в ассемблерном листинге, сразу все поймешь. В том смысле что он сохраняет адрес возврата? Про стековый фрейм погуглил, как я понял, заносится сначала адрес возврата, за ним аргументы и локальные переменные, по возвращению это всё "освобождается" (указатель на стек возвращается назад и снова идёт вниз, затирая старый мусор). Если я правильно всё понял. Вообще да, теперь работа статической памяти понятней выглядит.
>>1904633 >Статическая вся на стеке По-моему ты пиздишь. Возьмем к примеру статическую переменную в функции. Она не разрушается при выходе из функции, но и не находтся в куче.
>>1904531 Assist классная штука, но бывает тормозит. На новой (ну как, 1.5 года) работу пока не просил купить, вроде 2017 и 2019 студии и так до фига чего могут сами. Но иногда не хватает.
Что вообще такое это ваше знание стандарта? Это когда я прочитал референс на 2к страниц? Или когда просто знаю какие фичи можно юзать в коде а какие нельзя? Как это проверяют?
>>1904876 Да, анон, слегка пизжу, ты прав. В случае со статическими переменными - они хранятся в data секции бинарника (тонкости зависят от формата бинарного файла, но в целом везде все работает по одинаковому принципу).
>>1904932 Ну не знаю. На моей предыдущей работе, когда окружение виндовое было и стояла студия, VA только в самом начале жутко тормозил. Пришёл, включил комп, студию - и идёшь за чаем. Затем всё бодро работало.
>>1905042 Hi guys, Im Bjarn Stroustroup. Been sitting in /b ("You laugh - you shit pants") and decided to read c++ thread, you know Im a bit related to this great language. And honestrly i dont give a fuck what the "CRTP" is, moderators please ban this troll account
>>1905272 чому книги говно такое, нахуй мне твой фултик устанавливать что бы классы изучать, столько воды будто я курсовую юрфака читаю. Алсо, потцоны, вопрос: Clion c Qt можно подружить или все таки ебаный qtcreator тащит
>>1905285 > Clion c Qt можно подружить Можно https://www.jetbrains.com/help/clion/qt-tutorial.html но нахуя? Если вдруг понадобится дизайнер для формочек, то в любом случае придётся открывать кьютишную ide. Ну и главная фича QtCreator в документации прямо в редакторе. Можно пользоваться сразу несколькими редакторами и никто по жопе за это не даст, базовый функционал везде одинаковый, а хоткеи накатить сможешь тоже любые.
>>1905272 Это как задрачивать паттерны и прочую терминологию. Дохуя времени что-то юзаешь и даже не подозреваешь, что какие-то умники придумали названия для всего этого и ебут на собесах из-за незнания названий.
>>1905294 я изучаю кресты написанием всяких тетрисов как и питон когда то а для этого формочки нахуй не нужны, ебашишь кастомный виджет и русуешь паинтером все что хочешь. Просто там qmake какой-то, я конечно разберусь пойже но не хочеться пересаживаться на креатор только потому что qmake будет правильнее собирать или быстрее.
>>1905285 I fuck you fucking bitch fucking braindead russian who uses goto. My both pluses are in your mouth and a big C in your dads ass. Pwned, now go JS thread to ladyboys party
>>1905324 > I fuck you fucking bitch fucking braindead russian who uses goto. My both pluses are in your mouth and a big C in your dads ass. > Pwned, now go JS thread to ladyboys party
>>1904928 Когда говорят "знание стандарта C++17", обычно подразумевают именно умение использовать плюшки этой редакции языка, а не сакральное знание сего талмуда.
>>1905412 Я учу вторую неделю и просто в шутливой форме делюсь впечатлениями. Алсо понимание любой сложности приходит с опытом так что если я сохраню свою заинтересованность то тогда в душе выебу
>>1905507 ну тогда молодец, анон, удачи. Плюсы - интересный язык с бесконечными возможностями, особенно современные стандарты. Втянуться легко и не слушай ебланов-неосиляторов, будешь достаточно топовым - заведешь трактор и будешь жить припеваючи. Главное не прекращай, удачи.
", ...)" Что это за хуета? Многоточия так не используются, что они раскрывают, запятую чтоли? Этот выебон детсадовский не скомпилится, зря в метросексуальный дизайн обрамляли
>>1905549 >Ну и в чём смысол этой хуйни? source code obfuscation, способ который используют senior c++ programmers чтобы не быть выкинутыми на помоечку как outdated!
>>1904331 ничего не знаю, но знаю что ради этого поделия (eclipse) ibm прибила прикольную ide visualage решили свою корпоративную ide переписать на модной-молодежной тогда яве, по результату проебали часть собственного рынка средств корпоративной разработки
>>1906437 мне нужна книга как их писать с примерами кода и словами почему так а не так и с главой про горизонтальное масштабирование и raft алгоритм есть такая?
>>1906541 это конечно можно написать на плюсах, для гуя есть Qt, но зачем? Если ты кроме плюсов больше ничего не знаешь и тебе лень учить, то почему бы и нет, дерзай.
>>1906654 Каких, например? С classpath в андроиде ебаться не нужно, всё делается само. Дженерики в джаве бессмысленны и беспощадны, их лучше избегать. Остальное довольно логично, достаточно понимать, что все указатели как shared_ptr, только ещё умнее. Изучил одну джаву по стековерфлоу, когда надо было сделать приложение.
>>1907098 Вот это уже действительно pitfall. Вроде бы как-то вручную его можно контролировать, когда вызывать, когда нет, моё приложение не требовало высокой производительности.
>>1907098 Ну если говнокодить и не понимать как работает GC, то конечно будет пиздец. RAII ещё неплох в расте, но в крестах это та ещё залупа, которая лишь немного снижает шанс прострелить себе ноги.
Работал кто с qt? Как там работа с сессиями устроена? Например по апишке авторизуюсь в каком-нибудь сервисе и через 2 дня запускаю программу снова, как она сохраняется? есть какой-нибудь менеджер нетаорк сессий?
Как правильно ответить на вопрос "Что такое итераторы"? Это объект, тип, структура данных, возможность - как начать предложение вообще? В моём понимании это вещь
>>1907499 Вот тут смайл из консоли, код которого 02 www.theasciicode.com.ar/ascii-control-characters/start-of-text-ascii-code-2.html У тебя int кастится в char при выводе, попробуй перед выводом преобразовать в строку через to_string.
>>1907498 >>1907567 Ну в общем-то так. Но я до этого 2 месяца потратил на Ритчи по Си (просто слоупочил, в целом всё было легко). Так что чуть ли не до ООП всё скипал.
>>1907498 пол книги за джве недели, при этом скипнул фултик и графику. Насколько я понел фултик с апдейтами сменил апи а этот лысый страус даже не указал какой версией пользовался при написании книги. Очень выбешивает его стиль изложения, много воды и такого когда тебе вываливают всякие плюхи с оговоркой ну это, мол, хуйня потом будет в следующих главах, но без понимания этих плюх ты не поймешь о чем текущая глава. Забей в хуюгл ravesli, пчел локализировал какой то забугорный курс все по полочкам и без воды. Читаю сначала его статьи и только потом читаю о том же у трупострауса так как сходу ну никак мне он не заходит, хуевый писака как по мне. Алсо, вопрос: Есть какой-то коммон гайдлан по стилю кода или каждая контора по своему ебашит. Читаю разные источники и часто вижу: int x; int x;
вижу ночью только я тут один сижу, лол. Алсо, вопрос: я так понял override в виртуальных функциях чисто самому не проебаться a la assert и сути кода не меняет.
>>1907482 Везде, где работал (аж в трёх местах), использовались только int32_t (без std::, естественно) или алиасы типа i32, даже в обычном коде. Правда, везде было серьёзное отношение к бинарной совместимости и/или передаче данных через всякие протоколы, где точный размер каждого поля офигеть как важен. Тот же long, например, в некоторых 32-х битных компиляторах имеет размер 4 байта, а на 64-х битных - 8 байт
>>1908004 >пол книги за джве недели Рофлишь что ли? Или ты скипал все упражнения и делал только задания (drill в англ версии)? Все-таки у него есть очень непростые упражнения, с которыми я долго ебался. Ну с фултиком тоже я поебся, но мне удалось справиться. Прорешал почти все, кроме некоторых упражнений. Ушло где-то полгода.
>>1908636 Допустим у тебя массив {4, 1, 1024}, который занимает 12 байт. Под него придётся создать вспомогательный массив размером в 4кб. Сортировка слиянием дополнительной памяти не просит.
Есть один класс с конструктором в котором передаются параметры. Если его объявить в начале кода после include то он "конструктор" будет стартовать раньше срока, если где-то в коде то тогда видимость его будет в одной только функции. Как лучше сделать?
Есть массив из 36 элементов. Нужно получить за секунду всевозможные суммы, которые могут получиться из элементов данного массива. Как это быстро сделать? Простой перебор не подходит. 2^36 это 68 719 476 736.А плюсы примерно 10^9 считают.
>>1909207 Ну естественно, что ты нихуя не можешь себя выдавить, я же тебя на протяжении пяти лет в череп ебал без усталости, в частности в уши. Раздолбал все в твоей смешной байтоёбской башке до неузнаваемости. Забавно осознавать, что ты еще способен функционировать как живой организм, тупо калобактерия, пародия на человека разумного, хотя с какой стати парашная прыщеблядская грязь стала походить на человека, я хуею блять, нахуй ты такой говнопидор живешь?
>>1888626 (OP) я сейчас начал читать книгу по 17 стандарту, Nicolai M. Josuttis - C++17 The Complete Guide, и я не понимаю эту строчку, которая с assert начинается. Я знаю, что это не из 17 стандарта слово, но к сожалению не понимаю, что на этой строке написано. Объясните пожалуйста, что это зн>>1888626 (OP) ачит.
>>1909176 >Простой перебор не подходит А как ещё ты хотел? Тебе нужны ВСЕ суммы - считай ВСЕ суммы. Если, конечно, не дана дополнительная информация про массив (например в нём много элементов одинаковые, из-за чего многие перестановки эквивалентны).
>за секунду Не, не выйдет. Я набросал быстро алгоритм на AVX - получил чуть меньше пяти минут рантайма (хотя я в SIMD мало что понимаю и сильно тупил при написании). Ну, скажем, у тебя последний райзен и ты распараллелишь на 24 потока - 13 секунд.
И это без какого-либо I/O, которое тебе понадобится и которое к тому же будет сильно тебя тормозить. Посчитаем на коленке: общий объём 2^36 чисел по 4 байта - 256 гигабайт. Throughput 256gb/s - тебе уже кластер настоящий нужен.
>>1909478 >Throughput 256gb/s - тебе уже кластер настоящий нужен. Я магмой на simd шифровал 800 mb/s на одно ядро. Уж точно без шифрования можно больше выжать.
Поправьте нуба если не прав: оба указателя абсолютно одинаковы за исключением адресов оба позволяют получить a[n] (любой вплоть до sigsegv) оба позволяют ⚹(a+n) (любой вплоть до sigsegv) второй просто гарантирует зарезервировать место в стеке от себя до sizeof(тип)⚹количество элементов, последовательно один за одним. под капотом оба одинаковы мои догадки ковырянием
>>1909510 хотя есть догадка все таки что они разные под капотом, так как второй может в sizeof а первый нет, а при передаче в функцию я так понимаю второй конвертируется в первый и уже не может в sizeof
>>1909527 >Второе — невалидный код таки да, с указание размера заработало, а вот в книге трупа >>1909528 это я понел спасибо, что не лень рисоват просто хотел узнать имеют ли различия именно сами указатели как объекты в своем поведении и реализации.
В первом случае аллоцируется память, достаточная для размещения одного int, который затем инициализируется значением 1488
Во втором случае вместо operator new вызывается operator new[], аргументами вызова являются размер одного объекта и количество объектов, таким образов аллоцируется память, достаточная для размещения 4 int, то есть 4 -умножить- sizeof(int)
>>1909532 Ебать, там реально написано "указатели на объекты". Хорошо что я сначала в С вкатывался. Если бы начал сразу с крестов, да еще с книг страуса, охуел бы заживо.
>>1909537 thx >>1909534 >Че? sizeof a и b должны быть равны. так и есть я перепутал что хотелвот тут >4 >16 хотя b вроде как и есть указатель на b[0] и b знает свой размер а при передаче в функцию уже не знает сложнаа, кек
Такое дело. Я только начал учить плюсы (и программирование вообще) и для закрепления решил написать простенькую программу, которая выводит все нечётные числа до заданного n. Собственно накатал пик1, где столкнулся с проблемой, что выводится следующее число, после заданного. Покопался в гугле, нашёл решение на пик2. Работает идеально, но я так и не понял чем оно принципиально отличается от моего и где была ошибка. Условия одинаковы, значения переменных тоже. В чем я не прав?
>>1909507 Ну не знаю. По идее у моих двух плашек DDR4 с частотой 3600 мегагерц предельный throughput ~110 гигабайт в секунду. Нужно что-то в два раза быстрее. А уж если на диск писать ещё хуже будет.
>>1909570 мимо нуб, я в цикле for пробовал пре- и постфикс инкремент оба работают вроде однохуйственно, значит в проверке идет обращениее к счетчику по адресу а не по значению после выполнения инкремент выражения
>>1909572 For на первой итерации: инициализация, условие, тело For дальше: инкремент, условие, тело. Как видишь, инкремент всегда идёт первым вне зависимости от пост/пре записи. (Ты вообще можешь что хочешь там написать, for по барабану)
Тупой нуб опять выходит на связь со своими циклами. Имеется следующий код, который должен выводить ошибку, если введено значение 0 и меньше. Однако, по какой-то причине, ошибка выводится лишь при значениях 0,-1,-2. Все остальные молча закрываются. В чём я опять туплю? (Есть подозрение, что проблема в компиляторе, ибо на onlinegdb все работает. Это возможно?)
>>1910113 Такой код со обычным массивом по идее не легитимен и вообще не должен компилится. Если нужен массив с динамическим размером то используй new int[n + 1];
>>1909429 Работает с переменной u как если бы она была структурой, берёт адрес её поля, и он совпадает с адресом переменной в правой части условия. Переменные что в структуре одна за другой, что при структурном binding, и адреса совпадают. Адрес первой переменной структуры совпадает с адресом самой структуры (вроде бы у этого правила нет исключений)
Поясните за cond_var. Допустим, у меня есть f(), g(), они крутятся в отдельном потоке, вида for (;;) { f(); g(); sleep(2s); } Но ведь это хуйня, не так ли?
>>1910317 Зависит от ситуации. Если есть очередь, которую надо периодически проверять, то лучше спать на конд-варе, пока тот, кто пополняет в очередь, не ткнет конд-вар.
>>1910329 А что писал в основном? Только упражнения из книг? А вообще можешь про свой путь рассказать немного, если не сложно? В треде такое чувство, что все тут родились сразу сеньёрами с умением писать новый хромиум с нуля и как-то даже стыдно, что вроде что-то читал, а в итоге особо ничего не писал даже, даже задачки из книг не все делал.
Написал свою либу на плюсах, теперь хочу прикрутить гуевину не особо сложую, че в какую сторону смотреть? qt не предлагать, думаю насчет wxwidgets, но там видимо запарно как-то из тех гуидов, что я прочитал. Еще в планах какую-нибудь игру даунскую запилить, но это не точно. Расскажете че как?
аноны, всем привет Я занимаюсь в мелком стартапе обработкой облаков точек и классическим цв. Но на питоне, тк эта задача лежит на одном мне, а кресты я знаю на уровне уника Вопрос такой: если я решу свалить в похожую область (обработка данных с лидаров и прочее робототехническое говно), то что важнее там: знание алгоритмов и методов или опыт продакт кода на плюсах? просто первое у меня есть, а второго нет.
>>1911117 Во многих местах нужны именно алгоритмисты, так что тебе достаточно базовые конструкции пару дней поизучать (ссылки, указатели, массивы, работа с памятью). Намного реже нужно дрочилово с хардварной оптимизацией - там тебе вообще без шансов.
>>1911371 ненавижу ебаных радикалов ко ко ко, если с 5-ти лет хайлоад не ебашишь, значит нечего и начинать скажи мне, человек, что такого можно сделать, учась в вузе (а значит процентов 60 времени отдавать учебе, если не шарага), чего нельзя сделать после него? Причем через ПОЛГОДА после него? Типа в вузе у тебя такой пиздец пик интелектуальных способностей что все языки за день учишь, а через день становишься дегрод-дегродом? Короче не неси пургу, мань
>>1911302 > с хардварной оптимизацией - там тебе вообще без шансов. да я и не рвусь, тк я не программист, а робототехник. У нас в этом плане все немного по-другому устроено и за 0.004 секунды скорости работы программы не боремся (по крайней мере пока)
>>1911452 > что такого можно сделать, учась в вузе (а значит процентов 60 времени отдавать учебе, если не шарага), чего нельзя сделать после него? Сидя у мамки на шее тратить то самое свободное время на самообучение и на выходе из своей шараги (а может даже на последних курсах) идти на джуна с нужным тебе стеком. Если на бюджете и не ебланишь, то даже стипендию будешь получать. А 60% времени на айти-специальность ты тратить никогда не будешь, если варишься в этой теме постоянно и что-то дома помимо этого делаешь сам. Если же ты чисто 4 года пивас пил и однокурсниц ебал, забыв при этом всю программу, то >ПОЛГОДА тебе не хватит, мань.
>>1911452 >что такого можно сделать, учась в вузе (а значит процентов 60 времени отдавать учебе, если не шарага), чего нельзя сделать после него В вузе легче всего заводить знакомства. Если не совсем тухлая шарага была, то куча людей с потока устроится по разным направлениям в разных компания, и знать их - только плюс. Networking, ёпт.
>>1911463 ну вот он написал, что если не заниматься именно, мать его, с++ и, более того, оптимизацей, то туда хуй попадешь лично мое мнение, что если человек в унике занимался тем же питоном, тем же си, но не оптимизацией на крестах, то в область оптимизации ему все равно НЕ закрыта дорога поэтому я так и заагрился на анона, потому что его слова - чистой воды фашизм
>>1911705 Я вообще только мипс-ассемблер ковырял и на плюсах какие-то кривые хуки для эмуляторов писал, но это даже плюсами нельзя назвать, какие-то студентопопытки полу-сишные скорее. В шараге в это время просто лабы сдавал и всё
А уже потом попав на работу начал развиваться, и в области оптимизации, и в криптографии, потом начал ходить на плюсовые собеседования, подтянул и плюсы и так далее.
Здравствуйте, я Питон. Прохожу тутор по крестам в УЕЧ. Есть массив из стуктур. Задача - поменять поле в структуре. Если я просто заношу структуру в переменную, в крестах это копия, а в других языках это ссылка. А я хочу чтобы у меня была ссылка и я просто ссылку редактировал, ну как в норм языках хочу. Как я хочу. https://pastebin.com/qC2dXL2x Как сделано в туторе. https://pastebin.com/ML0qMBxN
>>1911954 А если идти дальше вглубь по структуре. То Quest.Progress похуй ссылка или нет, потому что примитив? А если не примитив, то надо опять ссылку делать. Я правильно понял?
Пару дней назад закончил этого вашего Страуструпа и задачи к нему, после чего написал змейку с трип-эффектами на SFML, теперь я джун? Чего ещё не хватает? Собираюсь ещё Мейерса глянуть и Александреску, по стандарту пока просто натыкаюсь на всякие вещи интересные по пути гугления. А дальше что? В плане либ вообще 0 идей что писать, разве что есть есть идея запилить рогалик на SFML и шейдеры туда впилить как-то, чтобы красиво было, сверкало и пердело всё. Где грань между "долбоёб с лабами" и джуном? По вакансиям не понять, там пишут "уверенное знание С++;", сложно.
>>1911988 Не, по-моему, ты что-то недопонял. Тут нет разницы, примитив или нет. Вглубь можно сколько угодно ходить, например Quest.Progress.Level = 5; Всё дело в том, как объявлен сам Quest. Если это ссылка, то ты будешь менять потроха того элемента массива, на который ссылаешься. Если самостоятельный объект, то, соответственно, потроха этого объекта.
Всем привет, уже второй день бьюсь над проблемой. В VS создаю проект из кода, пытаюсь запустить, он выдает это. Причем все ошибки в external dependencies, которые VS создал при создании проекта. Удалить их не могу. В свойствах проекта добавил C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Tools\MSVC\14.16.27023\include в Additional Include Directories, но не помогло. Можете подсказать? Спасибо.
Сап анон, боюсь, что сейчас влечу с платиной, но не первый раз в лучшем треде на всей доске, и так ни разу и не довелось увидеть подобный вопрос. Так и все же, у меня вопрос, есть тут люди, которые могут предложить волк тру по написанию дров под окна, неплохо было бы ещё и за пингвина затереть, но я до него ещё не добрался и сейчас грызу Комисарову, посматриваю всякие презенташки шинды на тытрубе, но всё это не совсем то, что хотелось бы. Презенташки направлены скорее на сеньоров помидоров, у которых возникают совершенно другие вопросы, Комисарова вроде не плохо, но книга объективно стара, мала, да и даже на тот момент времени она неоднократно кашляла, мол, книжка пиздец ужатая, в любом случае беги читай MSDN и иже с ним, я и это потрогал, но честно, виндовская вики скорее больше напоминает набор фактов(что от неё и требуется по сути, и тут никаких вопросов), но для того, что бы эволвнуть в адеквата не только могущего, но ещё и понимающего что к чему, хотелось бы заиметь какой-то список сурсов, которые мне в этом помогут //Английского не боюсь, спокойно смотрю/читаю в ориге // //Заранеее спасибо, с меня как обычно
>>1911705 Норм ты подорвался. Есть работа с низким порогом входа, где нужен язык и какой-нибудь фреймворк (допустим энтерпрайз на Java). За полгода туда и школьник вкатится. Есть работа где язык+фрейм1+матан (осилишь матан за полгода без вузика?). Есть работа где язык+фрейм2+матан+unix+cpu/gpu/fpga (ты написал охуенно быстрые свёртки, преобразования фурье, а железка жалобно тебе моргает и хуй его знает что ей надо и куда в неё тыкать).
Я правильно понял, что идиома RAII состоит в том, что мы всегда выделяя динамически память в конструкторе, в деструкторе должны эту память освобождать? Или же она ещё где-то вне классов может применятся? Это вроде как самая база в плюсах и даже в первых же главах по классам в любой книге обговаривается, но нигде не упоминается само название RAII, из-за чего странности такие в понимании.
>>1912190 Речь не только о динамической памяти, а вообще о любых ресурсах, требующих инициализации и деинициализации. И да, весь смысл именно в том, что в деструкторе происходит освобождение всех ресурсов объекта.
>>1912181 То что придётся поебаться, это честно не новость, т.к. винда, винда никогда не меняется, да и юникс так же, хоть и с другого бока, но в любом случае, сяпки, буду знать, что в ядро можно срать с разбегу не сильно переживая
>>1912183 братишка, это все понятно но смотри 1) энтерпрайз - полностью с тобой согласен (к сожалению, там и денег больше всего) 2) ТОЖЕ согласен, но я думаю, что в кресты не лезут люди, которым на проганье похуй и они только пивандрий пили. Думаю худший случай вкатывальщика в плюсы - челик, который в унике только учился - без работы вообще 3) Третий пунк у тебя самый збс. Ты описал уровень минимум мидла. Но мидл это далеко не вкатышь 23 года, особенно в хардварных вещах. Это уже проработавший программистом чел (мб даже перекатывальщик из энтерпрайза - знаю такие случаи), лет 26+, у котого за плечами года 4-5 опыта. Тут уже случайно залетных нет и быть не может Так что я не понимаю, что мешает человеку-не еблану устроится на вакансию типа 2) джуном после уника БЕЗ практического опыта
>>1912300 А у тебя правильно проект настроен ? Я Qt только через Qt/CLion трогал, с vs не знаю, нужна ли там какая-то настройка, погугли vs+qt, мб у тебя сборка не знает откуда брать qt, Плюс к
Посмотри источник ошибки, это можно сделать через ПКМ, источник, не исключено, что это IntelliSense тебе говна на винтилятор кидает, если так, может забить, если интересно почему, гугли что такое IntelliSense
>>1912178 Windows Kernel Programming Pavel Yosifovich Для тех, кто вдруг столкнётся с подобным реквестом, просто снова лазал по трубе среди сеньоров помидоров и наткнулся на этого дядю, только только начал читать, но тут он уже собирает дрова в vs, книга как никак 19го года, в любом случае, должно быть получше Комисаровой
>>1912276 >что мешает человеку-не еблану устроится на вакансию типа 2 Тысячи таких же выпускников не ебланов и нужда. Льготы и стипуху у тебя отобрали, из общаги выгоняют, мамка денег не шлёт, тянка не хочет идти в ресторан "золотые дуги"... Ты копротивляешься пару месяцев и идёшь в тестеры/вёб/энтерпрайз.
пацаны, есть ли разница, на каком языке решать задачи на leetcode? там же алгоритмы, по идее, вряд ли это даст дикий буст в плюсах. По идее можно и на питоне пофигачить, не? ошибаюсь?
>>1912900 Язык всё же важен, можно заодно подтянуть и синтаксис, чтобы потом лучше уметь писать сходу работающий код. Но если думаешь, что знаешь синтаксис крестов вдоль и поперёк, то разницы и правда нет.
нубасик вкатывается again вот как организовывать заголовочные файлы своих либ допустим есть сипипишник в нем сам класс с интерфейсом алгоритма, который, допустим, имеет члены классы из этого же файла, наследует базовый класс из этого же файла, итд. стоит ли в заголовочный файл вписывать объявления всей этой пиздобратии ведь мне при подключении детали реализации не нужны, нужен только сам центральный класс который обеспечит весь функционал, тоесть я могу только его и объявить в хедере а остальное в спп?
>>1913068 кажется я догадываюсь, объявление в хэдере этих членов класса и базового класса потребует искать в области видимости хэдера эти же члены класса и базовый класс и я буду вынужден их тоже объявить
>>1912943 да мне то пох, я с уника работал и успел уже и байтоеблей позаниматься и высокоуровнеными хуйнями просто ты реально хуйню несешь: я тебе говорю, что человек, нормально учайщийся в унике, но не работающий в это время вполне может устроиться джуном при должном старании, а ты говоришь что ООО ДЕВУШКА НЕ ХОЧЕТ В ЗОЛОТОМ КОЛЬЦЕ СИДЕТЬ МАМКА ДЕНЕГ НЕ ДАЕТ ИДИ В ИНТЕРПРАЙЗ если у тебя какие-то травмы есть, ты их на других не проецируй а разберись с ними лучше, окда? и, кстати, что плохого в интерпрайзе? пользоваться всем нравится, а разрабов оттуда хуесосим, да?
Аноны, помогите пожалуйста с написанием прокси-сервера для игры. Много гуглил но так и не смог понять как это работает и что нужно делать. Для передачи или приёма данных игра использует WinAPI функции WSASend / WSARecv. По моей задумке я буду внедрять библиотеку в процесс игры и она будет транслировать трафик на прокси (который будет подниматься из этой же библиотеки ) Как перехватить вызовы WinAPI функций я знаю, нужно лишь написать сам прокси-сервер. Вот что я смог сделать — https://pastebin.com/PskSHDQ4 Что делать дальше я не понимаю. Читать огромную книгу для того чтобы написать прокси сервер в 100 - 200 строк я не хочу. Да и информация до мне крайне сложно доходит. Ещё есть несколько вопросов касательно работы прокси-сервера.. Если я имею доступ к сокетам которые передаются в WSASend и WSARecv можно ли будет переадресовывать данные напрямую без перехвата вызова функции connect игрой? Или так нельзя? Помогите пожалуйста. :(
>>1912812 >>1913443 Дополняя предыдущее, порядок я так понимаю лучше выбрать Internal -> Kernal, так ? Просто, если я спокойно сожрал первую главу полностью понимаю что и откуда, имеет ли смысл в постижении того, что описано в интернал ?
>>1913473 имеет смысл тупо прочитать internals преодолевая себя и не пытаясь че-то до конца понять с первого раза потому что информация сложная, но при это это базовые знания, требующиеся для того чтобы писать драйвера
>>1913479 Ну слушай, исходя из того, что я уже понял, драйвера, это просто dll, у которых есть фильтры разбирающие говно которое гоняется от объекта девайса, до объекта драйвера и обратно. То что мне сейчас нужно понять, по моим представлениям, это употребление IRQL, покушать KMDF/UMDF ну и познать прелести новых инструментов разработки всего этого зоопарка Я в любом случае потрогаю интернов, но просто на данный момент есть сроки по драйверам, и мне надо выкатить хоть что-то, а как следствие, распыляться не охота, хоть и понимаю, что скорее всего выкачу калл говна
Нужно синхронизировать время в двух прогах, работающих на разных компах в одной локальной сети, которые шлют данные в железки и читают ответ 1000 раз в секунду. В прогах есть таймеры, как поточнее ( <1 мсек) узнать разницу между ними? Часы компа синхронизировать нельзя, прав админа нет, можно слать любые данные по udp между этими прогами. Посоветуйте алгоритм или микробиблиотечку
>>1913510 NTP же системные часы меняет, мне надо просто разницу между QueryPerformanceCounter(&counter); у двух компов узнать и оттуда разницу срабатывания датчиков. Я думал два потока пакетов со временем посылать навстречу и записать время приёма каждого, а потом как-нибудь вычислить, имея 2 массива, может делал кто уже похожее
>>1913175 >я с уника работал и успел... С тех пор многое изменилось, дедуль. Плюсы выдавили из десктопа, энтерпрайза и ещё ряда отраслей. Количество хороших вакух упало, конкуренция выросла.
>вполне может устроиться джуном чекни на hh по россиюшке сколько c++ июней надо (не забудь из поиска убрать web и java). Ты не поверишь, но меньше 200. Зарплаты тоже чекни.
>что плохого в интерпрайзе? пользоваться всем нравится, а разрабов оттуда хуесосим, да?
Энтерпрайз это как сфера ЖКХ. Все им пользуются, ругаются и постоянно вливают туда бабло, потому что хуёво спроектировано или сделано на отъебись (часто умышленно). Если ты откроешь электрощиток в своей хрущёвке, то увидишь там enterprise in a nutshell.
>>1913543 Сначала по NTP получаешь разницу локального времени (d) и времени NTP сервера для обоих компов. Затем время опроса датчика (t) и дельту передаёшь пакетами между компами. Нужная тебе разница == (t1 + d1) - (t2 + d2). У нас была задача с кучей железок в разных ебенях и мы их через NTP синхронизировали. Делал ессно не я, так что может я тут хуйню написал.
>>1913577 > С тех пор многое изменилось, дедуль. мне 24
> Количество хороших вакух упало ну тут соглы, наверное
> Энтерпрайз это как сфера ЖКХ. Все им пользуются, ругаются и постоянно вливают туда бабло, потому что хуёво спроектировано или сделано на отъебись (часто умышленно). хуйню спорол. Так можно про все сказать: я знаю радиотехнический стартап, в который ПОСТОЯННО вваливается бабло, а работают там хуево и результат выдают еле-еле как и в тоже время я сам поработал в крупной конторе, в которой ну все заебись - и к новым технологиями относятся норм, и свободу дают так что ты мне никак не докажешь, что энтерпрайз разработка говно. Пока у меня прилога тинокфффа работает нормально и охуено
>>1913644 Я веслал на крупной галере и знаю какой там контингент занимается энтерпрайзом (код я тоже видел). Фикс говна и доработка приносят хорошие деньги, потому что у клиента нет выбора (гендир об этом открыто говорил). Что до тинькова или сбера, то они могут содержать свой департамент разработки и ебать за качество. Бизнесы в сфере медицины, логистики, торговли такого позволить себе не могут. Конторы на плюсах это часто конторы полного цикла (RND+софт+железо+сбыт) и там больше возможностей контроля за происходящим.
поддерживая дискус про интерпрайз выше аноны, я вот на 2 курсе учуь и выбираю куда развиваться скажите, действительно ли такая огромная разница между зп-хами плюсовиков и джавистов?
>>1913997 Хабр часто публикует статистику по отрасли. https://habr.com/ru/article/511700/ Весомый отрыв по пайке обычно у июней и мидлов. Потом выравнивается. Материальное благосостояние растёт нелинейно (раньше купил хату - больше сэкономил на аренде, раньше бабло вложил в финансовые инструменты - больший гешефт получил), поэтому даже с++ синьёр находится в позиции догоняющего.
>>1913997 Энтерпрайэ это жаба, пихон, пхп, шарп, го (бывает легаси на с++, но это лютый пиздец). Заказчики - крупнейшие российские коммерческие конторы и куча европейских заказчиков средней руки на аутсорсе за валюту. Плюсы - в основном конторы с госучастием и малыми бюджетами. Небольшой островок стабильности - геймдев. Штучные вакансии от топ тир контор типа huawei, nvidia, intel (ну и там яндекс/хуяндекс человек 20 возьмёт).
>>1914035 За почти два года веслания я пережил всех. Я видел как юнги прыгали в пучину за рублём, как заказчик высадил капитана в обосранных штанах на необитаемом острове... Но галера имеет ту особенность, что даже без команды и с пробитым дном она продолжает идти вперёд к релизу... Так и случилось. Мы пришли в порт... втроём... со сломанной мачтой и странным вкусом во рту. Каждый из нас побывал фронтендером, бекендером, девопсом, аналитиком, железячником и продукт овнером. Молча мы ёбнули водки за тех, кого с нами нет и за то, чтобы больше никогда не служить на флоте.
Сап программач, вуз навязывает ненужный мне язык, который никак не связан с моей работой, помогите пж. да, я ленивое чмо
Дана прямая. Она описывается функцией у=2х+7
Если точка лежит ниже прямой, она должна удовлетворять условию у-2х-7<0 Если точка лежит на прямой, она должна удовлетворять условию у-2х-7=0 Если точка лежит выше прямой, она должна удовлетворять условию у-2х-7>0
Напишите программу, которая будет получать на вход координаты точки и определять как эта точка лежит относительно прямой. На вход: (0;7) (-10;-20) (-4;20) На выход: на прямой ниже прямой выше прямой
>>1914086 Ну писать игори на плюсах всяк интереснее, чем систему скидок и программу лояльности для магазина пятёрочка. Ещё тырпрайз имеет неебически долгий жизненный цикл и часто подразумевает копание говна 15 летней давности, написанного немецкими дидами (мы как-то у заказчика спросили за тех, кто систему писал и там ответили, что один на пенсии, а второй умер, кек).
Visual Studio не может найти файлы в папках, внутри каталога C:\Qt\4.8.6\include. То есть файл QDialog будет находиться в C:\Qt\4.8.6\include\QtGui, но несмотря на то, что в Include Additional Directories стоит C:\Qt\4.8.6\include;%(AdditionalIncludeDirectories), он ее не найдет. Это как-то можно исправить?