Это копия, сохраненная 20 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
⚹ https://github.com/sosachbot/cppthreadhat/wiki
Ответы на вопросы:
⚹ https://en.cppreference.com/w/
⚹ https://www.cplusplus.com/reference/
Для указателей: ⚹
Прошлый (1200+ постов, вы серьезно?) тред: >>1936311 (OP)
С++ лучше чем Раст.
Кстати, второй пик - фотошоп, если хорошо вглядеться, сразу поймешь. Знаю, трудно поверить, но это так. Этот шиз - православный, у него по всей комнате иконы, библии и прочее, а надпись не "кодинг - смысл моей жизни", а "христианство - смысл моей жизни", или что-то такое.
Пиэчпи лучше чем си крестик крестик
Но ведь плюсы небезопасны, сложны и без нормальной системы сборки и менеджера зависимостей. Сомневаюсь, что на нем пишут много нового кода. Хотя справедливости ради скажу, что равно как и С, этот язык рекомендуется к изучению ради того, чтобы понять программирование более глубоко, вручную затрагивая менеджмент памяти.
Ты приглядись там вообще три перекладины. Это такой древний шарп.
>Но ведь плюсы небезопасны
Ну так с++ разработчик это и не сойбой-зумерок, который наугад пишет код и срется, что там где-то какая-то память проебется.
>>1958856
>Но ведь плюсы небезопасны
А чем вообще опасны современные плюсы, когда все ебало в смарт-поинтерах? Явно не рисками утечек (кросс-референсы и в джаво-шарпе могут быть), или риском поюзать данные после того как они удалены.
Не приходит ничего в голову.
Не, ясно что всякая динамическая параша опаснее по определению, но чем нормальные языки безопаснее плюсов?
стоит читать, больно уж толстая?
Вот что меня вперло это аммераль по stl охуенно полезно и удобно все рассказывает.
Поинтеры и аллокацию вообще придумали чтобы зумерок обосрался. Это рофл такой.
Питонист ушел? Я так и не понял про предметную область. Без знаний основ банкинга или ракетостроения я мамкин ботаник что-ли? Азаза.
И без пойнтеров возможно обойтись.
посмотри на список CVE того же гугл хрома, который написан почти полностью на плюсах, и поймешь.
https://en.wikipedia.org/wiki/Language-based_security
>Using safe languages
>An approach to achieve secure low-level code is to use safe high-level languages. A safe language is considered to be completely defined by its programmers' manual.[4] Any bug that could lead to implementation-dependent behavior in a safe language will either be detected at compile time or lead to a well-defined error behavior at run-runtime. In Java, if accessing an array out of bounds, an exception will be thrown. Examples of other safe languages are C#, Haskell and Scala.
Короче кресты опять соснули у Джавы
>In Java, if accessing an array out of bounds, an exception will be thrown.
Не очень понял. В плюсах экепшн тоже кидается, если я через .at() получаю элемент. В чем преимущество джавы-то? В том что ты не разобрался? В том что на ней даже не слишком способный и не умеющий читать человек вроде тебя может работать? В этом вся безопасность?
Отвечаю. Сравнивается С++ и Java, а не Java и C#. Про C# в последнем предложении написано.
И да у меня плохо со чтением.
Агда какая нибудь.
Безопасность типов. Сдал на троичку и могу идти.
почему иногда синтаксис пространства имен совпадает с синтаксисом классом (че? пример дальше)
почему я могу написать
class A
{
static void foo() {}
}
int main()
{
A::foo();
}
или типа вот это вот std получается тоже класс? или как это?
>std получается тоже класс?
нет, это неймспейс
>почему иногда синтаксис пространства имен совпадает с синтаксисом классом
А хули тебе не нравится? У тебя функция static, она, считай, к классу "A" имеет чисто декоративное отношение. "A" для нее не более чем неймспейс.
мимо-сеньер-из-нвидии
Я написание батников студентам аутсоршу за гроши. В каком-то смысле код небезопасный изначально.
Дак ладно нвидия. Ну упадет драйвер, ну встанет, хуй с ним. Никто не умрет.
Я вот когда собес недавно в одном банке проходил (название пять не скажу, красный логотип, начинается на А), мне задали вопрос:
int a = 0;
int b = 0;
int c = 0;
int d = 1;
if(a == b == c == d){
...
}else{
...
}
-Что не так с этим кодом?
-[думаю, потом рассказываю] ... А зачем вы это спрашиваете? В продакшне подобного кринжа никогда не встретится
-Вы не поверите, буквально вчера убрал это из продакшна
Кек душнила
>Вы не поверите, буквально вчера убрал это из продакшна
Они подбирают народ не умных, а тупо фиксить баги.
Хуя диванон.
А что нужно исправить? Я долбаеб, нихуя не понял.
Очевидно, что значения a,b,c,d не меняются, сразу после их обьявления и инициализации идет проверка на условие, которое никогда не сработает, тогда нахуя городить условия, если можно сразу писать код, который идет после else?
>>1959138
Альфабанк, как я понимаю.
я короче сел разбираться в крестах, и наткнулся на friend
выглядит как полная ебала и нарушение ОПП
скажите плез, часто ли такая хуйня используется?
> выглядит как полная ебала и нарушение ОПП
Как он нарушает ооп?
> скажите плез, часто ли такая хуйня используется?
У меня - не часто. Но знать надо.
>Я долбаеб, нихуя не понял.
Там одно сравнение интов превратится в бул и остальные инты видимо неявно приведутся к бул и будет уже хуита на выходе.
Но я сам долбаеб.
> нарушение ОПП
В крестиках много странных решений, не вписывающихся в концепцию ООП, например, приватное наследование. Так что забей.
>сокрытие E инкапсуляции
>Е - это типа принадлежит
Вместо того, чтобы написать одно слово, ты написал четыре. Настолько ли выгодная замена?
По-моему все нормально с кодом. Это же переменные. Единственное что плохо это то что результат при всех нулях и всех единицах будет одинаковый.
Сокрытие может являтся частью инкапсуляции в некоторых реализациях. В классическом ооп, инкапсуляция никак не связана с сокрытием. В том же петухоне можно свободно до приватных членов достучасться.
> херли ООП в крестах ногами пиздят
Да везде пиздят. "Каноничное" ООП только в смоллтолке и руби, но это хуйни без задач.
>результат при всех нулях и всех единицах будет одинаковый.
Если взять в расчет, что это верно, то там так и нужно же, чтобы все переменные имели одно значение. Если бы были нужны только единицы то ебанули бы вот так if (a == b == c == d == 1)
> в петухоне можно свободно до приватных членов достучасться.
типа из-за рефлексии? ну в питоне есть такие "соглашательные" моменты, которые нужны только для прогеров
в целом такой же проблемой и си шарп страдает, насколько я понимаю
Я в том же направлении тупил, мне сказали "ну представьте, что a, b, c, d меняются, и мы к ним как-то в рантайме пришли, если вам так проще". В итоге когда дошло, выставил себя тугодумом, и мне походу не дадут elite bank job.
>>1959156
Бинго. Я обосрался с примером, там, по-моему было что-то еще в этой цепочке говна, но мне просто больно и травматично вспоминать.
>>1959164
Вам, походу, перезвонят, но отличная попытка
Это задачка на то договорятся ли аноны каким концом палки ебать жопу ОПа. Если все выскажутся за один и тот же варик, то условие выполнится.
Сразу проигрыш заиграл из Аншлага. ТууууууууТууууууууТуууууууу тутуту ту ту тут уту
Рабочий ротешник.
>А там нужно было рабочий вариант предложить?
Ну смотри, рабочий вариант это вариант, делающий то, что подразумевалось.
if(a == b == c == d)
заменить на:
if((a == b) && (b== c) && (c == d))
С этим нет проблем.
Я не знаю, ты ли это, но тут есть новичок в треде, до которого не дошло пока, объясню ему. Представь, что у тебя, допустим:
if(0 == 0 == 0)
Выполняться это говно начинается слева направо, первое (0 == 0) возваращает true. Теперь у нас
if(true == 0)
0 приводится к bool (false), так что мы получаем
if(true == false) => NYET
А при взгляде на конструкцию
if(0 == 0 == 0)
кажется, что "ну да, нули между собой равны, значит это условие выполняется".
Понял? Красавчик.
>Я не знаю, ты ли это, но тут есть новичок в треде
Нет, не я. Я просто хотел спросить у ананаса про собеседование на должность elite bank job. Как оно там проходит, нужно ли рабочие варианты предлагать, либо просто ошибку найти.
Красавчик false и 0 это не даром одно и то же.
Ну тут рабочий вариант настолько легко написать, что его даже не было смысла спрашивать, от меня требовали только распутать макароны.
Но в целом да, просят что-то исправить. Мне запомнился первый вопрос.
class A{
char * data_;
int size_;
A(int size): size_(size){
//аллочится data_
}
...
//типичная строка короче + еще какие-то мемберы, левые
}
Далее пример, где это говно инициализирутеся словом "Hello" и копируется. Я говорю, ну блядь, ну так дело не пойдет. Копи конструктор нужен, чтобы такое скопировать. Или, лучше, заменить мемберы, мимикрирующие под строку на std::string, тогда конструктор копии не будет нужен.
На что мне дед солидно возражает:
"Извините, молодой человек, а что быстрее работает - массив char'ов или string? То-то же. Значит, здесь массив char'ов не просто так, не думаете?"
У меня глаза упирался в это "Hello" и в голове крутилось "small string optimization", но я был настолько раздавлен авторитетом деда, что решил завалить свое ебало.
Быстрее будет работать то, в зависимости от того,куда элементы будешь вставлять.
А как можно качество и степень владения оценить?
Ghjbuhfk
Проиграл
А, кстати говоря, дефолтный копи-конструктор же скопирует поинтер, который куда-то в дата-сегмент смотрит, если константой инициализировали. Соответственно, работать будет.
Не, тогда оригинал и копия в деструкторе (который я не писал, т.к. думал что понятно что он подразумеваются) ёбнут один и тот же указатель дважды.
Хотя, возможно, я просто тебя неправильно понял, и ты подразумеваешь какое-то хитрое использование UB
Будет-будет, если там дестпуктор пустой.
Да, я пропустил кусок "//аллочится data_" в исходном посте.
Думал, просто указатель из конструктора внутри сохраняется, а там только длина.
Отмена, короче.
А я люблю пока никто не видит писать обратные циклы так:
for (size_t i = vec.size(); i-->0;)
+ это еще и нормально работает с unsigned
>а что быстрее работает - массив char'ов или string?
Смотря кде.
Если этот чяр будет всюду в коде приводиться к стрингу, то нахуй он нужен такой "быстрый".
Ну мое "смотря где" выражалось в small string optimization.
Если залезть в basic_string.h в том же gcc, то под капотом у строки union:
{
...
enum { _S_local_capacity = 15 / sizeof(_CharT) };
union
{
_CharT _M_local_buf[_S_local_capacity + 1];
size_type _M_allocated_capacity;
};
...
}
т.е. динамически память начинает выделяться только в том случае, если строка длиннее 15 символов.
А его сраный массив чаров пиздует динамически выделяться (в конструкторе этого класса) даже для сраного "Hello", таким образом делает две алокации, пока вариант с std::string делает только одну.
Я прав?
Ну в плюсах есть разные способы пролезть без мыла.
Кроме friend есть ещё mutable или паттерн public Morozov.
>friend выглядит как полная ебала и нарушение ОПП
С помощью друзей иногда паттерн Visitor делается. Допустим, тебе надо сериализовывать классы, не имеющие общего наследника. Тогда просто берут и делают Visitor их другом, чтобы можно было из него достучаться до всех private данных.
Профильное университетское образование.
>friend выглядит как полная ебала и нарушение ОПП
Да, выглядит. Но только в том случае, если это слово написано. Смекаешь?
cpp - мультипарадигменный язык, а не язык который делает ООП за тебя.
Хочешь "хардкорное труЪ ООП" - не используй ключевое слово friend.
Уж извиняйте, до больших дядей из теории категорий и гомотопной теории типов не дорос ещё.
Матан: 4. Линейная алгебра: 3. Теория вероятностей: 4. Экономико-математические методы: 4. Задавайте вопросы.
Я в том плане, что всё сводится к алгебре и теории чисел.
Есть же ещё матан, функциональный анализ, дифуры, мат физика, дифгем, дискретный анализ, теорвер, экстремальные задачи, теория управления, и ещё масса разделов с которыми плюсовики пердолятся.
По набору похоже, что в твоём вузике математика идёт в качестве бонуса и все оценки надо делить на 2. Ну кроме экономики (кстати, что туда входит?).
Массив чаров нахуй не надо аллоцировать, смол стринг оптимизейшн это когда известен размер строки, то есть используем статический массив под размер. Ну или в функции получаем указатель на уже собранный кем-то массив.
Туда входит то, что в твоем "вузике" заменяется совковой сверх теорией, писаной на докторской колбасе в клоповой шаражке.
>Я финитист и не верю в анализ
Как можно не верить, что между 0 и 1 существует бесконечное число чисел? Если это не так по твоему, финитист мамкин - так докажи обратное, лол, назови максимально близкое к единице число. Финитист он, ебать, без пруфов хуй ты простой.
Пилю небольшой пет-проект, связанный с инфосеком (нет, не антивирус). Рантайм перформанс важен. Я высрал какой-то индивидуальный способ обработки ошибок, не знаю насколько вообще это норм. Короче, я использую исключения только в конструкторах, все остальное возвращает std::optional возвращаемого значения или кода ошибки. Есть ли смысл так заморачиваться? Или если я уж использую исключения хоть где-то, то не имеет смысла маняврировать? Все методы обозначаю ключевым словом noexcept, разумеется (у меня кидается эксепшен только из конструкторов).
>он не знает разницу между потенциальной и актуальной бесконечностями
Лмао, мы тут с Брауером и Мартин-Лёфом угораем над тобой
Ладно, хватит нам шитпостить
Может стоит замерить реальную производительность с включенными исключениями без опшионал, и с отключенными исключениями с опшионал?
Это монадическая обработка ошибок, как в расте или хаскелле. По сути ты везде возвращаешь Maybe a или Either err a вместо просто a. Насчёт скорости - фиг знает, зависит от конкретной имплементации исключений, где ты бросаешь и воли левой пятки компилятора.
>рее, прочли бы пару книг по X хотя бы рее
>читаешь пару книг по X
>РЕЕ ВОТ ТУПЫЕ ПРОЧЛИ БЫ ПАРУ КНИГ ПО Y ХОТЯ БЫ РЕЕ
чукча не читатель, чукча писатель
так всегда и было - самые "производительные", те кто высирают больше кода, никогда не читают книг и чужого кода
Да ты упёртый, я смотрю
Ты просто компактный - ограниченный и замкнутый.
Может он просто напиздел?
В Германии десятку нельзя поднимать, если ты не какой-нибудь СЕО-наебщик. Там налоги такие, что чем больше получаешь, тем больше налог. Даже пятерку после налогов практически нереально получать на любой позиции. Если взять зп уровня гугловского сеньера-помидора, например, в 100к евро, то у тебя налог будет процентов 50, как минимум, и будешь оставаться с меньше 5к евро в месяц.
Ну, далеко не во многих, но в некоторых обгоняет. Потому что JIT дохуя умный и умеет видеть часто используемые куски кода и применять к ним оптимизации. И еще хитрые манипуляции с памятью, чтобы все объекты в куче лежали рядом друг с другом, а не хуй пойми где - такое тоже джава умеет.
Ну в основном, производительность кода на плюсах ограничивается программистом, верно?
Плюсы тоже так могут же. Просто всем лень ебаться с profiler-guided-optimization.
Блин, здорово. Спасибо за развернутый ответ.
А почему тогда в хайлоадах всяких C++ все еще популярен достаточно? Просто потому что кабанчики у руля не шарят, да и человеческий труд плюсовиков подешевле?
П.С. В общем, адекватный тип оказался, расписал, что да как.
>Если у тебя анбоксед данные, то какая разница, плюсы там или хуюсы, один и тот же код на выходе получится (плюс анбоксед структы\валуе тайпс еще щас завозят). В ирл коде у тебя жит будет хуярить по реально исполняющемуся коду, так что за счет динамических оптимизаций можешь еще и выиграть, если крестомакаки говна въебали. Но на самом деле всем похуй, ну понятно что ты соснешь с гц если будешь аллоцировать как черт, и понятно что числодробилку ты на жвм не будешь делать, но так блядь люди обычно опердени пишут, а не числодробилки.
Ну я вижу это так. Типа есть три вида производительности: latency, throughput и memory-footprint.
Джава в прямых руках может обгонять кресты по пропускной способности, но вот минимизировать задержки и увеличивать предсказуемость времени реакции ты заебёшься. Потому что сборщик мусора и прочее говно.
Понял, спасибо.
>чел из Бауманки и когда он сказал что зарабатывает десятку на дата саенс интервьюер оторопел
после вузика тоже за десять тысяч начинал работать, но это было в конце нулевых
>Я вот думаю, чем конкретно занимался
складно пиздеть для извлечения лулзов над ньюфагами, как те челики в "войти в айти" тредах в /b
да похуй
часто важна не общая производительность, а скорость реакции, реалтайм возможности
понятно что на ос с вытесняющей многозадачностью у вас будет псевдо реалтайм, но все же
именно по этому игры и пишут на с++ как привидл до сих пор
>в хайлоадах всяких C++ все еще популярен достаточно?
скорость отклика
на шарпе и явке тоже можно делать htf, но нужны особые трюки
полно статей и видево на эту тему, так чтож здеся можно и не расписывать
>так чтож здеся можно и не расписывать
Да лучше ответь на такой вопрос:
Если у меня болит очко но я не пидор это значит ночью ко мне приходила Попобава?
Потому что снала был С
агрессия
уже
Опыть школьники напиздели короче.
Угнетать и порабощать посредством шаблонной магии.
Страуструпа пробовал, не зашло.
Но ведь... Это же классика, это знать надо!
В этой книге, и во многих других, первые, положим, 50 страниц посвящены предисловиям работе со строками. Это очень актуальная и важная часть работы программистом на C/C++, или это только для обучательных, наглядных целей?
Надо знать только какие команды вводить в терминал, чтобы деньги платили
ВЫБИРАЕШЬ ЯЗЫК СО СБОРКОЙ МУСОРА
@
ОТКЛЮЧАЕШЬ И ВСЮ ДОРОГУ ПЕРДОЛИШЬСЯ С УПРАВЛЕНИЕМ ПАМЯТЬЮ
А ведь это плюсовиков обычно обвиняют в борьбе с собственными инструментами..
Не понимаю этого, что кресты якобы нельзя начинать учить с сишки. Можно. Одно дело, когда ты только начал учить кодинг, и совсем другое, когда много лет пишешь на сишке и имеешь соответствующие привычки и вдруг решаешь перекатиться в кресты.
Едкий K&R уже пустил корни в твоём мозгу, от него нельзя избавиться, не убив себя. Твоё сознание уже в его власти, и ты можешь это даже не осознавать. У тебя нет выхода, мой друг, тебе придётся писать прошивки к китайским микроконтроллерам всю оставшуюся жизнь
Нет в нём ничего едкого, просто хороший учебник по сишке, лучший для старта в программировании. Именно его надо читать в начале, а не всратые sicp.
Виндертон это дворовой вафлер, который даже не смог себе ник придумать и чисто копирнул синглтон, предварительно въебав говна, поэтому молучилось виндертон типа он ещё и невъебись англосакс. Но он учился по программе компьютер сайенс, которая - чистой воды наёбка. Считай в классе информатики сидел вместо того, чтобы софт писать.
т.е. он нигде не работал и не писал код для больших проектов, а только начитался книжек и начал продавать курсы, пересказывая их содержимое?
Точно не скажу, но если бы он вкатился, то врятли бы его так чмырили. Он еще продавал программы обучения, но люди жаловались что они оказались одинаковыми. С другой стороны это возможно от зависти. С другой стороны как общеобразовательный контент почему бы и не посмотреть, если время есть. Но его нет.
Нет, полностью выключить GC в джаве нельзя. Можно только ключами при запуске добавить больше памяти, чтобы гц запускался не так часто.
Из бауманки капчуешь? Что посоветуешь учить для написания софта? Мне кажется там больше надо про железки знать, чтобы использовать его по максимум. А остальное для веебонов, если конечно не оборонка где про ракеты надо знать и баллистику скорее всего.
Вроде бы он продавал всем некий индивидуальный план изучения какой-то хуйни, и потом выяснилось, что план на самом деле один и тот же.
Си, или плюсы, или может даже шарп? Для каких целей какой язык лучше? Поясните мне пожалуйста!
Ну блин, я знаю что на си больше по системной разработке, на шарпе делают именно прикладное по ну и игры кодят, поэтому и спрашиваю
++ и # это все костыли для недоязыка микроконтроллеров
Что? Ты что не видишь в шарпе 4 плюса? Это больше чем в плюсах в 2 раза! И больше чем в C в миллиарды-миллиарды раз
Шарп это клон Java. Но Питон её съел. Тут и сказке конец.
Это твой тред потёрли?
Чисто по логике это это все постинкремент и значение выражения всегда С, т.е. нет никакой разницы.
Можно. EpsilonGC
Получается, у A должен быть публичный ключ от "правильного" B? Чтобы когда устанавливался коннект, B мог доказать, что он не верблюд, и у него есть приватный ключ от этого публичного.
Своего рода да. Поднялся на видео разных.
если к машине есть физический доступ у злоумышленника, то не сделать вообще ничего. Все дампится/дизассемблируется и так далее
Я предпологаю, что в протокол обмена между A и B будут входить следущие две команды (и другие, но пока не интересные): обновление программы на компьютере B, и выполнение переданного exe. В первом случае можно обновить мою программу на совершенно другую, а равно удалить мою. Во втором вообще все что угодно возможно
>Есть ли способ посылать компьютеру B команды так, что бы никто посторонний этого сделать не смог.
конечно, есть, ебать
для этого и есть "цифровая подпись" в десятках и сотнях программных реализаций
что то подробней писать лень ибо нехуй
мимо безработное хуйло
Я не просто плюсовик, а шаблонный метапрограммист. У нас далеко без лямбда-куба не уедешь.
Если это все, то подписывай команду на А и проверяй на Б. Если не всё, хуже не будет.
This, товарищ изобретает ssh и scp.
clang++ -I/usr/local/include/c++/v1 -nostartfiles \
--sysroot /путь/до/кастомной/libc \
-D_LIBCPP_HAS_NO_THREADS
Что мне больше всего нужно - std::function, std::map, список там, вектор, все работает, но просит буквально пару каких-то деструкторов ошибок, я их просто пустыми сам пишу, чтобы приложение собралось. Если попробовать использовать std::hash_map, то еще хочет какой-то метод поиска следующего простого числа. У меня есть кастомная libc, но такой libc++ (она ведь здесь нужна?) у меня нету. Но практически все, что нужно, работает. Я по каким-то подводным граблям хожу?
А что может случиться? Без hash_map ну хуй с ней, обойдусь. Код пары деструкторов скопирую из исходников libc++. Что может произойти-то?
короче я вот вуз закончил (в августе), но промышленный опыт проганья на крестиках есть - пилил для встраиваемых софтину
короче хочу запилить пет проект, который можно было бы назвать "математическим". Какую-нибудь числодробилку или что-нибудь такое
Хочу а) прокачаться, б) выложить дерьмецо на гит и пойти крестовиком работать
Что посветуете написать? А то можно напидумывать "убийц eigen-а", но толку то, хочется что-нибудь реальное, но не донное
подскажите плез
Напиши цифровую подпись на эллиптических кривых
С длинными числами 128 бит, 256 бит, 512 бит, етц.
Создать контекст
Подписать
Проверить подпись
Там есть где развернуться и в плане плюсов (темплейты, оператор оверлоды для математических операций) и в плане математики
звучит охуено
спасибо)
правда выглядит пизда сложно, это сколько по времени минимальный функционал писать можно?
Если опыта мало, то за месяц-два сделаешь
Если будешь долго тупить с математикой, то за два-три
Но в целом не особо долго
Можно и дольше, если прям допиливать напильником и хорошо оптимизировать
Желательно новую (а не с deprecated)
Желательно русскую
У Липпмана более полное изложение, но есть один фатальный недостаток - упоротые задачки отнимают очень много времени.
"упоротые" - это, к сожалению, не значит задачи повышенной трудности с неким челленджем. Это просто бесполезная, избыточная мозгоебля.
>А что вообще за кейс?
Приложение/я, которое через короткое API будет работать на очень отличающихся платформах. Степень отличия платформ - ну вот на данный момент есть POSIX, WinAPI и WebAssembly. Первый вариант дает возможность отлаживать код в удобной среде, условно там arm-интринсики можно отлаживать на Raspberry Pi вместо чудовищной андроид-студии. Ну и в том же браузере тоже все плохо с отладкой крестов пока что.
текстовый файл содержит список из 10 студентов и их оценки по трем предметам
Содержимое файла:
в первой строке находится общее количество студентов;
в каждой последующей строке находится ФИО студента и три целых числа (оценки);
данные в строке разделены пробелами, а оценки варьируются в диапазоне от 1 до 5.
На экран выведите ФИО студентов с оценками в порядке убывания их среднего балла.
Как считать цифры из файла с учетом того, что мне нужно не все цифры, а только три цифры после имени каждого студента..
Вообщем я не пойму как найти имени те данные и считать их, которые мне нужны, а именно эти оценки по предметам..
я забыл написать, через массив чаров это сделать чтоли?
> Как решить задачу?
Элементарно!
Делаешь пандорический захват, лифтишь в монаду, потом строишь рекурсивную схему (здесь подойдёт зигохистоморфный препроморфизм) как монадический трансформер из категории эндофункторов, и метациклически вычисляешь результат. Любой второкурсник справится. А если делать на анафорических лямбдах — так задачка вообще на пять минут.
Виктор Пантелеевич это вы?
Микросовет: лучше напиши для начала просто программу для обработки информации, типа кодер-декодер Хаффмана. Хемминга, Рида-Соломона. Без разницы. Убедись, что получилось не говно. Опционально - распараллель. Это позволит тебе отточить именно "плюсовую" часть. А потом уже пили свою цифровую подпись, с полной концентрацией именно на предметной области.
>выложить дерьмецо на гит и пойти крестовиком работать
Как вариант, можешь сделать форк gcc, где true и false заменишь на cringe и based, тебя сразу же какой-нибудь блокчейн-стартап к себе заберет.
>Напиши цифровую подпись на эллиптических кривых
в россии свободная разработка запрещена законом
получай разрешение от соответствующих органов, сначала
>>1961788 имеешь ввиду, что для начала это сильно сложно, да? сложная математика и пр
в целом, у меня нет пунктика насчет именно эцп или криптографии - можно что угодно, главное чтобы какой-нибудь неплохой матанчик был задействован. Крипты у меня не было в унике - специальность другая. Зато норм с линалом матаном и прочей, общеинженерной математикой
Так что если ты что-нибудь посоветуешь, то буду благодарен
>>1961889
не очень, а в чет проблема?
сам то такое сможешь написать? хули человеку советовать дичь всякую
сказал бы ему еще матлаб написать
ну а чо, математика ыыы
мимо
Я писал (по гайдам и статьям). Если челу нравится линейка и физика, то самое то.
Если не трогать гост и не претендовать, что ты скзи, то, вроде, закон не запрещает
Хотя вот и просто в опенсорсе реализации гостовой криптографии лежат и никому не мешают
Короче, нереально тут на бутылку присесть
Готов сделать за 500 рублей. Оплата после работы
Говно без задач еще бесполезнее геймдева лол.
Лучше бы пиздовал в какой-нибудь машин-лернинг. Потом выебывался бы, что с нуля всякие там перцептроны писал для лулзов.
Не понимаю, зачем тебе
class A : public QMainWindow
{
...
void foo();
...
};
void A:foo()
{
...
if (condition)
void();
else
QmessageBox::warning(this, "Warning", warning_str);
}
Написать эту программу.
Нет не я, но я сейчас перечитал посты выше. Походу ssh то что мне нужно. Пароли от ssh невозможно же спиздить?
Странный реквест.
Ты смотри, куда хочешь устроиться, начинай дрочить предметную область и реализуй что-то по пути.
Смысл тебе реализовывать там крипто-хуйню какую-то, если пойдешь потом круды писать или еще что-нибудь левое абсолютно?
Очень.
Используй ключ
>в опенсорсе реализации гостовой криптографии лежат и никому не мешают
ее сделали люди что работали на фирме, у которой были соответствующие лицензии и разрешения
ананасы подскажите новичку
вот делаю я всякие задачки, да интересно да нравиться, недавно пилил базу данных
во всякие qt, openGL и так далее вкатываться пока не хочу, да и рано
но хочу уже делать какую-то графику, а не выводить все в консоль
вот например свою же базу данных выводить в красивое окно 8)
можно ли это сделать на чистом си? я понимаю, что можно но насколько сложно это и с чего мне начать, я даже не знаю куда копать просто
>машин-лернинг
Говно без задач еще бесполезнее ИИ лол.
Лучше бы пиздовал в какие-нибудь Остапы Бендеры. Потом выебывался бы, что с нуля всяких там лошков кидал для лулзов.
Используй glut или sdl, это самое простое и портабельное.
Не смешивай графику и графический интерфейс (GUI). Второе работает поверх первого, но задачи и соответствующие либы там совсем разные. Хочешь ты именно гуй, а значит, glut/opengl/sdl/sfml/etc тебе не нужны. Создание гуя - задача нетривиальная, и просто там может быть только с васянскими либами с гитхаба вроде nuklear, но проблем с ними не оберёшься. В чистой сишке дефолтом принят GTK, но он тоже непростой. Лучше попытайся потыкать Qt, вдруг он пойдёт проще, чем тебе кажется, там даже кода много писать не нужно, перетаскиваешь компоненты мышкой на форму, пишешь обработчики, и всё. Талмудов на 1000 страниц в начале не нужно, хватит даже старых видосиков на ютубе.
Ты ничего легче, чем qt, не найдешь для гуи. Не то, что легче, ничего похожего вообще нету. Винапи разве что, там какой-то конструктор гуи в вижуал студии есть вроде.
>верно?
Нет, я прост хотел скозать, что
>машин-лернинг
>Говно без задач еще бесполезнее ИИ лол.
>Лучше бы пиздовал в какие-нибудь Остапы Бендеры. Потом выебывался бы, что с нуля всяких там лошков кидал для лулзов.
И да, на сам деле ты отлично понел всю игру слов и даже уже в свои вариации пытаисся.
Ещё проще его базу данных отформатировать в хтмл и открыть в браузере.
Да хуле там, синтезатор речи втащить туда, чтобы говорил вслух, что там в ячейках записано.
Но делать это без MVC-фреймворка - неправильно.
Берешь кют, и таскаешь на окошко тейбл вью. Потом пишешь класс обёртку вокруг своей базы данных, унаследованный от кю абстракт тейбл модел, пишешь методы на количество строк, столбцов и какие данные в какой ячейке. Подключаешь модель к вью и запускаешь.
Лучше написать гуи на жс, а на плюсах оставить малую часть приложения нихуя, чем ебаться для одной кнопки писать десяток классов
Ага, лучше ебаться с биндингами, уебанским JS и его не менее уебанской экосистемой.
> десяток классов
Это не про кресты.
так суть моего вопроса как раз была в том, чтобы заполнить как-то пробел между крестами и фреймворками или как они там называются.
Вот я пишу на си, потом переходу на qt а там сразу строчку написал и тебе окно и все что хочешь, только цыферки меняй.
Тут как бы тебе объяснить, мне интересен сам процесс как это делается на более низком уровне, например создание пусть самого просто окна
Qt то понятно, там ничего сложного, успею еще вкатиться но и в ioenGL мне пока рано. Тут аноны советовали глут и т.д. гляну, посмотрю
Бери любой гайд по созданию простого оконного приложения на DirectX. Там тебе сразу покажут как дёргается WinApi для создания окна и обработки событий от пользователя. И там же будет показано как рисовать в графическом контексте. Это вот именно то, что под капотом в Qt / MFC / WPF и прочем glut.
Естественных для процессора таких представлений нет.
А вот software floating point такой может быть легко.
Как напишешь - так оно и будет. Да ещё и любой точности-разрядности.
Есть с фиксированной точкой. Типы unsigned int, unsigned long, unsigned long long, _m128i.
Возьми C++ Builder. Там формочки клепать - просто песня.
Потом, можно и графику выводить.
Он как раз создавался для разработки приложений с базами данных.
А если нету билдера, ты берёшь суровый WinAPI, изучаешь как создать окно, изучаешь GDI, как рисовать с его помощью, и рисуешь в окне.
А можно, например, в том же консольном приложении подключить какую-нибудь либу для создания графических файлов. И рисовать прямиком в них. Потом открываешь, смотришь.
Да в принципе не сложно, можно за неделю накидать proof-of-concept, потом ещё месяц допиливать
Логически существует. Для этого экспонента должна иметь диапазон [- n, 0]
>>1961755
Ну потому что у меня за плечами Страус, 1.5 книги по STL, 3 Мейерса и 5 полноценных проектов на гите.
>>196256
да не кипятись, лучше скажи, это у вас привычка с универа осталась, или вы реально просто отбитые наглухо ?)))
Boost.org только нашел но на английском (хоть там простенький) немного напряжно
За качество кода мне скажут звёзды на гите. Мне нужен именно вектор. Чтобы было интересно и перспективно. Пока глаз лежит на лоулевельную дрочь или OpenCV.
Короче, вопрос такой: с чего начать отладку этого куска кода?
Ну смотри https://github.com/Uvash/vulkan_test_project/blob/master/diplom/Render.cpp#L1028 Там немного грязно из-за моих попыток опробовать ту или иную идею.
Кратко
Начинаем с инициализации двух временных буферов. Один стандартный, второй расширяемый. Особенность расширяемого - выделено больше памяти, чем он пока занимает.
Далее я хочу добавить к расширяемому обычный буфер. И после отправить всё в 3-й буфер который будет слаться на рендеринг.
СКИДЫВАЕШЬ ЧАСТЬ КОДА
@
ОБОССЫВАЮТ, ТРЕБУЮТ ФУЛЛ
@
ВДРУГ ТЫ СТРОЧКОЙ ВЫШЕ ПЕРЕОПРЕДЕЛИЛ OPERATOR&=
СКИДЫВАЕШЬ ВЕСЬ КОД
@
ОБОССЫВАЮТ
@
ХУЛИ НЕ МИНИМАЛЬНЫЙ ПРИМЕР ИЛЛЮСТРИРУЮЩИЙ ПРОБЛЕМУ
Будь ты сам себе научрук - утвердил бы эту стену?
Пройди сертификацию как C++ программист. Есть аналоги, типа как у Оракла по Джаве или у Майкрософта по Шарпу.
Мне как-то за лишние методы в тестовом предъявили, что это не мой код и я его спиздил (код то мой был, просто я его из своего старого проекта вытащил и отрефачил).
Ну и ещё как-то написал само задание и тесты к нему. В самом задании придраться было не к чему, так эти черти начали мои тесты хуесосить.
Впредь вообще ничего лишнего не пишу.
Да никто не знает, что вкатиться - это устроиться на работу, а не начать учить.
Точняк, это я перепутал. Вот что бывает на гэпе.
Блядь, я лох, нашёл ошибку на 1059 строке . Я грузил одни и те же данные, а потом удивлялся а чего они удваюиваються.
Потому что это документ, подтверждающий твой уровень знаний плюсов. Лучшая самопроверка. А говорить о том, что ты знаешь плюсы, потому что написал пет проекты и прочитал книги, как по мне, не очень. Книги это такая вещь, где нет практически обратной связи в процессе обучения, поэтому процесс обучения не эффективен. А писать пет проекты ты можешь даже не зная, что такое указатель на таблицу виртуальных функций. А это одна из фундаментальных вещей в плюсах.
>А это одна из фундаментальных вещей в плюсах.
Implementation detail так-то
Вполне могу себе представить хорошего девелопера во многих отношениях, который этого не знает
Хотя, конечно, этого сложно не знать, если опыт есть
Как раз хотел тебе сказать, только ща глянул
Например, смотрел я сорцы одной оперсорс либы, там было нечто следующее: LIBNAME_API void sdelay_bochku();
Нахуя?
В MSVC экспорт имён в динамических библиотеках явный - тебе нужно прямо указать, что эта функция будет вызываться из других библиотек. Тогда она добавится в таблицу символов библиотеки и её можно вызвать. Поэтому при создании библиотеки к именам функций применяется атрибут __declspec(dllexport). А когда ты используешь библиотеку, нужно наоборот - импортировать имя с помощью __declspec(dllimport). Плюс такое же поведение можно эмулировать и в GCC с помощью -fvisibility=hidden. Все эти танцы с платформами и импортом-экспортом обычно и скрываются за таким макросом.
Опыт никак не влияет. В процессе разработки ты практически никогда не задумываешься над тем, как реализован динамический полиморфизм.
Задумываешься, когда начинаешь оптимизировать
Ничего из этого. Используй высокоуровневые графические движки, а они уже сами разберутся. Это низкоуровневое API, которое в чистом виде не нужно использовать, как и ассемблер/винапи.
Бля, у меня в городе 4 вакансии на кресты - 3 на опель и 1 на qt. И что делать?
Смотря зачем тебе и смотря что ты умеешь.
>>1963057
Блять, чел. Вот что, ты думаешь, пишут на OpenGL? Кубы рендерят, как по туториалам? Если ты не знаешь компьютерную графику, тебе OpenGL не поможет на работу устроиться.
Ну а если бы я в мухосране находился, я бы уж точно в геймдев не лез. С вероятностью 100% там какое-то говно распильное пишут.
Да если бы мухосрань. ДС Украинский... Ну и хули делать?
спасибо няша
вот что я нашел
https://www.gamedev.ru/code/articles/?id=4658
скажи пожалуйста, это то что мне надо?
> мне интересен сам процесс как это делается на более низком уровне, например создание пусть самого просто окна
Там мало интересного, больше гемора и рутины. Рамку окна для тебя создаёт ОС, и в ней можешь красить любой пиксель в нужный тебе цвет. А дальше либы для гуя, к примеру, для реализации кнопки тупо рисуют прямоугольник, внутри него рендерят текст, при получении от той же ОС событий клавиатуры/мыши они проверяют простыми формулами, что курсор попадает в прямоугольник и при этом нажата ЛКМ, и тогда они изменяют раскраску прямоугольника и вызывают твой коллбек. Аналогично с другими элементами управления. Плюс ещё несколько абстракций, например, чтобы поддерживать одинаковое соотношение расстояний между элементами. Причёсываешь, делаешь внешний API - вот и вся либа для гуя.
Вместо возни с низкоуровневыми DirectX/OpenGL можно взять SFML, это просто обёртка над всем этим, легче начать с чего-то подобного, ибо у директиксов-жлов достаточно высокий порог вхождения.
bit_cast
qobject_cast
(T)(&x)
Композиция
Дурак штоле?
А в чём порог вхождения то, матрицы-хуятрицы или ёбля с вертекс буферами?
Скорее с буферами, матриц в 2D будет мало. И стрёмное системное API ЗарегистрироватьКлассА(шИнстанс1, дескриптор1, ресурс1, ресурс2, хандлер1)
>Зачем С если есть плюсы?
Потому что на реальной работке с микрухам/ядром/етц придётся три раза выступать с презентацией, чтоб затащить в проект кресты.
Тру стори
Ну ты напишешь хуйню, запускаешь - тебе рендерится темный экран. Щито делать будешь?
Поддвачну. Хоть и есть тенденция переезда эмбед на плюсы, но сопротивление среди староверов просто нереальное.
> Зачем С если есть плюсы?
Пиздец, забыл же, что тут одни говноеды сидят. Вопрос обычно задают в другой формулировке "Зачем мне жирные говённые плюсы, когда есть божественная сишка? ".
Всегда считал, что сложность создаётся в первую очередь предметной областью, а сложность апи/языка/синтаксиса - это хуйня полная, ибо постигается на изи. Если бы мне только за то, что я языки знаю платили бы деньги, я б нахуй уже миллионером был бы.
Расскажите свое мнение про Database Abstraction Layer. Оно вообще надо, практичная вещь? Или же лучше не стоит косить под Джангу -- захуярить все исключительно под какой-то oracle database и не тратить время и силы на содерание этой хуиты?
И если DBAL - не нужен, то не сильно ли я пососу, если я в домашних проектах буду использовать Oracle Database XE (бесплатная которая)? А то потом Гейб (или кто там в oracle главный) наложит санкции на мой "hello jopa" проект, а у меня не будет возможности быстро пересесть на Postgres.
> сложность апи/языка/синтаксиса - это хуйня полная
Посмотрю я, как жопаскриптер за вечерок почитает про разницу в синтаксисе с крестами и сразу же станет senior baitoyob developer до первого сегфолта.
Что там с предметной областью? Вебмакакингом на крестах заниматься охуеешь, а на том же js можешь клепать хоть 10 проектов в неделю, хотя предметная область вроде бы одна и та же.
Ошибка: неправильное форматирование фигурных скобок
Там какие-то долбоёбы сидят, и актива нет
Поэтому я теперь я смело ссу на плюсоблядков, по ночам изучающих мув семантики и фьючерсы с премисами, а с выходом 20 стандарты и другое говно.
Так что, если мне нужен будет стак, я его напишу с нуля в отдельном хедере; если мне нужен будет класс я возьму структуру и прихуярю к ней указатель на таблицу функций; если мне надо будет дженерик... а дженерики в си уже давно завезли, так что сосите хуй
> Так что, если мне нужен будет стак, я его напишу с нуля в отдельном хедере; если мне нужен будет класс я возьму структуру и прихуярю к ней указатель на таблицу функций; если мне надо будет дженерик... а дженерики в си уже давно завезли, так что сосите хуй
Ору с этой маньки, которая изобретает велосипеды
Ты как та глупая мышь, которой дали в изобилии еду и самок, а она перестала размножаться и в итоге вся популяция сдохла. Также и вы, вас слишком разбалывали готовыми абстракциями, и вы верно, но медленно деградируете.
>деградируете.
Это ты тот ребенок, для которого мув семантики и фьючерсы с промисами - сложно?
>Так что, если мне нужен будет стак, я его напишу с нуля
Ты понимаешь, что написанный тобою стек будет недееспособной хуитой по сравнению с плюсовым?
Ты понимаешь, что твой стек не будет поддерживать dunk алгоритмы? Вряд ли ты partial sort писать станешь.
Ты понимаешь, что твой говно-стек, скорее всего, будет хранить в себе не объекты структур, а указатели на них? Из-за этого память будет аллочиться хуй пойми как. А если все же будешь хранить объекты структур, то не сможешь эффективно менять их местами для алгоритмов. Какая жалость.
>фьючерсы с премисами
Ты понимаешь, что из-за того что ты не можешь во фьючи, промисы, и, в общем, task-based многопоточку, ты сам выполняешь роль scheduler'а, и, очевидно, делаешь это хуево? И не говори что это не так. Это так, просто ты этого не понимаешь. Слишком наивный для того чтобы это понять.
Вопрос и ответы 2010 года. Как с этим дело обстоит сейчас? Компиляторы шагнули далеко вперёд, на арену вышел llvm.
Да хуй с ним, со стеком. Но вот хэш-таблицы возьмем. Вещь нужная? Безусловно. Я когда на сях писал, брал uthash и кайфовал. Но если смотреть объективно, вещь очень стрёмная, на макросах. А лучше и не сделать, язык такой.
Но в этом вся суть сишки, ты сидишь, как голодный дворовый пёс, тебе кидают какой-то огрызок, и ты радуешься ему. Зачем жить как голодный пёс, если можно жить как толстый лабрадор в белой семье с хорошим достатком на гавайях?
мимо три года в сишке, два года в плюсах
>если можно жить как толстый лабрадор в белой семье с хорошим достатком на гавайях?
А я давно говорю, что нужно двигать нахуй из плюсов.
> А лучше и не сделать, язык такой.
Зато с сишечкой я всегда уверен в быстродействии и знаю, где память выделяется и сколько. Тупо потому что нет оберток над обёртками оберток, которые компилятор может быть соптимизирует за час. И можно писать i++ не опасаясь, что это медленнее ++I.
Ты с серьёзным хлебалом заявляешь мне, что мне стоит перекатиться с 4.5к евро на 1к?
>Ты с серьёзным хлебалом заявляешь мне, что мне стоит перекатиться с 4.5к евро на 1к?
Ну дак там с людьми работа зато. Может, девственности лишишься.
>>1963502
>Зато с сишечкой я всегда уверен в быстродействии
ты и в плюсах можешь быть уверен в быстродействии
>компилятор может быть соптимизирует
ты можешь быть уверен, что твой понос из указателей компилятор не соптимизирует, это точно.
>i++ не опасаясь, что это медленнее ++I
Просто ноу комментс, автор даун. Ты понимаешь, засчет чего в плюсах префиксная запись работает быстрее? Можешь как-то сопоставить это с сишкой и отсутствием в ней референнсов?
И вообще, нашел о каких вещах переживать. Вангую ребенка, не работавшего в своей жизни ни дня.
Я думаю, если ты флексишь на харкаче своей зарплатой, тебе вообще ркн лучше сделать, дегрод.
Рантайм - это контейнер для процессов. А в процессах тхреды. А в тхредах фибры. А в фибрах корутиночки.
>Рантайм - это контейнер для процессов
А точнее? Просто везде какие-то непонятные формулировки. Типа процесса внутри процесса, или это какая-то песочница?
https://ideone.com/j3pAqn
На этапе компиляции уже известно, что тип color - анонимный enum. Почему оно не принимает green?
Нужно написать enum class Color{} вне структуры, и всюду подписывать = Color::green? А если пропустить class, то в глобальном пространстве имён будет мусор в виде green/red, потому что его нужно вне структуры указывать. Не понимаю почему оно именно так работает, вроде бы нет никакой проблемы, что у компилятора нет возможности предсказать что справа не идентификатор переменной, а может быть ещё и элемент перечисления.
Хуя ты меня приложил, ну давай по порядку.
>это ты тот
Нет
>фьючерсы с примисами, мув семантики
Я это привёл просто как пример плюсцовой фичи. И невыносимы они не от того, что сами по себе качественно сложные, а то, что их дохуя. И ввод каждой такой новой фичи увеличивает формальное описание языка в геометрической прогрессии. Приведу простой пример, вот в си например есть rvalue и lvalue, ничего сложного, все пользуются этими понятиями. Концепция c++ уже требует ввести prvalue, glvalue, xvalue, но всем похуй и на практике все всё равно оперируют понятиями rv и lv. Но это уже упрощение, и отдаляет нас от реального понимания языка. Короче суть простая и заезженная - язык сильно громоздкий и все его кто его изучают вынуждены его по-своему упрощать. И ты уже вроде как работаешь не с тем, что ты знаешь как свои 5 пальцев, а с каким-то срезами понятий и концепций, которые нужны тебе для конкретной задачи, но которые ты не понимаешь до конца.
>недееспособный стёк
Схуяли, недееспособный то? Да он будет простым, но он будет выполнять свою задачу, а больше мне от него и не надо.
>ряяя ниэффективно, ряяя аллочиться хуй пойми как
Иди нахуй, долбоёб, ты вообще понимаешь зачем нужен стёк? Чтобы быть стёком, ёб твою мать, и это его первостепенное предназначение.
Мб ты ни совсем понимаешь мой гоал, я ведь не говорю, что хайлоад бекенд надо писать на си, но чтобы велосипедить структуры данных, ооп, и твои таск бейсед потоки с целью изучения - си как раз то, что нужно.
> с целью изучения
Ну и нахуй было всё это высирать? Сказал бы сразу, что C для реальных задач в 2021 не годится, а велосипеды велосипедить и в крестах можно.
Если ты более-менее понимаешь lvalue и rvalue, то gl+pr+x values это литерали 8% информации. Которой ты можешь не владеть, если не пишешь импемент библиотеки.
Отличать xvalues от rvalue/lvalue? А зачем?
Тут та же самая ситуация, что и со ссылками на ссылки. Тебе не обязательно знать, что они есть, т.к. ты не можешь их явно объявить. Полезно знать про референс коллапсинг, но даже если программист на плюсах об этом никогда не слышал, он сможешь описать эти правила чисто интуитивно.
Суть твоего поста заключается в том, что "си лучше, потому что на си лучше учиться имплементить всякие дефолтные вещи". Ну охуеть - не встать. Нам похуй, чел, мы уже в это наигрались. Теперь вот работаем.
Рельные задачи тоже не всегда требуют передовых стёковых технологий, мамкин хайлоадер
Да мне похуй, лол, что тебе работать надо. Ты раб. О тебе даже беспокоится не хочется, не то что считаться с твоим мнением, просто подзалупная грязь. Я свободный человек, могу позволить себе заниматься искусством, си это как раз и есть искусство, наравне с живописью или даже выше, а твой совковый станок под названием c++ - это инструмент для управления быдлом по типу тебя. Извращённый, пошлый, но такой эффективный, такой манящий - твой гойский мозг просто жестоко объебали.
Ого, оказывается любители мамкиных борщей встречаются не только среди фп-питухов.
Справа от присваивания уже не та область видимости, что была слева.
У тебя green может быть объявлен в какой угодно другой структуре/классе, в том числе библиотеке, которую ты хрен знает где скочал.
Что прикажешь делать?
>На этапе компиляции уже известно, что тип color - анонимный enum.
Так он и известен конпелятору под именем A::color.
A:: можно опускать, пока ты находишься в области видимости A.
вот до этого сообщения хотел тебя поддержать, мол что сишечка во многом получше крестов
но после этого высера иди нахуй вообще
Нормально
Странно выглядит. Сомневаюсь, что там кого-то берут, а не просто вакансия висит, чтобы от кого-то отъебаться, начальства или хуй знает кого еще.
Еще и удаленка типа.
>могу позволить себе заниматься искусством
>завелосипедил стек
>искусство
Если что, все эти клоуны лезут с /g/ форчана, т.к. там 90% населения это вот такие вот edgy студентики, которые чтобы казаться прошаренными и своими (у тинейджеров есть такая нужда), поддерживают свой местный социальный консенсус: сишка круто, плюсы - bloat.
Комично смотрится, когда они тащут это сюда, а аналогичного консенсуса здесь нет. Вы старались.
>У тебя green может быть объявлен в какой угодно другой структуре/классе, в том числе библиотеке, которую ты хрен знает где скочал.
Я хочу использовать значения из enum только для полей одной-единственной структуры, потому что они уникальны для структуры и нигде больше не повторяются.
>>1963682
>в области видимости A
Ну походу я так и буду писать через A:: - просто можно было бы не писать, как мне кажется - лишняя избыточность какая-то. Это же анонимный enum, а не именованный.
В голос проигрываю с этого байтохудожника. Стэк он написал на макросах.
> просто можно было бы не писать, как мне кажется - лишняя избыточность какая-то
Ну и объявляй его тогда вне А. Дурак штоле?
>Если что, все эти клоуны лезут с /g/ форчана
Там русских от силы 1%. В основном там игробляди, которые рисят эзотерические дистрибутивы линукса и срутся про трансгендеров, большинство в программировании не понимает ничего.
>Я хочу
В общем случае у конпелятора нет способа понять, чего от него хотят, кроме как явно указать.
>Ну походу я так и буду писать через A::
Если у тебя проект небольшой и для себя, то крайне мала вероятность, что из-за енума на тебя вот прям обрушатся все те ужасы, которые пишут про глобальные переменные.
Тем более, что енум - это константы.
Прост пиши их капсом, можешь еще префикс добавить, вроде
CL_RED
CL_GREEN
мимо, но
я сейчас не крестоносец, к сожалению или к счастью
но вот было немного байтоебское прошло на си (еще в унике)
и я тогда чет задался вопросом, нашел на него где-то ответ в интернете и успокоился, но пруфануть забыл
ИТАК ВОПРОС
что лучше? дефайнить или енумы? где в каких ситуациях что лучше использовать?
Enum classes, т.к. typesafe + не засирает скоуп.
Просто enum'ить константы - плохо и для дедов там есть там какой-то один нормальный юзкейс, о котором я уже не помню
А define'ить константы - это не просто для дедов, это для дедов с альцгеймером.
ну просто миллиард дефайнов выглядит как говно
Qt не надо для вката.
Тебе нужен объем знаний уровня Страуструп + два Мейерса, чтобы найти работу на junior+. Сверху еще решить 25-50 easy задач с leetcode'а.
Если где-то с джуниора требуют Qt, значит там утилитарные навыки ценятся выше фундаментальных знаний, т.е. скорее всего это завод/НИИ.
Я всегда дефайню константы, ибо это тру way, во всех gnu утилитах используют дефайны (неспроста же) , значит и я буду. Для меня скоуп всегда был просто префиксом в имени константы, так что таких детских проблем не имею.
мимо edgy студентик
Попробуй static const(expr) внутри неймспейса, базарю, еще захочешь
>Enum classes, т.к.
Ну это совсем в стиле современного крестоблядства.
Не используйте new, т. к. вы можете позабыть про delete. Лучше вот вам 5 видов интеллектуальных указателей. И еще, чтоб уж точно ничего не забыть, вот тебе еще 15 видов инициализации.
Ш.У.Е.
>Или это на 30к требования?
Ты спросил про "найти работу", а не "найти работу на приемлимое количество денег".
Без опыта на нормальные деньги не устроишься, хоть ты выучи все фреймворки мира. Это будет никому не интересно + тебе не поверят.
Я побывал на ~15 собесах в своей жизни, на 0 меня что-то спрашивали по Qt. Не, иногда мелькали фразы, типа "ну да, есть там у нас Qt, немного там че-то хуярим, но в целом похуй".
Еще собесах на ~5 спрашивали про boost, но тоже не в контексте "пошел нахуй если не работал", всегда можно чем-то заместить такой опыт, допустим, опытом работы posix api. И это уже не на вкатыша.
И на всех ~12 собесах из ~15 дрючили по помниманию c++ и хороших практик (мейерсу).
Не, это всё понятно. Но я полгода геморрой насиживал за книгами и идехой не для того чтобы ещё столько же голодать.
Искусство - это Раст, современный и мощный, а твой прогнивший Си можно описать одним выражением - segmentation fault (core dumped).
А что ты предлагаешь взамен? Жрать говно, как это делают си-пердоли, имея в коде тонну UAFов, двойных освобождений и ликов? Пошёл нахуй, пёс, смартпоинтеры и RAII в целом - это лучшее, что есть в программировании.
>идешь устраиваться цпп макакой
>РЕЕЕ ФУНДАМЕНТАЛЬНЫЕ ЗНАНИЯ Я ЭЛИТА ДРОЧИЛ БЕСПОЛЕЗНУЮ ХУИТУ НА ЛИТКОДЕ
Ору. В нормальной компании, если ты посреди рабочего дня где-нибудь скажешь вслух я вчера задачки с литкода решал, обязательно найдется какой-нибудь сотрудник рядом, который расстегнет ширинку и нассыт тебе на лицо.
Искусством раст станет во времена наших детей. Сейчас это всё ещё сырой, неполноценный зародыш.
спорное заявление
очевидно что обладателю 17+ елды не нужно что-то там выдумывать, достаточно сунуть свою палку в тян и поработать минуты две как отбойный молоток и тян будет сверх-довольна
Тем не менее, мелкософты УЖЕ начали переписывать критически важный в плане безопасности код в шинде на раст, дабы покончить с нескончаемыми дырами в безопасности.
Почти во всех случаях лучше enum. Это код, а не препроцессор.
На дефайны не работают области видимости (ты задефайнил значение в функции - а оно почему-то и в следующей работает), они хуёво работают с множественными единицами трансляции, ide хуёво подсвечивают эти дефайны и так далее.
Дефайны просто более широким функционалом обладают, но с появлением constexpr от дефайнов точно стоит отказываться, так как никаких преимуществ не осталось (если ты просто константы задаёшь).
Тянкам больно принимать моего богатыря в коленно-локтевой, просят входит помедленее и не так глубоко
мимо обладатель 15-ти сантиметровой машины для убийства
растошизик, съеби
c++ и UI уже давно разъехались в разные стороны и на знание Qt всем глубоко похуй (UI может быть: web / wpf / qt / mfc / на графическом движке / что-то из java).
>столько же голодать
Не столько же, а пару лет.
>RAII в целом - это лучшее, что есть в программировании.
Вот двачую. Я тоже плюсы не любил и считал какой-то хуитой, пока до меня не доперло, что ресурс аквизишн это мать его инициализейшн. Андерстейшн? После этого все стало на свои места.
Летом поработал в какой-то говноконторе, писал с ними сетевую приложуху на сях под linux. Валгриндю ее - кромешный пиздец. Валгриндю плюсовый сервачок, где все на смартпоинтерах - мать его, какая же красота, и ведь ничего не надо для этого делать. Тупо почти ноль усилий, когнитивная нагрузка стремится к ковырянию в жопе, но не сливается с ней.
>мелкософты
Это явно не та компания на которую стоит равняться.
>покончить с нескончаемыми дырами в безопасности
Это не вина языка.
Вина. Неважно насколько ты крут в сишечке, но писать на ней безопасный код в проектах размером с гугл хром/ядро какой-нибудь ОСи - Н Е В О З М О Ж Н О. Гугл хром пишут отнюдь не подпивасные вкатыши, равно как и ядра всех известных ОСей, однако если ты зайдешь и посмотришь список CVE - ты охуеешь. И это не потому, что они конченные, как раз-таки нет, они одни из лучших в мире. Это тупо язык, который кладёт на всё хуй, и где конпелятор глупее табуретки, что чревато.
Именно! Это гениально потому, что это, считай, сборщик мусора с зиро оверхэдом! Это гениально, точка. И это главная фишка плюсов.
Таков удел мировых корпораций. Перейдут они на раст, ну и что?Миллионы мистеров роботов ищущих и эксплойтящих эти уязвимости мигом испарятся?
Не ебу и выяснять не желаю.
В реверсотреде уже паникуют. Уязвимости не исчезнут, но находить и использовать их станет сложнее.
Ну, то, что будет написано на расте, уже хуй взломаешь (разве что только логический баг, но у него, как правило, менее ебейший импакт), так как насрать в память не получится, а любой ансейф облизать уже в миллиард раз проще, если он вообще нужен. Так что да, испарятся. Но есть еще веб, поэтому мистер роботы после врыва раста перекатятся туда.
Си придумали жиды, чтобы через ошибки в работе с памятью юзать бэкдоры.
может тогда еще черный пояс по карате нужно получить, чтобы в плюсы вкатиться?
пару лет готовишься пару лет проходишь собесы пару лет въезжаешь
ЗАТО НА ПЛЮСАХ КОДИТЬ УРА Я КОМПУТЕР САЕНТИСТ
Дак в смысле? Тебе же сказали: три книги для вката. Три книги и ни капли больше. Для тебя это так много?
В плюсах с вкатыша спрашивают только фундамент, и в этом вся прелесть.
Если захочешь вкатиться в питон, с тебя спросят гораздо больше (в плане объема). Базы данных, апишечки, говно. Предметную область, в общем. А предметная область, как пизда, имеет свойство расширяться практически до бесконечности.
А тут три книги прочитать, сидя на толчке. Сложно ему.
>Пару недель читаешь книжки и идёшь в НИИ - всё, ты вкатился.
Вот жиза, так же начинал когда-то.
Но современным пиздюкам западло, они скорее будут сидеть, учить очередной не нужный ""фреймфорк"", чтобы дописать его для объема в никому не интересное резюме которое никто кроме ботов не откроет. В итоге через четыре года скажут "ну, я пытался", и пойдут работать в Пятерочку.
Лишь бы не пиздовать один-два года крутить гайки, подписывать Наташины схемы и заполнять акт приема-передачи комплюхтера; после чего устроиться на хорошую работу и жить как человек.
>>1963868
Возьмут с техническим незаконченным, либо с любым законченным (хоть на агрария).
Для кого-то это уже лесть.
Ты не понял, вкатыш значит чел максимум с пту.
Я не хочу гейдев.
>А какой-бы пет проект мне замутить?
Если с практической точки зрения, а не ради интереса -- никакой. Либо учись, либо пытайся устроиться на работу.
Тебе будут иногда предлагать сделать тестовое. Если тестовое не какая-то хуита (их собственная таска из продакшна, которую некому поручить) -- делай.
Если сделал, и самому нравится -- выложи на гитхаб. Вот и будет пример кода. Херка увидит, скажет, гы, прикольно, примеры кода есть.
раз уж ты сечешь
у меня вот 4 года опыта, но конторы сильно ебали и сил на пет проекты не было от слова совсем
херочке норм, если опыт работы без гита? или она одно слово выучила и сидит довольная?
Херочки подтекают от фронтовиков. Я вот когда на собес прихожу, иногда херочкам между делом говорю, что JS и react знаю, так они слегка краснеет и начинают сладко улыбаться.
Ну бля, я хочу на 100к сразу скакнуть. Так хоть какой-то козырь будет - я не тупо книжки почитал да курсы посмотрел а смог чего-нибудь да высрать.
ну тут по хорошему бы прицелиться куда хочешь
просто кресты сильно в разные степи применяются
зрение - это одно (и внимание там нужно уделять на определенные вещи)
серверы - другое
и так далее
Челики по 5-6 лет образование получают и им 100к не дают, а ты тут такой полгода книжки почитал.
всм 5-6 лет образование? типо реально есть те, кто идут в айти, не не осилив даже базовый курс информатики / матана?
просто лол, у меня вышка 6 лет, я работаю с 3 курса (4 года опыта)
и я парюсь, что не смогу пересесть на кресты
и типа это реально так, потому что конкуренция идет не с вкатышами с двача, а нормальными чуваками
то есть все это время в этом треде под словом ВКАТЫШ имели ввиду ЧЕЛОВЕКА БЕЗ ОБРАЗОВАНИЯ????
Думай что хочешь. Я сюда за идеей пришёл, а не за чьим-то мнением.
>херочке норм, если опыт работы без гита?
Да, если есть опыт, примеров кода (у плюсовиков) никогда не спрашивают.
Если работодателю хочется посмотреть как ты пишешь код, он либо запряжет тестовым (с опытом в четыре года не имеет смысла таким заниматься, имхо -- лучше на другую вакансию переключиться), либо же даст алгоритмическую задачу на собесе.
Наличие вылизанного гитхаба у чела с опытом наоборот странно смотрится порой, будто он доказать что-то пытается.
> Так я умнее студентиков.
бля чел, иди мимо плиз
вот все тупые, хуйней страдают, а ты один умный и красивый просек все и выебешь студентоту, да да
иди таблетки выпей
Есть вкатыши, а есть перекатыши. И они в разных весовых категориях борются (вкатыши со вкатышами на самом дне, перекатыши пытаются вытолкнуть вкатившихся).
прикольно
на самом деле, опять же, я питонист и изучаю с++ просто, чтобы понимать что там происходит (ну в cv иногда нужно и пописать на нем)
но вот этот момент меня всегда интересовал, так что спасибо)
Да, а ты что думал? Вкатыш это васян, который вчера раскладки кидал, а потом одумался и пока он ебется на складе в ночные смены 2 через 2, то в свои выходные он почитывает книжки и смотрит ютуб cs50 чтоб потом на собесах говорить, что он учил кудахтер сцайнс в гарварде.
>Наличие вылизанного гитхаба у чела с опытом
Нормальному разрабу незачем в гитхаб срать. Он своё время за деньги продаёт.
> А устроиться надо уже в течение 2-3 месяцев.
Ты какой-то заводчанин, который начинался /b/ и решил, что не ну блять, говно вопрос, вкачусь за 3 месяца и теперь ПРИСТУПАЕШЬ к ВКАТУ?
Ебать я ору. По 3 месяца уходит у топовых челов с топовым образованием и опытом, чтобы только по собесам походить и оформиться куда-то.
Нормально, если ты джун.
Такой вкатыш никогда в жизни в цпп не вкатится, даже в какое-нибудь самое донное мухосранское распильное говно. Ты о чём вообще?
ой а как же фраза великого БОБУКА (ну чел из радио-т, кто не знал (чел с жирненькой должность в яндексе, кто не знал)), о том, что, если ты в свободное время не программируешь - ты плохой программист?
Ты просто не знаешь кто такие вкатыши, все адекватные пацаны еще на первом курсе плюсы трогали так или иначе. Если ты вкатываешься в плюсы с нуля, то ты васян из пятерочки или школьник(красава бля, мое увожение)
Охуеть, не могу поверить, что я отвечаю боту.. Я за полгода употребил столько контента по сабжу что ни одному местному вкатышу не снилось. В то время как ваши крутые студентики ебутся вокруг одной темы по несколько лекций у меня запинки были только на отдельных моментах. Всё остальное - как по-маслу. Так что иди-ка ты нахуй, тупое хуйло тупого хуйла.
Щас бы слушать всяких infuence maker'ов и дивные рассказы про успех.
>Я за полгода употребил столько контента по сабжу что ни одному местному вкатышу не снилось.
Ебать ору с этой маньки.
Это тебе твоя мать-шлюха сказала, что ты что-то там знаешь? Сколько же таких чсвшных долбаебов по весне на собесах с грязными штанами оттаивает.
>Я за полгода употребил столько контента по сабжу что ни одному местному вкатышу не снилось.
Давай, скажи конкретно, что ты освоил и что умеешь. Чисто интересно, что из себя вкатывальщик представляет.
чел, выучить с++ != стать норм прогером
у тебя может и быстрее получается выучить с++ с минимальным количеством запинок
но студенты изучают не только это
они изучают
1) операционные системы (и все, что тянется за этим)
2) компиляторы (и все, что тянется за этим)
3) алгоритмы
4) матан
5) криптографию
и просто дохуища всего
вот у меня образование робототехники, у нас не было всего того, что я перечислил (кроме матана). И знаешь, этого вот не хватает от слова совсем
ну типа помакакить можно, но не дальше
либо самому задротить это вот все (но у тебя не получится, сорян)
>5) криптографию
Даже на ИБ факультетах не на всех достаточно глубоко. не говоря уже про типичные программерские специальности. Так что такое себе.
Хотя я вкатился в криптографию и проработал 4 года без prior domain knowledge
иб факи это про бумажки
>15-ти сантиметровой машины для убийства
сочувствую, достаточно скромный размер для двача, ведь тут почти у каждого 17+ елдаки
Нахуй все это не нужно, особенно додичные яндекс-стайл алгоритмы.
Все, что потребуется - быстро схватишь на лету.
>Хотя я вкатился в криптографию и проработал 4 года без prior domain knowledge
ну бля, этото понятно, если ты лабаешь к примеру инфраструктуру открытых ключей, типа сопровождаешь pki или еще подобные обвязки, то тебе не нужен сильный матан, потому что сами алгоритмы будут спрятаны внутри-внутри и будут сделаны специальными задротами и под лицензией еще
И правда не догадываюсь, зарплата падает на карточку, лычка сениора есть. А двачеры пусть меня считают кем хотят.
>образование робототехники
в союзе считалось что вот сейчас сейчас, чуть чуть чуть чуть и мы начнем ебашить АВТОМАТИЗИРОВАННЫЕ ПРОМЫШЛЕННЫЕ ЛИНИИ и тогда у нас наступит вообще технокоммунизм и все будет заебись
но случился развал совка и теперь у нас не только автоматизированных промышленных линий нет, у нас вообще нет станкостроения своего лол
а студентов типо учат робототехнике, да
Ну так макаки получают зп и меют лычки сеньёров. Почему тебе кажется это чем-то противоречивым?
Ах да, ты же тупая макака, не способная даже простейшую логическую цепочку выстроить.
ну нужно-не нужно
а на собесы очень ссыкотно гонять именно из-за того, что привык, скорее, матрицы раскладывать, чем деревья обходить
Потом ещё правки приходилось вносить под указанием товарища майора.
Лычка сениора в С++ - ряя ты тупая макака. Двачеры не перестают удивлять...
Обходить деревья - это какой-то мем-страшилка безработных? Литерали один раз в жизни спросили (в яндексе). Да и то, попросили просто проверить, корректно ли дерево составлено.
Если хочется подстраховаться на случай если спросят, то рекурсивный способ (Depth-first search) - это пять строчек кода и пять минут на понимание.
Итеративный способ, с использованием queue - капельку более мерзотный, там те же пять строчек кода, но семь минут на понимание и запоминание. Можно забить.
Хули тут страдать? Зачем этого бояться?
Я сомневаюсь, что где-то спросят что-то капельку сложнее, допустим, уровня "напишите алгоритм как добавить элемент в дерево". А если спросят, то можно сказать "бля, забыл имплемент, ну там короче надо в конец добавить, и потом поднять".
ну, мы не совсем про станки
скорее про роботы-пылесосы
слам там, облака точек
много матана всякого (ТАУ), механика (ну типа чтобы уметь СКОНСТРУИРОВАТЬ РОБОТА!!!!), микропроцессорка
короче железячники, знающие матан и чуточку умеющие прогать
в целом понятно, что выпускник хорошего вуза с чисто прогерской направленностью меня обгонит в поиске работы
но в целом, если вовремя начать догонять (я вот как раз с 3 курса это и начал делать), то более менее ок, жить можно и устроитьяс тоже можно
братанчик, я просто в жизни работал только "по знакомству"
туда к другану пошел, там подсуетился, когда из кафедры набирали в ООО Залупкин
так что именно собесов у меня ни разу и не было
я наслышан я только о том, что ыыыы спрашивают литкод
Ну я не знал, как это делать, когда в первый раз спросили.
Почитал потом - понятно и очевидно, но всё ещё не нужно.
Это пиздец
>Лычка сениора в С++ - ряя ты тупая макака. Двачеры не перестают удивлять...
Ты реально даунич?
Вебмака-сеньер становится не макакой в момент, когда получает позицию сеньёра?
Сейм, я тоже тогда не знал. А когда спустя пару лет решил пройти собес в яндекс еще раз, меня про деревья не спросили. Суки.
Задача в этот раз была, типа дан массив чисел, нужно его схлопнуть в упорядоченные диапазоны, т.е. в строку вида "1,3-5,8-11,13,16,20-24".
А в другой конторе дак вообще спросили "дан отсортированный вектор чисел, максимально эффективно удалите из него все дубликаты без использования алгоритмов из stl". Ну, заимплементить erase-remove идиому, короче. Блядь, что это вообще? А нахуя я учился?
Ты не умеешь разговаривать и читать, но считаешь себя не макакой?
>Что ты вообще несешь, макакоеб?
Ты утверждаешь, что лычкой сеньёра не может обладать макакой. Я тебе просто напомнил, что термин макака появился из веб-разработки и веб-разработчик по определению будет макакой вне зависимости от должности, сеньер или нет.
Причем тут вообще веб разработка в С++ треде? Я просто не понимаю, что ты несешь и что ты доказать пытаешься. Какой-то просто поток мусора
Относительно ОЧЕНЬ мало. Тру зиро оверхэда не существует в языках высокого уровня. А если ты жмотишь 3 цикла проца, то можешь стрельнуть себе в ебальник, используя new и delete вручную, как в 90ых.
Ну unique_ptr да, если бы на работе кто-то докопался за меня за оверхед в unique_ptr и сказал бы его убрать, заменив на new и delete, то я бы в переулке его шокером ёбнул.
А в shared_ptr нехуевый такой оверхед. Если через make_shared<>() делать, то поменьше, конечно, но всё равно каждый раз как от себя отрываю.
так блять это почему же?
кем же нужно быть, чтобы быть НЕ макакой? в кернел линукса что ли контрибьютить?
а почему же веб это всегда макака
там и асинхронщина и блять хайлоад
давайте примеры короче, заебали, что для вас НЕ макака?
Лютое байтоёбство, хуе мое там маняматика сложная, сцаенс епты, ток на плюсах, чтоб коллайдер не взорвался и еще на асме конечно! Тогда не макака
Твоя мать шлюха, только ты об этом не догадываешься.
Лично для меня не можешь в алгоритмы = однозначно макака. Вне зависимости от языка.
У меня знакомый нуб-питонист проходит собесы, ему дали задачу: дан список учеников с их оценками. Вернуть топ 20 учеников. Если баллы равны, предпочтение отдавать тем, у кого выше балл по информатике + математике.
Реши (либо расскажи как решил бы), и мы вынесем вердикт, макака ты или нет.
Я скинул эту задачу знакомым питонистам, и люди с 4 годами около-датасаенс стажа без иронии решают ее в две сортировки (причем, полагаю, неправильно -- ведь вряд ли sort стабилен по умолчанию).
А хуле объяснять тупорылой макаке, которая живёт в маниямирке, где компьютерсаенс существует сам по себе, наука существует сама по себе, а быдлокодер, научившийся за пол года говнокод писать - это сверхчеловек.
>Лично для меня не можешь в алгоритмы = однозначно макака. Вне зависимости от языка.
У нас тут яндексопетушок завелся. Че, на аренду комнаты зарплаты то хватает?
> где компьютерсаенс существует сам по себе, наука существует сама по себе
Это ты сам щас придумал
Ваще вся твоя хуйня пропитана соломенным чучелом
Не имею отношения к Яндексу.
Не можешь в алгоритмы = не умеешь эффективно решать проблемы = решаешь их как получится = определение макаки.
К слову, ты, кажется, макака. Я правильно понимаю?
Разговор начался с того, что макака написала, что ничего знать не нужно, на работу устроишься и по пути выучишь что-то, если будет нужно.
Это значит, что чел работает говнокодером в абсолютно ненаукоемкой области и умудряется игнорировать даже компьютерсаенс.
Что я придумал?
Ну ладно, был неправ, извини, я вообще мимокрок
Я мимопрохожу, ответишь?
>без иронии решают ее в две сортировки
А как надо было бы?
Я бы отдельно искал топ 20 учеников, просто забивая массив из отсортированных 20 элементов и подменяя если находится ученик лучше, чем худший из 20. Один проход, но с более сложной функцией сравнения.
>Вне зависимости от языка.
>Я скинул эту задачу знакомым питонистам
И нет ли тут ошибки? В питоне если ты напишешь что-то сам, это проиграет по скорости встроенному sort в десятки раз. Может быть они и правы, что на питоне это самое быстрое решение?
Мне нравятся такие штуки, и я уже почти хочу написать бенчмарки на си и на питоне если ты что-то сильно отличное от сортировок предлагаешь. У меня просто лапки и я не умею в алгоритмы.
ну я как раз макака, но решить попробую
как я понял, критерий - это средний балл
короче начинаешь проходиться по списку учеников
1) первых 20 безусловно знаносишь в топ (кол-во 20 можно определить счетчиком). Причем заносишь упорядоченно - прям на ходу сравниваешь балл с последним - если он выше - вставляешь куда надо, если нет - идет нахуй
2) ну собсна проходишь так по всем списку + условие про математику + информатику
но это так вот что первое на ум приходит
мб можно и пооптимальнее, все таки, если ученников 1е+1000 и все +- равны, то хуевенько будет алгоритм
Тащемта через 2 сорта правильно. Причем даже не 2 сорта, а
>сорт
>проход где ты записываешь индекс первого и последнего человека с граничным значением, которое на 20 процентах болтается
>сорт среди них
У тебя учеников не обязательно будет ровно 20%, у тебя может быть вообще так, что первые 50% учеников имеют полностью одинаковые значения по всем предметам, поэтому задача вырождается в два сорта, как ни крути.
Ну смотри, представь что у тебя массив из 1000000 учеников, вернуть надо топ 20.
>В питоне если ты напишешь что-то сам, это проиграет по скорости встроенному sort в десятки раз.
Тут вопрос не в том, чтобы писать свой sort, тут вопрос в том, нужен ли sort вообще.
Я пытался отыскать partial sort в питоне, в итоге нашел что-то в heapq. Алсо, там же есть литерали функция "вернуть n наибольших элементов". Таким образом мы обходимся в ноль полных сортировок (в одну частичную, что O(N)) вместо двух.
Просто пишем кастомный компаратор, который в случае если оценки равны, сравнивает их по приоритетным баллам, и скармливаем его в эту функцию.
Я пытался поспрашивать питонистов про heapq, и, судя по всему, про эту хуиту там никто и не слышал.
Ну я и забил.
>в одну частичную, что O(N)
Так твоя частичная сортировка вырождается в обычную сортировку в общем случае.
>Просто пишем кастомный компаратор, который в случае если оценки равны, сравнивает их по приоритетным баллам, и скармливаем его в эту функцию.
Вообще не факт, что это будет быстрее отдельного сорта даже. Алгоритмически да, но на деле хуй знает.
У тебя в компараторе получается должны будут быть сравнение + if + сравнение.
ну так unique_ptr по иронии судьбы статистически как раз таки самый юзабельный
> Лично для меня не можешь в алгоритмы = однозначно макака. Вне зависимости от языка
+
если уж соглашаться с тем, что алгоритмы не нужны, чтобы понять макака ты или нет - то хз уже
типа блять, язык что определяет макакишность? типа пишешь на крестах - бох, на ЛЮБОМ другом языке - макака
это охуено странно и радикально
кроме как менеджмента памяти я особо сложного в концепции плюсов не вижу ничего.
Типа дай нормальному (!!!) питонисту задачу по крестам, дай время на вкат + какое-никакое менторство, он ее решит и сможет перекатиться. При условии, что он прям нормальный специалист
как пример - ротация задач в яндексе (ну я там не работал, но слышал что там есть случаи, когда ты переходишь с какого-то языка на плюсы для решения какой-нибудь таски)
Почему, если ты знаешь как работают плюсы, то ты охуено мощный чел, а если знаешь как работает питон - лохпидр и макака?
Бля ну а как же то, что докер написан на го? или кубернетис?
Так что это охуено странно вот так рассуждать о макакичности с точки зрения именно языка - тогда уж все, кроме каких-нибудь арабов макаки, тк их язык охуено сложный
>Так твоя частичная сортировка вырождается в обычную сортировку в общем случае.
https://en.wikipedia.org/wiki/Partial_sorting
Вырождается не в общем случае, а в худшем случае, если k=n, т.е. если из 20 учеников мы пытаемся вычислить топ 20.
>Вообще не факт, что это будет быстрее отдельного сорта даже. Алгоритмически да, но на деле хуй знает.
Ну при больших n, и при сколько-то существенной разнице между k и n перформанс будет отлечаться просто ебануться космос. Для малых списков разницы будет минимальна, но кого ебут маленькие списки. Даже для маленьких списков лучше использовать оптимальные алгоритмы, т.к. однажды они, может быть, станут большими. Тем более что это ничего не стоит, и код с heapq не выглядит чем-то емким и страшным. Я скидывал на pastebin, но он, к сожалению, уже протух.
>У тебя в компараторе получается должны будут быть сравнение + if + сравнение.
да
знаешь плюсы => знаешь архитектуру, асм, операционку
знаешь питухон => скорее всего знаешь только питухон
>Алсо, там же есть литерали функция
А если там есть функция выбора неповторяющихся n случайных элементов из списка, и очень не хватает такой в крестах. Какие-то мелочи, которые не сложно было бы сделать и добавить в стандарт, но которых почему-то нет.
>>1964137
Про два сорта я вообще не понял, ты просто пишешь компаратор который за раз сравнивает средние баллы, и в случае совпадения ещё и сумму нужных предметов проверяет. Такое есть как в питоне, так и в крестах - как через лямбду, так и через перегрузку оператора.
Всмысле? Говорю же, когда без vs запускаю программу свою, она спокойно читает файл
Мне все эти хваленые алгоритмы и структуры пригодились 1 раз за 6 лет. Вообще. Для всего остального достаточно было std::sort и то, что в унордеред мап все операции O(1). А всякое дрчоево типа подсчетов квадратиков на собеседованиях - оставь дерьму из яндекса.
>если из 20 учеников мы пытаемся вычислить топ 20
Так мы не знаем, будет их 20 или 25. Может в отсортированном массиве первые 30% учеников будут иметь одинаковый балл.
Да, вкатывайся во фронт или в мобилки,жабу
>>1964154
>компаратор
Почему вы уверены, что 2 сорта с обычным компаратором флот > флот будут медленнее, чем 1 сорт с компаратором с ТАКИМ ЖЕ флот > флот, иф условие, флот > флот?
Плюс его еще и для сравнения < нужно будет определять, так как НЕ > не будет равным <. И соответственно считаться будет еще вдвое больше похоже.
во-первых: "скорее всего"
во вторых: ох ебать вам асм нужен конечно пиздец
а операционку и питонисту знать надо, питон программы не в вакууме запускаются
и кст, если уж ты вот такое заключение сделал, то, поздравляю, тебе нужен си, а не си++, в котором тенденция на упрощение
Я не очень вникаю в то что ты пытаешься нам сообщить, но учти, что тебе, если ты решаешь эту задачу в 2 полных сортировки (lmao) обычного sort'а мало, тебе вторую сортировку нужно будет делать как stable sort (что O(N*log(N^2)) по-моему), если в питоне sort по умолчанию не стабилен.
Иначе вторая сортировка распидорасит порядок из первой.
//
Хотя ты там говорил, что вторую сортировку ты будешь делать не на весь список, а только на элементы (на границе того что нам надо и не надо) с совпадающими значениями. Да? Это не так плохо, но все равно плохо. И еще код будет говно.
Алсо, у меня кореш, который вкатыш, так же мыслил и так же пытался решить, но не уложился во время.
Два чаю. GL_ даже короче, чем gl::
>Почему вы уверены, что 2 сорта с обычным компаратором флот > флот будут медленнее
Потому что в крестах так и будет, память медленная очень, а сравнение флоатов 0 тактов занимает по сравнению с перестановками.
1х накладные расходы на сортировку и 1х сложные сравнения из двух сравнений флоатов vs 2х накладные расходы на сортировку и 2х сравнения флоатов. Если там заранее для каждого элемента посчитать a+0.0001*b (что за одну fma инструкцию выполняется), где первое - сумма баллов, а второе - сумма информатики-физики, то это точно побьёт любые другие компараторы или две сортировки.
В питоне (я думаю) обычный сорт с флоатами уже написанный на си будет быстрее, чем интерпретируемый кастомный компаратор через лямбду или перегрузку.
Я тебе пишу к тому, что твой паршл_сорт сработает только если ты будешь отсекать ровно на 20 учениках и похуй, что 19й, 20й, 21й ученики будут различаться только фамилией.
Я не помню, но посмотри ShellExecute, если CreateProcess не имеет никакого параметра для запуска новой консоли.
ВСе, нагуглил. Работает. Спасибо
GLFWwindow window = glfwCreateWindow(640, 480, "My Title", NULL, NULL);
Это создается окно в OpenGL (не суть).
GLFWwindow - это структура.
window - это указатель на объект структуры? Если да то зачем так усложнять???
glfwCreateWindow - это можно сказать аналог конструктора, возвращает объект типа GLFWwindow(как я понял)
Я не могу понять, зачем используют указатели на объекты/структуры? (в работе, если доступ и все что мы захотим мы можем делать и через объект).
Или же в данном примере это мы динамически выделяем память под объект структ.?
В любом случае вот сидел сейчас читал про указатели на объекты класса и нифига не понял зачем они нужны. Везде все сводится к тому, что мы можем обращаться к полям объекта через ->. Я могу все что мне нужно делать и через точку
Вопрос: зачем нам вместо простого объекта нужно создавать указатель на структуру.
Я вот читаю и все понимаю ?вроде, но логику "Зачем?" это делать мне не понять...
там после GLFWwindow стоит звездочка, аноны!
хорошо няша, но это парадигма ООП насколько я знаю
а OpenGL написан на чистом си, но в любом случае я почитаю это
> Или же в данном примере это мы динамически выделяем память под объект структ.?
Да.
> В любом случае вот сидел сейчас читал про указатели на объекты класса и нифига не понял зачем они нужны. Везде все сводится к тому, что мы можем обращаться к полям объекта через ->. Я могу все что мне нужно делать и через точку
Существует два места, где может храниться объект, это стек и куча. Стек имеет ограниченный размер, около нескольких мегабайт, и много объектов ты туда не впихнёшь. А куча может юзать хоть всю оперативку. Так вот, в стеке хранятся переменные примитивных типов, указатели, статические массивы и прочая хуйня. Можно хранить и объекты, к ним ты обращаешься через точку (хотя можно и через указатель, если ты взял адрес объекта). А ещё данные в стеке хранятся там только до закрывающей фигурной скобки, и пожтому создать объект в стеке и вернуть его из функции ты не можешь. Ну а куча решает все эти проблемы, создавай и передавай куда угодно какие угодно объекты.
>Существует два места, где может храниться объект, это стек и куча.
Ты слишком категоричен. Есть и другой подход к инициализации объектов, создавая сам объект структуры в статике, а заполняя его уже динамикой, и этот подход довольно удобен.
Вот, например, глянь как у челика организована работа со структурой:
https://gi thub.com/xtreme8000/BetterSpades/blob/standalone/src/entitysystem.h
https://gi thub. com/xtreme8000/BetterSpades/blob/standalone/src/entitysystem.c
А если например, при создании объекта ему понадобилось ещё и возвращать переменную успеха/ошибки? Как бы он у тебя поступил:
int object_create(struct object obj);
...
object obj;
int success = object_create(&obj);
Или вот так
struct object object_create(int success);
...
int success;
object obj = object_create(&success);
А у него элегантее было бы, и без двойных указателей:
object obj;
int success = object_create(&object)
1)
int object_create(struct object ⚹⚹obj);
...
object ⚹obj;
int success = object_create(&obj);
2)
struct object⚹ object_create(int success);
...
int success;
object ⚹obj = object_create(&success);
> создавая сам объект структуры в статике, а заполняя его уже динамикой
Ну, суть та же. Структуры хранят указатели с адресами, и это всё на стеке, а объекты, на которые указывают указатели, уже в куче.
Структура не может быть пустой, а указатель на неё может быть, glfwCreateWindow (вместо new) создаёт окно и скорее всего аналогичная функция (вместо delete) удаляет его. Как будто если си - то это не ооп сразу. Такое же ооп, а все эти glgenlists или glCreateTextures помимо твоих структур ещё что-то внутри могут создавать.
> знаешь архитектуру, асм, операционку
в голосяндру
чел, я мб тебе открою великую тайну, ты не говори только никому
но как работает операционка, знают не только плюсовики
только тсссс
тоже самое касается и архитектуры коплюктера, компьютер саентист ты мой
а насчет асм вообще приорал с подливой
я писал на асме довольно много продакт кода. И вот похуй охуеть как на асм
я вообще не уверен, что на асме нужно писать что-то, кроме lab1
более того, был момент в моей жизни, когда я в унике пытался поиграться с pdp, где 8ричная ситема вообще
прям вот адреса записывать ручками вот это вот все надо было
и вот нахуй не всралось мне это
так что знание байтоебли нужно в трех случаях:
1) ты байтоеб
2) фан
3) общее развитие
эти знания тебя никак не превозносят над теми же фронтэндерами
а вот тезиз, что питонисты знают только питон относится к (внезапно) васянам из пту 69 или вчерашним юристам. Но я тебя уверяю, что точь-в-точь такие же плюсисты сущесвуют: которые не знаю архитектуру, не знают асм и уж точно не знают операционку
не нужно сравнивать прогеров категории /b одного языка и годных прогеров другого
я также могу сказать что джаваскрипеты секут как api собирается, web протоклы и прочее дерьмо, а плюсовик знает только что в чаре 8 бит, ЛОЛ
хуевых прогеров вообще не нужно брать в рассчет
а нормальные, хорошие и топовые, вот они точно знают все то, что ты перечислил + свои углубленные специфические вещи
ну а макака - это человек, не знающий алгоритмов, структур данных и пр, факт. А если высокоуровневый, то паттернов и ООП, тоже факт
Ну а лично мое мнение, что макака знает ТОЛЬКО язык и не знает предметную область, на то она и макака
о ты из новосиба?
>2гис
ты им нахуй не нужен
у них 2 прикормленные кафедры в универе
берут оттуда молодое мясо, со стороны никого за последние три года не брали
Ок, в следующий раз перекатываем на 2к.
Передавать указатель (сцылку) дёшево, тому що он маленький.
Да весь /pr/ ведётся, особенно Go-шизики.
шиз, спок
https://godbolt.org/z/nWxaYE
Есть способ заставить gcc убрать код из рантайма, чтобы он на стадии компиляции подменил строки на числа или что мне там нужно?
Боже, какой же ты тупой
>Покидайте идей для пет проджектов
Хуев за щеку могу тебе покидать.
Зачем ты программируешь вообще, если тебе неинтересно ничего?
Если чисто, чтобы деньги зарабатывать - иди пиши калькулятор, чтобы шекели считать, хули тебе еще посоветовать.
Кто о чём, а калчер о хуях. Почему я не удивлён?
Рогалик напиши.
Хз, сам вот спрашиваю.
Короче изучаю кресты, на данном этапе задачки уровня hard в целом легко решаю и уже не интересно. Думал, куда двигаться дальше, выбор был между qt и OpenGL, первое показалось довольно простым, второе самое то.
Начал изучать, но материал такое гг по этой теме, нифига не понятно, все скомкано и размыто. Смотрю есть вроде хорошая литература по WinApi, думал может это начать или DirectX. Вообщем, так как изучаю сам, можете посоветовать, что то более серьезное и желательно, чтобы была хорошая информация на эту тему.
В целом мне всегда была интересно передача информации ну и графика да, тоже.
В идеале к середине, концу лета уметь уже делать что-то более менее полезное и стоящее, так надо будет уже устраиваться на работу, спасибо.
>задачки уровня hard
О чём речь вообще?
В любом случае, дрочи лучше бестпрактисес и пиши больше кода. Может в qt какие-нибудь гуи себе поделать в дополнение.
В графон нету смысла лезть, если ты хуево программируешь и ничего особо не умеешь. Там для крутых чуваков-то работы особо нет, для вкатывальщиков тем-более.
глянул, да годнота. но все равно хочется уже что-то реально начать делать, а не теорию изучать. ну спасибо в любом случае
Тут диды инстантом пишут что твои навыки написания кода хуита если вкатываешься впервые. Мол дрочи теорию и архитектуру пэка с системами, сына! Но по Мейерсу и stl лично меня хорошо прогнала в своё время моя нынешняя тнн, так что делаем выводы пацаны.
> передача информации
?
> все скомкано и размыто
Так, а ты спецификацию читал? Ну хотя бы gl 1.3?
> скомкано и размыто
Да как перестать смеяться...
Что ты ни за что не вкатишься.
640x348, 0:10
Я ливаю нахуй из этой помойки.
Вот просто 2/3 постов пишутся хуесосами полнейшими, либо вкатывальщиками, которые тоже бесконечно сильно раздражают своим невежеством, уровня реее все говно, а я охуенен, собираюсь вкатиться за 3 месяца, а ну ка какие у вас тут самые сложные штуки.
Абсолютно безблагодатная хуита, а не тред, который только злит своей безблагодатностью.
Ливать надо было ещё вчера
В тесте IQ ты находишь простую закономерность, схему и автоматически выводишь ответ.
В C++ простых схем не существует в принципе, и даже сложные помогают не всегда.
Выходит, С++ разрабатывался для людей с низким IQ.
Тогда нужно помнить про возможные неявные преобразования. И там тоже нет простых схем.
И эта ситуация, куда ни ткни, везде повторяется фрактально.
> qt
десктопные (умирающая платформа) офисные приложения
> OpenGL
игори (мёртвый рынок в рашке) и 3d визуализация
определись чем ты хочешь заниматься для начала
Смари, в любом нормальном языке когда ты передаешь в функцию что-то сложнее числа оно передаётся по ссылке (не копируется потому что так быстрее), соответственно если ты там меняешь оно меняется и снаружи. Кресты проектировал сумашедший (на самом деле просто наследие сишки) поэтому если ты хочешь передать что-то в функцию нужно каждый раз явно указывать что ты не хочешь это копировать а взять ссылку на уже имеющееся. то есть передаешь либо Foo⚹ foo либо const Foo& foo, скорее всего первое, потому что ссылки в крестах тоже поломаны (мозги ебут).
QProcess::startDetached
>Qt десктопные (умирающая платформа) офисные приложения
В эмбеде встречается. Например для приборной панели авто UI на qt иногда делается. В авиации тоже на приборке он бывает.
Спорить не буду, но вот встречал именно такие кейсы, причём у зарубежных производителей.
В плане скорости отклика Electorn медленнее Qt? И если да, то на сколько?
>В плане скорости отклика Electorn медленнее Qt?
Хромиум знаешь? Каждому по раме его если коротко. Но рано или поздно qt станет не нужно, дооо.
Ну там вроде отклик не столь важен в сравнении со всякой сложной техникой. Я вообще юзал 2D часть движка Chromium. Ну не сказать, чтобы ебать какой быстрый.
Доведут до ума и гуишникам придётся перекатываться. На нём же даже в спеес ха литают!
> С++ разрабатывался для людей с низким IQ
так и есть, только человек с низким айкью будет решать руками задачу которая легко и успешно автоматизируется (менеджмент памяти) вместо поиска решения задачи в предметной области
Что за хуита рандомная на пикчах? Там же нету никаких закономерностей.
особо жирные и мерзкие уебки (нвидиа кун) умирали бы несколько дней, так как округлённый кол не пронзал жизненно важные органы, а лишь входил всё глубже в тело
жс-макака, спок
Это на настоящий перекат, тут даже тысячи постов нету.
Кажется, я не могу пройти. Какие ответы, лол?
Нейроночка-автоэнкодер при достаточно различных параметрах говорит, что A или F в первой, и что точно D во второй.
Но не сказать что я понимаю её логику. Я меняю функции активации или размеры слоёв, а она всё то же твердит - ну или совсем случайный шум выдаёт без предпочтений.
Фикшу вторую, я когда забивал картинки в виде цифр опечатку допустил. Вот так вернее. Энивей пальцем в небо - просто потому что она почти 0 выдаёт пишу, вдруг там какая-то несложная логическая операция с треугольниками, которую я просто не заметил, а нейронка сразу нашла.
я про то что скобки закрываться не хотят как надо, хотя вроде всё нормально, а что ты тут написал я не понимаю...
Простите что не по теме, меня просто взбудоражили картинки и то что что-то получилось.
Походу, там А в первой и E во второй - получил порядка одной тысячной ошибки в обоих случаях - и я почти уверен что это верные ответы.
Вот из этой статьи третий пример адаптировал: https://www.tensorflow.org/tutorials/generative/autoencoder?hl=bg
Если я правильно понял - смысл в том, что оно пытается описать 8 представленных примеров минимальным числом чисел в узком месте энкодера (при этом дополнительная информация может хранится в последних слоях) - то есть 8 нейронов в любом случае полностью описывают все 8 картинок, но по возможности энкодер старается разбить картинки на меньшее количество "ортогональных деталей" (на 5 для первой картинки, и 4 для второй). Примеры как 12/8 чисел со значениями 0 или 1 в зависимости от цвета кружка прописывал. Потому там и ошибки кратные 1/12 были в первом случае - так как не совпадало целое число элементов.
Вот бы в машоб вкатится, и чтобы он был весёлым, а не 90% времени на вычистку датасета, а 10% времени на ожидание пока компьютер это обработает - как рассказывают. И код хочется писать, собственные функции активации и собственные оптимизации и распараллеливания - а не в конструкторе указывать типы слоёв.
>>1965853>>1965836
Хуёвые (точнее не такие, как ты хочешь) настройки отступов в ide. Посмотри настройки - они могут быть как в самой ide, так и в виде внешней утилиты по типу Atristic Style или Clang Format. Оно ещё пробелы между операторами и после запятых ставит или убирает, чтобы код единообразно выглядел.
Этот код у меня в литкоде....
Само собой, я сразу написал что пальцем в небо. Никак. 8 примеров неупорядочненны.
Если бы они были по рядам записаны, то это намекало бы, что третья клетка является операцией над первыми двумя. А тут могут быть ряды, столбцы или диагональ с двумя тройками. Или даже, что один признак сохраняется по столбцам, а другой по строкам. Я просто не знаю как это учесть - есть только идея костыля, что скармливать в качестве примеров сразу 2 (полных) строки/столбца, одну полную диагональ и три полных тройки - а для проверки дописывать в недостающую клетку один из вариантов, и считать степень аномальности для новой строки/столбца/тройки и диагонали.
Ну айда на других примерах проверим, сработает ли. Подкинь какой-то сайт, где можно картинки в виде 0/1 представить и где явно нужны строки-столбцы - я вобью их. Может быть строки-столбцы избыточны. А может быть и нет.
Выходные длинные, и мне не сказать что скучно будет повникать в такое.
bump
Что за ебанутый вопрос. Стоит то стоит. Если понравятся условия оффера - работай.
11 читай, и беги из всех мест где нет по крайне мере 11 стандарта. Вот это прям абсолютно точно.
Зачем превозмогать на английском, если можно читать "принципы и практика программирования c++" 2016 года
Ебать манямирок. В некоторых областях хуй ложат абсолютно на твои стандарты. Пишут себе дата-ориентед код и похуй, что там за выебоны появились за последние 10 лет.
В любой топовой технической компании такое есть, в нвидиях там, самсунгах, etc.
ЧТО С КАПЧЕЙ БЛЯТЬ? Иногда прохожу по 15-20 картинок ради одного поста. Гугл там охуел вообще?
У меня продукты мейла ассоциируются с какой-то хуетой. Игры для даунов, соцсети для даунов и т.д. Отсюда и вопрос чё там за работа внутри (ну допустим по деньгам меня оффер устроит и мне нассут в уши как у них там охуенно).
Он завтра пойдёт дод писать в нвидии, да? Компайл-тайм хеш таблицу или что тут за мемное видео кидали много раз?
Я всего лишь пожелал новичку-вкатывальщику не связываться со старыми стандартам на стадии вкатывания, и лучше пусть он опыта будет набираться с чем-то актуальным, а не с ужасами из подвала топовой технической компании. Когда он поймёт что ему такое нужно, он уже восемь раз про этот совет и этот тред забудет.
Ну, репутация у мейлру хуевая, как у бюрократической ебанутой компании, в которой осаживается множество даунов. Плюс у них очень много мертвых проектов уровня icq.
Смотря куда попадешь.
Я помню аплаился на средненькую вакансию, подходящую по моему стеку почти полностью и с хорошим резюме(уверен у них 90% откликов сильно хуевее), так мне hr даже не ответила. Хуй знает кароче.
>В некоторых областях хуй ложат абсолютно на твои стандарты. Пишут себе дата-ориентед код и похуй
Да, но во многих других областях лучше без с++11 не ходить.
Так можно почти про всё сказать.
Оценивай оффер и всё.
Я тоже в майлру апплаился, но в итоге не дообщался с ними, зааксептил другой оффер
Там у них какой-то Zoom для школьников и они сами меня приглашают. Но мне тупо некогда и работу работать надо и есть более интересные приглашения (зрение там всякое, биотех, дрончики).
Ты всегда будешь работать над какой-то хуйней. Никто тебя не возьмет пилить там Телеграм, или Диабло 4. По-этому увы. У мейла офис охуительный зато был там пару раз, экс tyanochqa работает там, водила
В итоге получается, что:
pros: ЕОТовна, уютненький офис и активити.
cons: проекты унылые, часто под госзаказ, бюрократия и кумовство, зп по рынку.
Я уже 3 год на удалёнке, хотя у нас офис тоже норм, но как-то уже нахер не нужен (до ковиды катался по рфии или за граничку и оттуда коммитил). Такой себе digital nomad life.
В топовой конторе я уже работал с сосницкой хрюшкой (она щас ирл в хрюшку превратилась). Даёт буст к резюме, но в целом там заебёшься в сытные места выбиваться.
В первой точно А. Логика такая -- чёрные точки по две штуки одинаково на диагонали 1-5-9 (как на нумпаде), в остальных местах одинаково по одной. Потом просто игноришь их, и смотришь так: на каждой строке, дырками должны быть заполнены все 6 позиций, причём чёрная точка может совпасть с дыркой. Дырки там стоят строго на соседних местах. Довольно сложно словами выразить, но, думаю, понять мой высер можно. Я думаю, можно придумать ещё какое-то рассуждение, которое даст другой ответ.
понял тебя, благодарочка.
А чем он хорош? Есть какие-то конкретные причины, почему наиболее распространённое и логичное решение не подходит?
Правда? Вот я делаю oauth авторизацию и там прихуячено гвоздями слушать коллбек на http, приходится брать и переписывать два класса ради одной ебучей строчки
Шарп - это пережиток целой эпохи. Его участь - это участь Java, вот только в случае Java там JVM обеспечила ей непоколебимое закрепление на рыночке, а в случае шарпа - кор это как последнее издыхание, в попытке выползти из могилы. Мелкософты очень поздно одумались.
Плюсы для этого слишком жирные, но с другой стороны кто-то и на жсах/петухонах пишет.
Что получается, перекатываться в Си теперь? Это же должно быть относительно просто если на плюсах уже какое-то время работал? Посоветуйте материалов каких мб.
Ты уже знаешь C. Возьми плюсы, выкинь из них классы, темплейты и кучу всего остального, оставив только функции и if/for/while, и вот тебе сишка. Стандартная библиотека там несколько другая, но в "микруках" она вряд ли тебе понадобится.
Наверное можно посоветовать начать с STM32 c библиотекой HAL и визуальным конфигом МК CubeMX.Инфы полно на всех языках. Лично мне после лаб с AVR на чистом С и регистрах, где с одним таймером нужно неделю ебаться, было гораздо проще въехать. А так деды конечно только регистры уважают.
если ты середняк, то да, несомненно
один из лучших вариантов
если ты топчик, то найдешь работу по лучше
не советую читать ни одной новой книги страуструпа
у него 2 нормальные книги - "дизайн и эволюция" и "язык с++ 4е специальное издание" (по 98 стандарту книга)
все
в то же время некоторые статьи у него интересные и сайт прикольный
выступления скучноватые
Почитал недавно про аську, решил зайти туда по приколу. Вспомнил пароль, открываю, и мне пишут, что либо я привязываю номер телефона, либо хуй мне, а не аська. Думаю: ну и нахуй она нужна тогда, ничем она не лучше популярных нынче мессенджеров.
мимо
Бля, иди зум пилить, расскажешь мне потом, как быстро стримить видеофид с вебкамеры в opengl приложение на хороших фпс.
>Я уже пилил видеостриминг и кодеки и ещё всякое поблизости.
Бля, расскажи тогда плиз, как бы ты сделал это, хотя бы на вскидку.
Есть OpenGL приложение. Есть вебкамера. Хочу стримить фид с вебкамеры в текстуру.
Пока что у меня просто через OpenCV читается пикча с вебкамеры и загружается в текстуру. Это делается супердолго, у меня просело фпс условно с 30 до 15, когда я эту хуйню сделал.
Можно как-то быстрее это делать и не через OpenCV?
В биотехе шарить нужно. И в биологии, и в матеше. Уже давно даже в универах на компьютерных факультетах таким занимаются. Странно, что ты, обладая максимально подходящими скиллами, хочешь чем-то вообще левым заняться.
Да цпп-разрабам инглиш не нужен даже, один хуй будешь в нии сосиски есть всю жизнь.
Бывает что компилятор нормальный не завезли (допустим компилит не выше c++11, причём стандарт реализован не полностью или с ошибками).
Ещё скорость компиляции и размер бинаря.
Плюс деды и тонны легаси.
Да я c++ по фану решил поучить, потом пересяду на что-то другое.
Спустись на уровень ниже до ffmpeg или gstreamer (gstreamer предпочтительнее). OpenCV является фронтом к этим двум ребятам, но у него слишком узкий интерфейс для того, чтобы нормально работать с потоками (по факту захват видео средствами OCV годится только для proof of concept).
А чё не так, то? Медицинское оборудование типа рентгенов, МРТ, и всяких сканеров, которые в тебя пихают, тоже гонит поток кадров. Матаном владею, биологию натяну как-нибудь (вот с химией да, тут подливы дам).
>в биотех смотрю
Не знаю как щас, но в нулевых коммерческий биотех - это были сплошь БАД'ы на агрессивных продажах.
Покажи как массив выглядит.
Проблема следующая - циклом считываю из файла данные с помощью ReadFile, циклом потому что разбиваю на чанки, проблема следующая - как мне в массив байт (BYTE) или LPVOID дописывать значения? memcpy(&buffer, chunk, chunk_size) благополучно шлет нахуй
В идеале цель в том, чтобы во время работы цикла в LPVOID или BYTE дописывались значения
Как strcat, только для байт, короче говоря
Уже костылить пошел, пайпы пытался прикрутить, но понимаю, что это перебор, должен быть простой способ, но я туплю нещадно уже день над этим
Вместо WriteFile нужен какой-то аналог оператора <<, но в сишном исполнении (std прикручивать не хочу)
buffer << chunk или типо того
Заранее спасибо ананасы
А вообще это в си-тред с такими вопросами.
>>1966396
>В идеале цель в том, чтобы во время работы цикла в LPVOID или BYTE дописывались значения
>memcpy благополучно шлет нахуй
По какой причине, лол? Вот это конечно божественное описание проблемы.
>туплю нещадно уже день над этим
Капец. Вот чем тебя вот такой код по смыслу не устраивает, то вместо прямой записи через fread копировать out_len байт через memcpy?
Размер файла изначально узнать через ftell или что там у тебя вместо него.
Это дали свой всход плоды моей агит компании. Всё правильно делают пацанчики, бросили плюсы и перешли на си
Вообще тебя не понял, если честно.
>как мне в массив байт (BYTE) или LPVOID дописывать значения
Просто указывай правильный сдвиг внутрь массива при чтении/копировании откуда надо.
>memcpy(&buffer, chunk, chunk_size) благополучно шлет нахуй
Щито?
ну кстатит я мимо, но вроде как у них работника можно в made гонять
в целом, это хороший плюсик в карму мейлу
особенно тем, кто в дата сасенсе хочет качнуться
Long long int, в просто Лонг не влезет, строки и указатели все равно больше займут. Можно сделать в bcd, чтобы номера счетов прямо в хексе писать =3=
std::array<char, 16>
> если он состоит из 16 цифр
По требованию ЦБ он мало того что состоит минимум из 20 символов, так это ещё и не обязательно цифры, например, в счетах для драгметаллов там будут буквенные коды.
Байтоёбский ФРС лучше пилить на тему лохчейна.
Сап. Пытаюсь конвертировать струну в дату в формате HH:MM. Вот думаю как это по умному сделать. Сделал пару циклов. Один на проверку ввода чисел [0,9] и ':' a другой на переписывания в в часы и минуты до и после ':'.
Я догадываюсь это все говнокод. Как мне использовать по умному объект tm. С валидацией ввода.
У меня есть абстрактный класс. Есть класс, который наследуется от него и реализует чистую виртуальную функцию, которая была заложена в родителе. В родителе объявляется string переменная. Соответственно, в заголовочный файл родителя я подключаю <string>. Так как у меня дочерний класс наследуется от родителя, то, естественно, в заголовочный файл дочернего класса. я подключаю заголовочный файл родителя. Следовательно, у меня тянется и <string>. В дочернем классе я тоже работаю со стрингом. Значит ли это, что мне не нужно повторно инклудить стринг в дочернем классе? То есть, я понимаю, что будет работать и так, но тут вопрос касается того, как нужно делать.
И, например, если я подключил iostream в какой-то из родительских классов, которому сделал кучу наследуемых классов. А потом в main подключил этот родительский класс, то мне тоже не нужно нигде подключать <iostream>? Или нужно прописывать <iostream> в каждом наследуемом классе и в самом main, даже не смотря на то, что они все инклудят .h файл родителя?
>std
Очевидно же, что это встроенная в ide фича, также как сниппеты для имакса выдают printf в списке дополнений, хотя они не анализирует дальше текущего файла.
>инклюдить или нет
Не нужно ебать мозг и выискивать подключёна ли у тебя БиблиотекаНейм из хедера другой библиотеки. Если тебе нужен стринг здесь и сейчас - подрубай свой стринг хедер, компилятор сам разберёт, где чё лишнее подключено, а себе работу усложнять не стоит. Может ещё такое случится, что в одном хедере ты решил убрать стринги, а это хедер у тебя тянул их как зависимость в кучу других файлов, и в тех файлах тебе придётся вручную вставлять стринги, и ещё искать их перед этим. Так что лучше пиши всё явно.
Ок, спасибо за ответы
https://www.youtube.com/watch?v=h-zy1hBqT74
Got more things to say
1) Они реально шарят в этом или прост хорошо готовились к докладу?
2) Должен ли сферический мидл в вакууме шарить на таком же уровне?
3) Должен ли сферический мидл в вакууме шарить на таком же уровне во всех остальных тонкостях языка, помимо темы инициализации?
4) Почему на конференции C++ Рашка говорят не по-нашему?
4) выебуются
>Если тебе нужен стринг здесь и сейчас - подрубай свой стринг хедер, компилятор сам разберёт, где чё лишнее подключено, а себе работу усложнять не стоит
Два чаю. На работе был проект, где писавший просто обожал транзитивные инклюды. В итоге любое неверное движение (хоть перестановка #include директив) приводило к ошибкам компиляции и потраченным минутам времени.
В НИИ с тебя спросят диплом о профильном образовании. Зп будет в пределах 30к. Дальше по нарастающей.
Лучше учить UE4.
Ну так конкретно спрашивай: какой город, тип конторы, специализация конторы. Разброс в зп и требованиях очень большой.
Рекомендую просматривать сначала древний opengl 1.1 по верхам чтобы понять как это выглядит на высоком уровне, потом 3.2+поздние расширения чтобы понять внутреннюю логику графического конвейера и только потом смотреть вулкан, чтобы было понятно что ты вообще и зачем делаешь.
Да, ещё вулкан не для людей - вулкан для разработчиков ue, чтобы добавить его поддержку в свой движок, а пользователи-разработчики движка ничего не знали про настолько низкоуровневый бекэнд. Если ты просто что-то на коленке хочешь изобразить - юзай легаси опенгл, линии для схематичного изображения он рисует нормально, строк кода довольно мало.
Тебе это не нужно не для ue, ни для симуляций. Я конечно не использовал ue, но ставлю зуб, что там уже реализованы все графические эффекты достаточно неплохо, так что ты потратишь полгода на вникание в низкоуровневый вулкан или opengl и получишь в лучшем случае такую картинку - а скорее всего намного хуже, а попытка добавить что-то новое оберётся болью, когда в ue была бы возможность просто строчку дописать. Используя движок ты не взаимодействуешь даже с уровнем opengl, если у тебя не какие-то специфические нужны - только glsl для шейдеров изучить, может быть.
Это мнение с дивана, если что - серьёзно не слушай. Просто фигнёй не занимайся и не трать время на изучение opengl - всё что тебе нужно скорее всего сделано, а писать что-то самому на opengl - это как контейнеры из stl переписывать на свои.
Они шарят, т.к. заседают в комитете.
Мидлу на таком уровне шарить не надо, как и сениору, как и всем остальным. Максимум - каким-нибудь либописателям.
Потому-что Тимурка - додик и куколд
Аналогично std. Можно вводить синонимы для неймспейсов и в некоторых случаях можно делать юзинг каких-то конкретных имён. Но юзингов для всего неймспейса лучше избегать.
внутри .cpp файлов только
ConstExprMap mapo{
{std::pair<int, int>{4, 3}, {2, 2} }
};
Рихтер + msdn.
Лучше забей на оглы, ибо это всё равно конкретный API, который поверх универсальных концептов добавляет слой своей шелухи. Изучай ого если охота педалить свои велосипеды на нём. Для вката в графоний есть прекрасные труды общего плана типа
https://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akenine-Moller/dp/1568814240
Читать всё, опять же, смысла нет - книга объемная и всё не запомнишь, лучше задрочить основы - пайплайн, необходимая дискретка, понимание зачем нам четвертая координата в 3D
И вступительные главы из
https://www.amazon.com/Engine-Architecture-Third-Jason-Gregory/dp/1138035459/ref=mp_s_a_1_1?dchild=1&keywords=3ď+engine+architecture&qid=1615819597&sr=8-1
Тут довольно подробно для обзорного уровня написано о железе, что тоже может пригодиться.
Там нужно для дедукции - констэкспрмап является шаблоном. Так нже эту штуку читнуть
что спрашивают? как проходит собес? вот это вот все короче
> дисовый
у них Ш нет, раз уж на то пошло, шутник хуев
а если серьезно, тупо раб сила? в ДС же rnd центр как-никак
template<
class Key,
class T,
class Compare = std::less<Key>,
class Allocator = std::allocator<std::pair<const Key, T> >
> class map;
Не могу перестать проигрывать, как макаба подсветила последнюю строчку. Что там звёздочки-указатели, беда приходит откуда не ждали...
Fix: для одномерного всё же не UB. Показалось что там reinterpret_cast<int*>(&A);
а все, вопрос отпал
задам максимально тригерный вопрос, но мне сейчас просто интересно мнение
как вы считаете, какая сейчас область, где применяется с++ наиболее прибыльная и долгоиграющая?
например: многие говорят, что зрение явялется такой, однако я не уверен, что оно в длительной перспективе стрельнет? по факту, я сейчас не вижу каких-то прям совсем уж пиздатых применений (ну кроме беспилотных авто). С этой точки зрение NLP куда прикольноее (но там без с++). ИМХО
мб HFT? HPC? геймдев?
High Capacity Smoothying
>>1967695
Ладно, вот пример https://godbolt.org/z/brxznn
Почему arr1 работает - ясно - одни скобки для инициализации аррея, вторые - для листа инициализации. Как работает arr2? Почему там на олну пару скобок меньше и тип для первого и оно работает нахуй
Ну лень писать brace initialization и initialization list
джосаттис 30 лет над плюсами работает, участвует в разработке языка, книжки пишет, очевидно что он шарит
>4) Почему на конференции C++ Рашка говорят не по-нашему?
Потому что это язык научного и технического сообщества, это язык стандарта. Говоря на английском, ты говоришь со всеми на одном языке, говоря на русском о с++ - ты говоришь на разном языке даже с русскоговорящими
В хуавее весь менеджмент китайский. Сидят пристально наблюдают и потихоньку учат русский, чтобы знать, о чём ваньки между собой разговаривают. Ваньки там да, раб. сила, которую активно скупают группами и поштучно вместе с разработками.
Легаси говно всегда было прибыльным и долгоиграющим. Посему можешь смело идти в зрение, которое потом обязательно превратится в легаси.
Нашел
// double-braces required in C++11 prior to
// the CWG 1270 revision (not needed in C++11
// after the revision and in C++14 and beyond)
У тебя там окаменевшее говно мамонта вместо компилятора.
Знакомый когда-то давно работал в LG под мобилки. Говорит, что очень напряжно там было, оттого и свалил. В Самсунге скорее всего то же самое.
хм
вроде нет, но могу ошибаться
>>1967877
в рашке есть lg? в дс?
Да на самом деле я пока пиздюк, мне 24, хочу попробовать в какую-нибудь контору с именем. Чтобы была строчка в резюме хорошая
Яндекс точно не тяну тк месяца 2-3 тупо алгоритмы дрочить не хочу
а вот в эти хочу узнать есть ли вариант
Да, но это не работает с арреем пар. Там надо либо полную инициализацию, либо подсказать с помощью типа первого элемента, очевидно
В {{1, 2}, ...}, внешние скобки это aggregate initialization std::array-я, {1, 2} — aggregate initialization его мембера. При этом первый элемент инициализируется единицей, а второй — двойкой. Подходящего конструктора для инициализации пары из int нет.
Да, все так:
>the rules of brace elision do not apply as std::pair is no aggregate type so the program
Пруфы? Код работает как нужно. Да и это учебный код с лекции топового вуза.
>Пруфы?
Пруфы нужны на определённость поведения. Пруфы на неопределённость поведения это как пруфы отсутствия невидимого розового единорога.
> Код работает как нужно.
То, что ты видишь некий ожидаемый результат не доказывает определённости поведения.
> Да и это учебный код с лекции топового вуза.
https://ru.wikipedia.org/wiki/Апелляция_к_авторитету идёт на хрен.
Но вообще для начала покажи объявление A в двумерном случае.
Кстати, строго говоря, стандарт не гарантирует поддержку такой:
std::array<std::pair<int, int>, 2> arr1 = {{{1,1},{2,2}}};
инициализации.
Он говорит https://timsong-cpp.github.io/cppwp/n4659/array.overview#2 :
> An `array` is an aggregate that can be list-initialized with up to `N` elements whose types are convertible to `T`.
у инициализатора выше, элемент это {{1,1},{2,2}}, braced-init-list, который не является выражением и поэтому не имеет типа. Так что непонятно, что значит что тип элемента convertible to T, когда типа нет.
Очевидно, T{{1,1},{2,2}} тоже не имеется в виду, т.к. для T=std::pair<int, int> это не прокатит.
Я думал что нашёл новую дыру в стандарте, но оказалось что это уже известно https://cplusplus.github.io/LWG/issue2823
>Код работает как нужно.
Так и будет. Я не знаю конкретно про двумерные массивы, но есть много ub кода, который будет работать исправно годами и возможно даже на разных компиляторах.
Только нет никакой гарантии, что это будет так же в новых версиях компиляторов или уже сейчас с другими настройками - стабильно многое ub работает, потому что это логичная внутренняя реализация абстракций языка.
Я не смог сломать этот код, но возможно если скастовать после этого твой указатель ещё во что-то, передать в несколько функций принимающих константный указатель или ещё что-то такое - и в итоге это перестанет работать, потому что компилятор что-то прооптимизирует. А если бы ты так и тащил свой int [][M] или как он у тебя объявлен - то всё бы работало.
>Очевидно, T{{1,1},{2,2}} тоже не имеется в виду, т.к. для T=std::pair<int, int> это не прокатит.
Так а что по поводу вот этой записи: {T{1,1},{2,2}}
Где T = std::pair<A, B>
?
Я видел эту хуйню в рабочем коде и еще в другом месте.
Аналогично, у второго элемента списка ({2,2}) нет типа, т.к. он — не выражение.
Потому что итерироваться можно только в одну сторону от begin до end, обратное не сработает.
STL
Чтобы не проверять пустоту контейнера перед .end() - 1.
Но это было написано одним чуваком и без объяснений понято другим, как будто бы это нормально. Более того, это компилится любым компилятором современным.
Кажется я понял уже, только опять же - найти бы пруф:
Если ты указываешь тип хотя бы первому из ряда элеметнов, то компилятор уже догадывается как эти скобки парсить.
И никто на дваче не может подсказать. Отпущенцы вы, а не плюсовики(как и я)
>>1968083
>Аноним 16/03/21 Втр 04:16:44 №1968083
>вы долбаебы? вам делать нехуй в 4 часа ночи на дваче сидеть?
ренджи [ ; ) и ( ; ] имеют отличия, как видишь
>Но это было написано одним чуваком и без объяснений понято другим, как будто бы это нормально. Более того, это компилится любым компилятором современным.
Я же дал ссылку на LWG issue. Да, такое должно быть нормальным, но стандарт написан так, что создаётся впечатление что не гарантируется поддержка такой инициализации.
Имеется вектор объектов дочерних классов Предприятий(ENterprise), в котороый вносятся заабкасченные к классу Enterprise объекты(пик 1 - апкаст, пик 2 - пример объектов).
В конструкторе каждого объекта я задаю приватным полям класса значения(пик 3), однако после даункаста(пик 4) все поля принимают значения 0 в использовании. Почему так может быть?
Мимо 5 часов с++ в опыте
А теперь попробуй не с Bidirectional итератором
>я для себя пишу
Нужно стремится к совершенству, даже если пишешь для себя. Особенно поначалу, когда ещё не знаешь язык. Потому что потом, когда надо будет, ты не сможешь написать нормально, а будешь лишь извергать лапшу.
По сути - тебе нужно хранить ссылки/указатели/умные указатели внутри enterprises. Я не вижу объявления этой переменной, но это наверное что-то вроде std::vector<Enterprise>, где прямо в виде значений хранятся объекты родительского класса. Когда ты делаешь push_back, происходит object slicing и все "лишние" поля просто теряются. Почитай про object slicing и как хранить дочерние классы.
буду, дальше что?
Сотни разных прикольных задачек в консольке, с виду просто, но даже в самом первом задании уровня Easy можно сделать несколько классов и наследоваться, чего половина треда здесь даже не осилит. А можно и просто на отъебись набахать в одном main() - всё от тебя, твоих знаний и твоего интереса зависит, анон.
Помог вектор умных указателей, спасибо анончик
Некоторые алгоритмы однонаправленные, например чтобы сделать rotate в обратную сторону нужно использовать реверс итераторы.
Хуёво, когда ты не можешь ни с чем сопоставить свое решение.
Ещё хуже, когда к задаче дают 40 решений неизвестно от кого.
>всё от тебя, твоих знаний и твоего интереса зависит, анон
Такой дроч если и прибавит тебе знаний, то только ценой очень больших усилий.
Хуево, когда ты идёшь на кодварс и долбишь голую сишку без знания STL, вместо плюсов.
Ещё хуже, когда по туториалу делаешь какую-то говнозмейку на фреймворке.
> Такой дроч если и прибавит тебе знаний, то только ценой очень больших усилий.
Как минимум заставит человека писать код самостоятельно, ценой хоть и больших, но собственных усилий. Там задачки уровня тех, кто только закончил книгу по синтаксису и почитывает что-то по стандарту, вряд ли такие смогут начать свой большой проект не обосравшись, а подобная микрописанина хотя бы б даст понимание структуры для будущих проектов, конечно, если делать всё с умом.
Пикрл будет поинтересней. Есть решения достаточно интересных практических задач. Широко используется C++17. Можешь взять на рутрекере.
Не стоит. Сразу увидят долбоеба, который не умеет писать на стандартном языке и тянет какие-то новоделы.
Кстати да, это тот софт, который почти 20 лет пишут в одном и том же консервативном стеке (UE с 1995го, Unity с 2005го и т.д.).
В хардкорном геймдеве те ещё наркоманы-люддиты сидят. Из не-си они максимум неймспейсы и перегрузки используют (хотя не, там же манглинг, символы длиннее становятся, да ну это).
Верно
И QML тоже под UI используется. У меня культя была на 3 из 8 крупных проtктов с UI (QML был на 2 из 8). Так что тоже не сильно полезные знания.
Да, вот как раз недавно на .Net Core пилил под эмбед. Так и чувствовал, что всё. Вот это вот всё.
Ну уж нет. Плюсы конечно то ещё говно бесполезное, но джява - худшее червепидорское дерьмо в мире языков программирования. Мб даже хуже, чем жс.
>худшее червепидорское дерьмо в мире языков программирования
Тогда почему там нет такой хуйни, как в С++? В Java даже нет неопределенного поведения при вычислении выражений. Пруфай или иди нахуй.
Иди нахуй.
Потому что это managed язык, который не может в числодробилки, да и к тому же имеет блядский, порой попёрдывающий, сборщик мусора.
Хочу научиться исползовать cstdlib. С чего начать? Я проорал когда мне друг прислал код на двадцать строк, который я потом заменил на один сканэф. Хочу использовать объекты вместо поплясывания с бубном.
утечки памяти и дыры в безопасности через которые тебе суют эксплоиты это конечно не так плохо как попердывающий гэрбэж коллектор
... и сумашедших
>дыры утечки память
Я вот чёт не пойму, а как тогда работае т ядро линукс? Если поверить всем шизикам, затирающим про то, что невозможно написать на си что-то больше, чем хелоу ворлд, и чтобы там не было на каждом шагу сиг фолт кор дампед и утечек памяти, то линукс это просто одна большая утечка памяти, но ведь это не так. И не каждый день там новые дыры находят
{
public:
int a = 5;
int b;
A() {}
};
Конструктор занимается инициализацией полей? То есть A неявно выполняет in-class initialization (C++ 11), делая a = 5? И что он делает с b? Автоматически инициализирует нулем или оставляет мусор в этом куске памяти?
Конструктор делает то, что в нём написано. В твоём примере он ничего не делает.
Кажется мой пост удалили, я же вроде бы уже писал ответ и обещал в воскресенье вечером показать что сделаю.
Да, я нашёл по твоему названию тест и эти 35 задачек пытаюсь решать программой.
Немного не по теме, но я думаю тред стерпит.
Вбил пару примеров вручную и вроде сработало - а потом я подумал что это фигня какая-то, и решил напрямую из изображений выделять минимальное количество параметров, а потом эти несколько параметров в виде набора строк, столбцов, диагоналей и неупрорядочненного набора кормить уже другой сетке. И немного урылся.
Вот на видео оно пытается пятью нейронами описать картинку (там пять элементов которые есть-нет). По какой-то причине оно описалось тремя (два значения нулевые), и я не уверен сможет ли оно по таким цифрам найти верный ответ. Если вбить вручную пять чисел 0/1 - то вторая нейронка этот пример решает, нужно всего лишь подобрать такой тип слоёв, чтобы оно выписало такие 5 чисел.
Пришлось немного вникнуть в matplotlib для вывода изображений, в многопоточность на питоне, чтобы обновлять изображения на лету (встроенный функционал блокировал интерфейс, так что даже окно нельзя было передвинуть), opencv для совмещения изображений (по какой-то причине примеры с разными номерами смещены на несколько пикселей иногда) + пришлось их размыть чтобы пиксельный шум убрать, ну и нейроночки потрогать.
Как развлечение для выходных - очень ничего, мне прям нравится с этим играться.
Тред стерпит, если ты на крестах и куде сеточки классификаторы или хотя бы блюр написал. Но чую, что ты пишешь на пихоне говнецо по перекладываию датасетов между либами.
Тогда на каком этапе и что именно отвечает за инициализацию полей?
Ты всерьёз сомневаешься что я или кто угодно ещё из треда может написать блюр?
Совсем не понял на что ты негативишь и по какой причине.
>Конструктор занимается инициализацией полей?
Да. https://timsong-cpp.github.io/cppwp/n4861/class.base.init#13
>То есть A неявно выполняет in-class initialization (C++ 11), делая a = 5?
Не знаю, что такое in-class initialization, в общем, да. См. https://timsong-cpp.github.io/cppwp/n4861/class.base.init#9.1
>И что он делает с b?
b — default-initialized. https://timsong-cpp.github.io/cppwp/n4861/class.base.init#13
В коде, который написан в стиле С++98, ага. В таком коде и находят дыры по большей части. Норм челики в 2к21 пишут на современных плюсах, активно эксплуатируя RAII, тем самым избегая всей этой параши на изи, не получая при этом дикий оверхэд от сборщика говна.
сейчас у меня на руках два оффера: один по комп графике (шейдеры там, vulkan и пр) и один по комп зрению (тут уже сеточки + питон + с++)
оба направления интересны, обе компашки приятные, пусть и не крупные
что посоветуете? зп не очень важна, но в целом разрыв небольшой (10к)
> в стиле С++98
анрилейтед, UB можно получить тысячей способов, каждое UB потенциально дыра безопасности
нет
Только в shared_ptr вообще-то, который статистически меньше используется, чем unique_ptr, который фактически такой же быстрый, как и сырой указатель. И да, даже если ты нарочито обмажешься shared_ptr, у тебя будет меньше оверхэд, чем от сборщика мусора, и потребление самой памяти будет тоже ниже.
>>1970489
Есть целая прослойка типов софта, при написании которых тебе приходится иметь дело с языками, в которых есть UB. Это не плохо и не хорошо, это требует осведомленности и определенной квалификации от программиста.
> И да, даже если ты нарочито обмажешься shared_ptr, у тебя будет меньше оверхэд, чем от сборщика мусора, и потребление самой памяти будет тоже ниже.
Не верю.
Возможно ты блюръ напишешь, только работать он будет раз в 5 медленнее, чем должен. Для игры в змейку тебе в другой тредик.
Довольно близкие темы, так что можешь просто кинуть монетку.
Ебаное быдло, я вообще мимо проходил. Мать твою ебал, сестру твою ебал.
нихуя себе у вас в крестах приколы встречаются
не очень понимаю, почему не просто auto или decltype((auto))
Если просто auto, то отбрасывается квалификатор ссылки и const. Действует как вывод аргументов в шаблоне.
так ну да
но auto в decltype как раз же отбрасывает константность и ссылку и имеет тип, ну, допустим item
а потом deltype(item) разве может дать что-то другое, кроме item?
ладно бы delctype((item)) дал бы еще item&
но вот без скобок, определяющих выражние какой смысл то?
Не знаю, как оно работает, но возвращает ссылку.
не совсем из си, но залетный, да
короче в спп можно ебануть такую инициализацю типа
class A
{
___Item i;
___void foo() {
_____Item i();
___}
}
правильно понял?
Нет, это то, что скрывается под акронимом raii.
g захватывает ресурс - в данном случае мьютекс, но это может быть память, файл, подключение к бд и тп. При выходе из области видимости g уничтожается, и в деструкторе освобождает ресурс. В том числе если например в глубине вызовов функций бросится исключение.
Таким образом одной строчкой ты гарантируешь что не забудешь освободить ресурс и что он освободиться без передачи кодов ошибок из ебеней кода в случае если что-то пойдет не так.
Естественно в деструкторе можно делать не освобождение ресурсов, а например просто последовательность действий, которая будет исполнятся при выходе из функции в любом месте (если больше одного ретурна).
Минимум там нужен алгоритмист, железячник, бэкендер и девопсер. Тимлид и 2 тестера это лишние колёса в телеге. Двачую, что тимлид там редкостный мудак (которого уволить жалко), поэтому его окуклили в маленькое подразделение, чтоб нормальным людям не мешал работать.
понял, логично
А ешё потому, что если такое солнышко уволится, то работа встанет колом на пару месяцев. А вновь пришедшим придётся разбираться в коде с помощью телекинеза.
> у тебя будет меньше оверхэд, чем от сборщика мусора
ну да сборщики мусора тупые же писали, любой крестовик лучше напишет
> с языками, в которых есть UB
политкорректное название C/C++
люто плюсую
у самого были моменты, когда такие рок звезды либо звездились пиздец как либо все делали крайне посредственно
>политкорректное название C/C++
В том же хипстерском расте тоже есть UB. В любом системном языке всегда было, есть и будет UB разве что только если не изобретут новую йоба-хардварь, которая будет работать по неведомым законам квантовой физики, под которую надо будет переделывать всю поднаготную
Но ведь в ассемблере нет UB, это фича исключительно сишки и производных, чтобы упросить реализацию.
Если на него действительно так много завязано, значит он там долго работал. За троих работал. За одну зарплату. Долго.
>работа встанет колом на пару месяцев
Контора в накладе, очевидно, не останется.
> системном языке
ещё одно название C/C++
> В том же хипстерском расте тоже есть UB
поэтому он и дерьмо
> В любом системном языке всегда было, есть и будет UB
таких как ты нормализаторов хуйни называют говнохранители, ты в курсе?
Просто ты еблан и не понимаешь, что невозможно всё писать на managed языках. Есть целая отдельная Вселенная под названием системное программирование, без чего всё остальное просто не существует, это альфа и омега, оплот всех информационных технологий. Вангую, ты из тех мальчиков-колокольчиков, которые начинают терять сознание от слова "указатель". Если у тебя хуёвая квалификация, это не означает, что языки с UB становятся автоматически говном. Толковые программисты умудряются это эксплуатировать с целью написать короткий и быстрый код макрос container_of в ядре Линукса - хороший пример
Есть. Ты можешь случайно выйти за пределы буфера, случайно разыменовать нулевой указатель и т.п. Всё это UB.
UB != ансейф. Все последствия выхода за пределы буфера и прочее описаны в доках к ОС и процессору, они всегда одинаковы и предсказуемы. А сишка в этих случаях буквально говорит "да поможет тебе бог".
В твоей жизни?
Он же просто юзает итераторы, и если они гарантируют порядок, то и for соответственно.
Тебя это ебать не должно.
Нет, дружище, это UB. Ты можешь случайно перезаписать указатель на другой валидный адрес, перенаправив поток исполнения программы в произвольный участок исполняемой памяти, тем самым изменив ход программы. Но может не повезти и, перезаписав указатель на невалидное значение, программа крашнется. К тому же, при переполнении можно испортить любые другие данные, которые могут повлиять на поток исполнения программы самыми разными путями. Также и с разыменовыванием нулевого указателя - это супер предсказуемо в современных операционных системах, так как современные ОС запрещают маппить первую страницу памяти (от адреса 0х0 до 0х4096 не включительно), но это не отменяет того факта, что null pointer dereference - это UB. Погугли и изучи вопрос как следует.
еблан как раз ты, раз не понимаешь что на unmanaged языках лучше писать только в случае крайней необходимости а не просто потому что можешь и всё работает "быстро"
Во всех книжках, справочниках пишут, что он обработает диапазон. И ни слова о порядке.
Швайн стекломойный, я писал именно про системное программирование, а не в целом за всё программирование, зеньки свои протухшие протри.
ото идет от begin() до end()
Многопоточность через жепу затолкали и квантмех затолкают. Пополам с шаблонами - для вязкости.
Добавят в стандарт отдельной главой всю квантовую теорию. Расширят определение UB, теперь любое обращение к переменной тоже UB, потому что на классическом и квантовом компьютере может дать разные результаты.
я прочитал для развлечения джосаттиса "стандартную библиотеку с++", неплохо написана, но слишком простая и поэтому скучновато
а, хотя у джосаттиса все книжки простые, для начинающих, в общем
разве что "шаблоны с++" где он в составе авторов указан посложнее книжка и все
Читай Александреску.
Да что угодно пиши, заебали уже чтецы блядь. Вы не на уроке литературы, код надо ПИСАТЬ.
> А что писать-то?
Кривой и глючный говнокод из копипасты со стаковерфлова из-за незнания теории.
Пиши код, не еби голову. Ты первые несколько лет будешь писать говно, а вся охуенная теория вылетит из головы из-за отсутствия практики. Когда будешь писать код и будут затруднения - вот тогда будет смысл писать.
А если я уже сейчас пишу код, он мне нравится а дизасм годболта показывает мне что я молодец?
Это в какой из книг Страуса не описывается СТЛ?
Первое - это толстый. исчерпывающий справочник. Такое не читают от корки до корки, а обращаются по необходимости.
Второе - примеры решения всеразличных задач с помощью STL.
Третье - несколько устаревшие советы для практикующих программистов.
Больше на русском по STL ничего и нет.
Лучшим выбором будет Галовиц + Джосаттис в качестве справочника по необходимости.
Блин, я думал что писателя книжек зовут Джо Саттис. А это оказывается фамилия такая.
>Блин, я думал что писателя книжек зовут Джо Саттис. А это оказывается фамилия такая.
Я его так называю, в 2ва слова, хотя знаю, что это одна фамилия.
обсессии в виде навязчивого разделения слов на слоги
Я бы делал с использованием qt. Да, в qml придется покопаться, но за один-два дня можно понять суть, на ру ютубе есть небольшой курс роликов по qml, правда, он на одном моменте обрывается, но тебе хватит
А я думал, что создателя Windows Internals звали Соломон-Руссинович
>qt
Спасибо
>qml
Прочитал и понял, что это на js придется писать и мне это не подходит. Я хочу изучать плюсы.
Потыкай любой настоящий ассемблер, почитай про архитектуру ЭВМ и можешь хуярить на любом питоне. Там просто читаешь входной поток построчно, в зависимости от команды первым словом вызываешь нужную функцию, она будет менять значения в памяти и регистрах, которые будут у тебя представлены тупо массивами.
Там в жс можно особо не залазить
> пишет что жава тормозит
> я писал именно про системное программирование
просто иди нахуй // похуй на системное программирование, хоть в жопу там ебитесь своими UB вместе с остальными дедами, просто не внушайте детям что это нормально
А потом дети вырастут и узнают что деда мороза нету и боженьки тоже нету, а системные пердоли есть.
ну смотри: один из основных принципов хорошей архитектуры - минимизация интерфейса класса, те класс предоставляет минимальный интерфейс
а все функции-помощьники, делающие дополнительные дела, делаются свободными
но чтобы объединить все это в единую сущьность, ты используешь неймспейсы
по крайней мере, это прямое объяснение господина страуструпа
Спасибо
я вот почти зумер (на 3 года старше), но стыдно за чела
имхо, системное программирование сейчас одна из наболее интересных областей
>а все функции-помощьники, делающие дополнительные дела, делаются свободными
А если брать их объединять их в класс статичными методами это норм или плохой тон?
Это проще показать на примере:
У тебя есть свой класс С, с какой нибудь структурой внутри, неважно, сделай чтобы скомпилировалось следующее:
С с;
с = 1 + с;
std::cout << c;
Почитал про буфер и ничего не понял. Задача такая: функция должна принимать пойнтер на аррей чар, промпт, делимитер. Ретерн обратно отдает тот же текст. Вот заколовок char getcstr(const char prompt, std::istream& istr, char delimiter); Но нельзя исползовать струну. Пытался почитать про буфер чтобы как то считать колличество символов а потом аллокировать место, но так и не допер. Думал создать как-нибудь второй путь для стрима чтобы тупо прогнать через цикл и посчитать чары индексом. Но тоже не получилось. Нехватает знаний как это все работает behind the scenes, тыкаюсь как тот имбецил с кубиком в шарообразное отверстие. В итоге как лох ИМХО выделил заранее большой аррей чар но бля хочу как то посчитать символы до аллокации.
Уже придумал несколько названий shit:: lapsha:: sizo:: makaka::
Я мимопрошёл, но в чём подвох?
https://ideone.com/lE5nzN
Класс C со структурой внутри, всё согласно описанию. Можно структуру D внутрь C занести и всё будет работать так же.
Свит хоум функционалщина, тупа лике.
Они хоть и объявляются внутри класса, но не являются его методами. Я пытался объяснить анону наверху зачем нужны функции хелперы в неймспейсе вместо статических методов.
А ты вообще не в тему.
ну дак хули, все написано потому что
это еще в нулевые были незакрытые темы, типа виртуализация под x86 или крипта под x86 или медиа-расширения процов (нужно было писать работу с видево быструю)..
все это было связано с тем что добавлялись новые инструкции в процессорах ну и появлялась возможность запиливать соответствующий системный инструементарий под эти задачи (виртуализация, криптуха, медиа)
а сейчас все это написано уже, а программисты что этим занимались идут нахуй
>как это все работает behind the scenes
Кернигана и Ричи читай и https://clc-wiki.net/wiki/K&R2_solutions или еще есть бумажный "решебник".
Фактически большая часть книжки про реализацию библиотечных функций си.
>про буфер и ничего не понял
Буфер-буфером, а ввод-вывод еще и от операционной системы зависит. Поэтому в книжке по крестам или по сям ты и не найдешь полной информации, как работает ввод-вывод на твоей системе.
> все это написано уже, а программисты что этим занимались идут нахуй
чисто классический двач: работы нет, все плохо, работаем за хуй без масла
ищите плохо, господа, много устройств на линуксе. Если у нас не 100500 разработок операционок, то это не значит, что нет работы
у меня знакомые постоянно ищут системных прогеров, потому что не могут найти нормального: либо джанго-питонист, который решил написать на си пару строк, либо овощи с двача
Он тебе говорит про массовый спрос, а не про поиск левши, который блох в ядре линукса будет ловить. Есть ещё целый ряд направлений, где надо два с половиной рукастых спеца на зп от 200к.
Не вариант. Говно на директоре сказал: надо винду, гейлид ответил: есть.
IOT девайсы клепают направо и налево, стартапы в этом направлении клепаются по кд, и там требуются много байтослесарей. Правда, в СНГ параше с этим действительно туговато, поэтому тем, кто хочет серьёзно вкатываться в системное программирование, советую прежде всего завести трактор.
https://docs.microsoft.com/en-us/visualstudio/debugger/finding-memory-leaks-using-the-crt-library?view=vs-2019
Перестань пить стекломой, пчел, первая же ссылка в гугле
Калчер не калчер если не высрет колкость на ровном месте. Я спросил про бест практис ибо только-только перекатился на шизлу и нихуя не ебу.
>устраиваешься на работу в технологическую международную компанию
>перестаешь писать и сидеть на харкаче, так как нету времени просто совсем
Блять, вот идите нахуй просто со своими нвидия-кунами и прочими сеньерами-помидорами. Если кто-то вам пишет в цпп треде, что он охуенный и успешный - скорее всего он хуесос и пиздабол.
Ты в первый раз устроился что-ли? Естественно в начале вьебываешь.
В чем проблема, пчел? Я на дваче 13 лет сижу, еще тот самый захватил. Потом вкатился, перекатился, и в нвидии очутился. Время у меня дохуя, я работаю удаленно, и у нас тут не хуйня с фотографиями экрана и прочим, а нормальное место, где не надо жопу высиживать 40 часов, а только делать вовремя дела.
Первый год я реально работал пиздец, сейчас уже понятно что надо, когда надо, когда можно вообще хуй положить. Когда киберпанк вышел - я за неделю нихуя вообще на работе не сделал, только играл дома (мы все еще удалёним). Потому-что знал, к какому моменту от меня нужны задачи.
Ну, у меня кстати есть readonly доступ к сырцам драйверов. Но я их не читал никогда, для интереса только Nvidia Control Panel смотрел как сделана хуево, на MFC
Оно и видно
Работаю в Австрии 4х8 надсмотрщиком-наставником. В самом худшем случае в день уделяю 3-4 часа на код. В основном это тупо подправить говно за джуно-мидлами. Всё остальное время я предоставлен сам себе в собственном кабинете. Вопросы?
лол
чел, речь не про то что работы нет, а про то что рынок системного программирования оче оче сильно сжался за последние 10 лет по сравнению с концом 90х и началом 10х
а твои знакомые наверняка ищут челика задешево на поддержку существующего кода, чисто вторая линия саппорта скорей всего
>Когда киберпанк вышел - я за неделю нихуя вообще на работе не сделал, только играл дома
блядь, минус репутация тебе
> а твои знакомые наверняка ищут челика задешево на поддержку существующего кода, чисто вторая линия саппорта скорей всего
nope
>Мнение петушка
это прямое оскорбление
в то же время указать на то что получать удовольствие от игросодержащего продукта "киберпанк 2077" могут только люди с дурным вкусом, оскорблением никак не является
То, что для петушка дурной вкус - для нормальных людей значения не имеет. Пусть кукарекает
оскорбление
Хуй с ними со вкусами.
Но вот, что в нвидии половина инженегров верит в сказочки про киборгов - это пиздец упадок.
Шиз, то что ты хейтишь что-то популярное не делает тебя интересным
Да они там все тупые) В нвидиа инженеры даже страуструпа не читали, в ред проджекте вообще довены одни, не знают как банально оптимизировать графику, лол. Вот я умный, мог бы за двоих пахать, но только собеседование не могу пройти, ибо кроят каким-то нерелевантными вопросами про деревья
Главное что не в нарды, всё остальное похуц.
Скорее всего на каком-нибудь electron'е.
В душе ниипу, никогда его себе не ставил, и вам не рекомендую. Драйвера раз в пару месяцев можно руками обновить,а больше оно нахуй ни для чего не нужно, если ты не СТРИМЕР
Фу блять фу нахуй
>Когда киберпанк вышел - я за неделю нихуя вообще на работе не сделал, только играл дома (мы все еще удалёним)
У вас плохо с дисциплиной, мистер "700к в месяц". Думаете Вы особенный? Но Вы ошибаетесь. Мы лидируем в области программного обеспечения, потому что каждый сотрудник чувствует себя частью целого! Если у сотрудника проблемы - проблемы и у фирмы. Вам нужно для себя решить - или вы выкладываетесь по полной, или мы с вами больше не работаем.
Так он тестировал продукцию фирмы, взвалил на себя работу других отделов, работоголик!
https://www.glassdoor.com/Interview/NVIDIA-Interview-Questions-E7633.htm?filter.jobTitleExact=C+++Developer#InterviewReview_22096357
>>1972806
Достаточно хорошо, чтобы промоутили и накидывали денег ежегодно.
О, хорошая идея измерять популярность языков по количеству постов на двачах. даже так лучше чем по количеству запросов в гугле
Не позёрский перекат.
https://2ch.hk/pr/res/1973041.html (М)
Не позёрский перекат.
https://2ch.hk/pr/res/1973041.html (М)
Не позёрский перекат.
Есть чудаки, которые на mingw-g++ умеют компилировать?
Короче решил себе на голову кросскомпиляцией на винде озадачиться, да еще OpenCL в программе использовать.
Без ОпенСЛя прога норм собиралась как в вижуалке, так и с mingw. С подрубкой ОпенСЛя возникли проблемы.
Сделал отдельную прогу для проверки СЛя: https://pastebin.com/fDGituYE
В общем сейчас дошел до того, что в 32-битном режиме с win32 исходниками СЛя (от nvidia cuda) оно даже работает. Но с 64-битными исходниками пахать не хочет - компилируется без ошибок, но где-то при первом же вызове clGetPlatformIDs оно просто выходит без слов. Пробовал даже с отладкой компилить и gdb шагать, но он естественно не показывает где возникает проблемес (либо я нубас и не разобрался).
В итоге обнаружил еще, что есть отдельный mingw-w64 под 64-битные сборки, но его использование не дало новых результатов.
Есть конечно варик, что мингв криво установлен, или какие-то библиотеки g++ не рассчитаны, чтобы работать с opencl, или сама opencl.lib не годная. И возможно под линухом оно нормально запашет, я еще не тестил. Но хотелось бы иметь возможность прямо с винды проверять возможность сборки под g++.
Есть какие-то идеи?
Попробуй разные версии gcc. Попробуй на виртуалке с лялексом организовать кросскомпиляцию.
"Helllo world" ?
Если будешь помогать, поведешь себя как жалкая псина, которой подкинули огрызок внимания.
Завтра заходишь в кабинет с ноги (наступая на учебник "С++ за 21 день" на полу) и резко подрыгивая торчащими из тела частями громко и четко посылаешь всех нахуй с их лживыми мольбами о помощи. Все тянки (а главное я) будут твои.
>Ноутбук в руках держать
На нём обязательно должно быть куча стикеров с логотипами GNU и арча.
1ll. нашел.
900x506, 0:05
Вот они. Поколение тупых формошлёпов, не знающих даже азы фундаментальных наук. Харкнул бы тебе в ебало.
Вроде для такого есть методы аппроксимации функций.
Тонко))
Когда некие фунции или классы можно объединить по их смыслу. Например, у тебя может быть неймспейс geometry, где будут ректанглы, точки, линии.
Плюс если добавляешь какие-то хедеры с методами, типа хелперов, лучше тоже в неймспейс, чтобы нагляднее было в местах вызова
говно
говно
Стек, компенсация?
1) Первое издение охватывает только С++ 11, второе ещё и 14 и 17. Много ли потеряю, если куплю первое издание?
2) Если не много, то стоит ли брать русскую версию? То бишь как там с качеством первода?
Звёзды на гитхабе - не показатель качества кода. Совсем.
std::thread, std::packaged_task, std::async появились с 11 плюсами, потому первое издание читать можно. Я не помню, что пришло с 14 плюсами для многопоточки, но не припомню больших подвижек до 17 плюсов, где появился многопоточный STL. В 20 плюсах приходят корутины
А вообще курс Гримма на educative.io очень полезен
Это копия, сохраненная 20 мая 2021 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.