[Ответить в тред] Ответить в тред



<<
Назад | Вниз | Обновить тред | Автообновление
684 | 31 | 151

CPP тред /cpp/ Аноним # OP  18/07/18 Срд 17:59:48  1230522  
1-13.png (37Кб, 268x268)
Вместо шапки — https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы:
- http://en.cppreference.com/w/
- http://www.cplusplus.com/reference/
- http://www.open-std.org/JTC1/SC22/WG21/
Аноним 18/07/18 Срд 18:08:41  1230527
>>1230522 (OP)
>http://www.open-std.org/JTC1/SC22/WG21/
Почему не http://eel.is/c++draft/??????
Аноним 18/07/18 Срд 18:17:42  1230532
>>1230522 (OP)
Обосрал весь перекат.
Аноним 18/07/18 Срд 18:45:53  1230544
Ну как так можно было обосраться с названием?
Аноним 18/07/18 Срд 20:23:54  1230607
>>1230522 (OP)
Тут тред по C++ или нет?
Аноним 18/07/18 Срд 21:45:56  1230643
У меня к вам очень простой вопрос.
Нахуя нужны поинтеры и референсы, если можно просто использовать pass by reference?

Поинтер хранит адрес.
Референс хранит адрес.
Поинтер отличается от референса только тем, что его можно инициализировать и переприсваивать.

У переменной, на которую будет ссылаться левый поинтер или референс, уже есть адрес. Нахуя мне нужен ещё один референс, если переменная является референсом на себя же. И нахуя мне нужен поинтер?

Аноним 18/07/18 Срд 21:48:14  1230644
>>1230643
Пойнтер нужен для пойнтерной арифметики, например.
Аноним 18/07/18 Срд 22:01:55  1230652
>>1230644
Тогда ещё один вопрос, а почему на референсе нельзя?
Разницы ведь никакой.
Аноним 18/07/18 Срд 22:05:47  1230655
>>1230652
Потому что референс должен всегда указывать на валидный кусок данных, что противоречит идее выполнения адресной арифметики с ним. Даже в расте ссылки и указатели - разные типы. Просто указатели считаются небезопасными и их использование ограничено.
Аноним 18/07/18 Срд 22:06:42  1230658
>>1230643
поинтер - это объект, а ссылка - нет
открой липпмана или прату и прочтай внимательно про поинтеры и референсы
Аноним 18/07/18 Срд 22:16:52  1230660
>>1230655
>Потому что референс должен всегда указывать на валидный кусок данных, что противоречит идее выполнения адресной арифметики с ним.
Почему же противоречит? Скорее наоборот, поинтер может хранить совершенно нерелевантный адрес, что ставит под вопрос целесообразность арифметики над мусорными данными.
Если, конечно, я правильно представляю область примерения поинтерной арифметики. Которая для меня ограничивается, перебором массива данных.
>>1230658
>объект
В каком смысле объект?
Насколько я понимаю, поинтер - это тупо 4не обязательнобайта, которые банально хранят адрес.
Аноним 18/07/18 Срд 22:22:06  1230661
>>1230660
> Почему же противоречит?
Потому что к указателю ты можешь прибавить произвольное число и получаешь абсолютно валидный указатель, который может указывать куда угодно (даже на несуществующий кусок памяти).
> Которая для меня ограничивается, перебором массива данных.
Для этого указатели (как и арифметика с ними) не нужны совсем. Лично я указательной арифметикой только в embedded пользуюсь и то очень редко.
Аноним 18/07/18 Срд 22:28:35  1230662
>>1230655
>Потому что референс должен всегда указывать на валидный кусок данных, что противоречит идее выполнения адресной арифметики с ним.
Адресная арифметика тоже определена только для валидных поинтеров (на элементы массива).
Аноним 18/07/18 Срд 22:29:20  1230664
>>1230661
>Потому что к указателю ты можешь прибавить произвольное число и получаешь абсолютно валидный указатель, который может указывать куда угодно (даже на несуществующий кусок памяти).
Написанное в стандарте тебя неприятно удивит.
Аноним 18/07/18 Срд 22:29:36  1230665
>>1230660
>В каком смысле объект?
>Насколько я понимаю, поинтер - это тупо 4 (не обязательно) байта, которые банально хранят адрес.

Указатель всегда занимает какое-то место в памяти (зависит от разрядности системы) и там хранит адрес.

Что из себя представляет референс - решает компилятор и стандарт его в этом никак не ограничивает. Поэтому к нему нельзя применять арифметику. Также sizeof(T&) != sizeof(T*), потому что для ссылки отдельные правила.
Аноним 18/07/18 Срд 22:30:33  1230666
>>1230664
Чем удивит? Что разыменовыване подобного указателя это UB и компьютер может выебать мою мамку и это не будет противоречить стандарту?
Аноним 18/07/18 Срд 22:31:36  1230668
>>1230666
>Что разыменовыване подобного указателя это UB
Уже при арифметике может быть UB
Аноним 18/07/18 Срд 22:33:07  1230669
>>1230668
Только разве что переполнение.
Аноним 18/07/18 Срд 22:33:16  1230670
>>1230665
>Указатель всегда занимает какое-то место в памяти
Не обязательно.
Аноним 18/07/18 Срд 22:34:18  1230672
>>1230669
Нет, не только.
Аноним 18/07/18 Срд 22:35:13  1230673
>>1230672
Например?
Аноним 18/07/18 Срд 22:36:01  1230674
>>1230673
Например, открой уже стандарт. Ссылка во втором сообщении.
Аноним 18/07/18 Срд 22:38:37  1230677
>>1230674
Мне лень читать эту портянку и выискивать все неоднозначности в ней. Всё равно я указатели почти не использую. Если тебе лень или ты сам не в курсе, то ладно. Пусть это останется тайной.
Аноним 18/07/18 Срд 22:40:36  1230681
>>1230677
>Мне лень читать эту портянку
Ну тогда сиди тихо под шконкой, не вылазей со всяким
> референс должен всегда указывать на валидный кусок данных
Аноним 18/07/18 Срд 22:43:06  1230682
>>1230681
Ладно-ладно, хранитель бессмысленных знаний, успокойся. Ты победишь любого в "своей игре" если тема будет "UB в языка C++".
Аноним 18/07/18 Срд 22:45:30  1230683
>>1230682
>бессмысленных знаний
Пригорело и ушёл в обесценивание?
Аноним 18/07/18 Срд 22:46:31  1230685
images[1] (36Кб, 517x648)
Добрый вечер. Мимонуб в треде, прошу подсказать, куда мне идти.
Вопрос такой: предстоит что-то отвечать по теме Network Programming в C++. До этого читал Страуструпа, начал Коплиена и так, пару курсов прошел. Нигде о нетворке ни полслова. Что мне нужно будет знать и где это можно узнать?
Шапку смотрел, гугл гуглил, нашел только пикрелейтед. Что скажете, хорошая книга, может лучше с чего другого начать?
Аноним 18/07/18 Срд 22:49:10  1230688
>>1230683
А в чём ценность этих знаний? У тебя хоть зарплата выше средней?

Ты не пойми меня неправильно, на самом деле у меня действительно баттхёрт из-за того что я не знаю все обстоятельство при которых код на C++ выдаст мне UB. Это так ужасно. На самом деле ведь тебе меня жаль и поэтому ты пытаешься пополнить меня этим знанием, чтобы сделать меня сильнее. Ты как сенсей в этих старых фильмах про боевые искусства.
Аноним 18/07/18 Срд 22:49:19  1230689
>>1230655
>Потому что референс должен всегда указывать на валидный кусок данных
Та не, можно висячую ссылку создать и по ней зайти в невалидный кусок данных.
int& f() { int i = 12; return i; }
int& ref = f();
ref += 1;
Аноним 18/07/18 Срд 22:51:39  1230692
>>1230688
>А в чём ценность этих знаний? У тебя хоть зарплата выше средней?
>
Он C++ в каком-нибудь вузике преподаёт или в школе учителем информатики трудится. Зарплаты у них сам знаешь... Вот и бесится.
Аноним 18/07/18 Срд 23:06:20  1230695
>>1230688
Да, отрицание — это распространённая психзащита в наше время.

> У тебя хоть зарплата выше средней?
Видимо, этот вопрос должен намекать, что твоя-то выше (несмотря на то, что ты не можешь читать стандарт из-за незнания языка), а значит ты прав.
Но само твоё пребывание на сайте анимешников и битардов (даже спец. разделы тут на соответствующем уровне) делает смешными попытки произвести подобное впечатление.

>>1230692
>Он C++ в каком-нибудь вузике преподаёт или в школе учителем информатики трудится.
Семён не заметен)
Как раз в вузиках преподают, что к указателям можно прибавлять произвольное число и при этом значение указателя увеличится на sizeof указуемого типа умножить на прибавляемое число (или что-то в этом духе).
Аноним 18/07/18 Срд 23:07:50  1230696
>>1230670
Если речь не идёт об оптимизации, то о таких глубинах глубин мне не ведомо.
Аноним 18/07/18 Срд 23:12:00  1230699
>>1230695
> Да, отрицание — это распространённая психзащита в наше время.
Прежде чем использовать слова неплохо бы узнать их значение. Или это такая самоирония и ты сделал вид, что отрицаешь мою исповедь о том, что я действительно не знаю всех случаев когда C++ выдаст ub?
> Семён не заметен
А вот это уже паранойя. Осторожно, а то дальше будешь вместо собеседников видеть одних врагов.
Аноним 19/07/18 Чтв 00:42:49  1230735
>>1230695
>к указателям можно прибавлять произвольное число и при этом значение указателя увеличится на sizeof указуемого типа умножить на прибавляемое число (или что-то в этом духе)
А можно для дремучих, что здесь не так?
Аноним 19/07/18 Чтв 00:45:32  1230738
>>1230735
Тебе не понять всю глубину C++ если попытаться объяснить это кратко и простыми словами. Иди читай стандарт от корки до корки и пока не прочтёшь не возвращайся.
Аноним 19/07/18 Чтв 00:56:40  1230740
>>1230738
Не, не хочу стандарт от корки до корки. Скажи, что по сетевому-то читать.
Аноним 19/07/18 Чтв 00:58:32  1230741
>>1230740 >>1230738
Вот не готов еще читать стандарт, понимаешь? Видимо, это какой-то высший уровень, когда все книги пройдены и ты уже language lawyer, Я еще далеко до этого. Мне нужно что-то типа брошюры Network Programming in C++ for dummies, можешь мне что-то такое порекомендовать?
Аноним 19/07/18 Чтв 00:59:43  1230742
Fortranbookcover.jpg (51Кб, 200x282)
>>1230738
Если б он с картинками был или сюжет интересный - я б полистал.
Аноним 19/07/18 Чтв 01:04:05  1230743
>>1230741
А зачем тебе именно по плюсам книжка? С теорией и примерами на С должно быть много хороших книг. Спроси у красноглазиков.
Аноним 19/07/18 Чтв 01:10:43  1230745
>>1230743
В плюсах же есть какие-то исключительно плюсовые инструменты для этого всего?
Аноним 19/07/18 Чтв 01:16:55  1230746
>>1230745
Да вроде всё то же самое. В с++11 потоки добавили, а про сети пока что только разговоры идут - мол вроде и надо, но как-то не до этого.
Сам я не в теме, но вроде на голых плюсах только мазохисты пишут, а остальные используют сторонние либы типа boost.asio.
Аноним 19/07/18 Чтв 01:20:10  1230747
Можно сказать, что наследование — это в каком-то смысле агрегация?
Ну по сути-то класс наследник агрегирует в себе экземляр суперкласса. Конструктор и деструктор суперкласса вызываются и отрабатывают между началом и концом работы конструкторов и деструкторов производного. Всё так?
Аноним 19/07/18 Чтв 01:32:46  1230751
Аноны, можете какие библы посоветовать для работы с изображениями? А если точнее, хочу захватить часть изображения указав фрагмент, и отправить его в отдельную переменную.
Аноним 19/07/18 Чтв 02:31:27  1230761
>>1230747
Это как-то притянуто за уши.

Никакой отдельный экземпляр суперкласса не создаётся, насколько мне известно, хотя я не плюсоёб.

Да, конструктор суперкласса отрабатывает, но он просто делает свою часть работы с экземпляром данного (производного) класса.

И, обычно, при рассуждениях на тему ООП агрегация или композиция (+ делегирование, если нужно) рассматривается как альтернатива наследованию.
Аноним 19/07/18 Чтв 02:38:48  1230762
>>1230747
По сути - да. Но в НАСЛЕДОВАНИИ ты забираешь интерфейсы, а в агрегации ты пишешь свой собственный
Аноним 19/07/18 Чтв 02:42:28  1230763
>>1230762
Ну если скажу, что наследование частный случай агрегации и сделаю эти пару оговорок, плюс там про полиморфизм, то за это не отмудохают?
Аноним 19/07/18 Чтв 02:51:31  1230764
>>1230747
Ну тут такое.
Если у тебя базовый класс имеет хотя бы один виртуальный метод, то у него не может быть экземпляра. Если он читсто виртуальный, то у него нет ни данных ни реализации методов и его наследование не может быть агрегированием.
Аноним 19/07/18 Чтв 02:55:32  1230765
>>1230751
libpng, libjpeg - для хождения по внутренностям файлов. CImage маленькая, но предоставляет более высокоуровневое api.
Аноним 19/07/18 Чтв 02:59:35  1230766
>>1230764
Спасибо. Я как раз об этом не подумал. Короче, очень уж условное наблюдение, не ахти.
Аноним 19/07/18 Чтв 03:06:22  1230767
>>1230766
Попробуй посмотреть с другой стороны.

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

Во всех этих случаях речь идёт о повторном использовании кода, но, технически это делается по-разному, и терминология это отражает.
Аноним 19/07/18 Чтв 03:14:59  1230770
>>1230750
OpenCV.
Аноним 19/07/18 Чтв 03:18:04  1230773
>>1230767
Ну да, только он же может агрегированное добро скрыть за интерфейсом. Хотя может и унаследованный метод перекрыть куда-то в защищенные уровни — и прощай типовый полиморфизм, хотя наследование, да, на месте кагбэ.

Блжад, почему же сложно всё так!
А бывает какая-то условно библия ООП, где это с самых базовых аксиом разжевывается? Что-то похожее мне попадалось в первых главах OOD&A, но там потом стремительно унеслось в дебри. А так чтобы подробная экскурсия по азам, чтобы «детки, вот так наследование не делайте, пнятненько» такое бывает вообще?
Аноним 19/07/18 Чтв 03:21:45  1230775
>>1230773
Конечно существует. Называется практика. Пара написанных программ под 3 к строк и вопросы про ООП исчезнут. Будешь так сказать на кончиках мыслей чувствовать какой подход правильный в ситуации.
Аноним 19/07/18 Чтв 03:33:55  1230776
>>1230765
спс, то что надо.
Аноним 19/07/18 Чтв 03:36:03  1230777
>>1230751
Есть вообще простой вариант: открываешь потоком файл, считываешь заголовок файла, потом заголовок пикчи, а потом в двумерный массив (вектор векторов) читаешь данные пикчи.
И работай, копируй нужный тебе кусок пикчи.
Косяк в том, что .bmp, например, хранится напрямую, а тот же .jpeg - уже не очень, то есть нужно либо курить организацию нужного формата, либо перегонять все в бмп.
Аноним 19/07/18 Чтв 03:40:54  1230778
>>1230763
отмудохают, потому что они рассматриваются как альтернатива друг другу.

С позиции времени жизни объектов: При наследовании объект базового класса будет создан и разрушен одновременно с объектом наследника. При агрегации агрегируемый объект может быть создан и разрушен вне агрегата, который хранит лишь указатель на него.

Также при наследовании тип объекта определяет его поведение. При агрегировании - нет. Например есть класс A и его наследники B, C. Если мы создаём наследника D от B, то он всегда будет вести себя как B. Если же D агрегат с конструктором D(A*), то он может вести себя как любой наследник A.
Аноним 19/07/18 Чтв 10:20:01  1230856
>>1230740
> Скажи, что по сетевому-то читать.
В стандартной библиотеке C++ сетей как бы пока нет (обещают сделать к 2023 году). Так что читать надо будет литературу по конкретным библиотекам, например Boost.Asio.
Аноним 19/07/18 Чтв 11:55:21  1230884
>>1230747
>Можно сказать, что наследование — это в каком-то смысле агрегация?
Не публичное — да.

>>1230761
>Никакой отдельный экземпляр суперкласса не создаётся
Если при аггрегации у меня будет data member "по значению", то отдельный экземпляр тоже не будет создаваться, а будет subobject-ом.
Аноним 19/07/18 Чтв 16:06:13  1231096
Можно каким-нибудь образом установить GCC на винду без еботни с десятком библиотек и сотней шагов? MinGW-W64 стоит.
Аноним 19/07/18 Чтв 16:51:14  1231141
>>1231096
WSL
Аноним 19/07/18 Чтв 17:04:50  1231146
Аноны, выручайте. В проекте юзается статически сбилженая Qt, однако встала необходимость заюзать QWebEngineView из QtWebEngine модуля, для которого статическая сборка не поддерживается.
Можно ли как-то заюзать только dll-ки QtWebEngine-а так, чтобы не тянуть либы других модулей типа qtcore, qtnetwork и тд? они же блять статически сбилженые

Или может кто знает либы для отображения веб контента? Например, так как QtWebEngine основан на хромиуме, можно сделать свой виджет используя Chromium Embedded Framework (CEF). Но помимо овер 20Гб сурсов (это с самим хромиумом), его хуй скомпилишь. Плюс какое-то уебанское API или это я лох
Аноним 19/07/18 Чтв 17:21:43  1231154
>>1231096
Зачем, когда есть студия?
А вообще - пак от дяди Стефана с nuwen.net
Аноним 19/07/18 Чтв 17:41:06  1231169
>>1231096
>без еботни с десятком библиотек и сотней шагов?
https://www.msys2.org/
Аноним 19/07/18 Чтв 17:58:38  1231175
Интересно, кто-нибудь здесь работает на плюсах? Сам имею желание вкатиться в computer vision, а там в основном кресты да питоны. Или это только для сверхлюдей, кресты обычный человек осилить не может?
Аноним 19/07/18 Чтв 19:22:40  1231221
>>1231175
Если потянешь матан, связанный с computer vision, то с крестами проблен не возникнет в принципе.
Аноним 19/07/18 Чтв 19:41:49  1231227
>>1231175
То, что кресты пиздец сложные - это миф. Они безусловно сложнее, чем динамикопараша, но божественное окружение (ты же не дебил копаться каким-нить code::blocks) и компилятор сильно облегчают задачу.

Для типичного вкатывальщика с сосача даже граблями огород прорыхлить неподьемная задача, т.к. он ленивый и тупой. Вот и пишут, что СЛОЖНА.
Аноним 19/07/18 Чтв 23:31:02  1231333
>>1231096
Я сегодня установил. Всё сделал по этой инструкции: https://www.youtube.com/watch?v=8Ib7nwc33uA
Заработало как часы. Зависимости никакой, брат жив.
Аноним 20/07/18 Птн 00:21:31  1231361
>>1231096
>GCC
>на винду
Ну ёбанарот! У тебя на ПеКа не найдётся 20Гб на няшного пингвина? Покопаешься в консольке, поебёшся с Make'ом, поймёшь как эти самые программы собираются. А IDE это всё от лукавого, они скрывают от тебя процесс рождения программы. Поставь себе какойнибудь ебучий калькулятор. В лине можно преспокойнейше без всяких там ide кодить, среда оче дружественная для погромистов. Только читни для начала справочник по башу и какие виды пакетных манагеров бывают.
Аноним 20/07/18 Птн 02:31:39  1231392
>>1231361
Пошел нахуй, красноглазый даун
Аноним 20/07/18 Птн 05:13:09  1231419
>>1231361
У нас в компании есть выделенный человек, который целыми днями занимается обслуживанием нашей билд системы - тонны CMake файлов и всяких скриптов.

Если у тебя дома под столом не сидит такой человек, то программировать под линуксом - боль и унижение.
Аноним 20/07/18 Птн 13:22:58  1231611
Ананасы, такой вопрос.
Есть текстовый файл и в нём записаны пути к директориям
с:\mypath
c:\mypath2

Пробовал через system менять директорию, через chdir, но ничего не срабатывало.
Почему так может быть?
Аноним 20/07/18 Птн 13:28:36  1231616
>>1231392
>Посылает нахуй пользователей единственной адекватной ОС
>Сидит в треде языка, чей предок ( Си) был создан, как раз для создания прародителя этой ОС ( Unix ).
Боже какая же ты мудаебина.
Вангую, ты ебаное днище максимум способное осилить формошлепство на JS.
Аноним 20/07/18 Птн 13:40:02  1231621
>>1231611
Вот точно причину не назову, но есть предположение, что слэши неправильные - когда парсишь текст, используй класс path из <filesystem> - он сам делает нужные слэши, а потом уже делай system("cd "s.append(объект класса path.string())) - должно будет сработать
Аноним 20/07/18 Птн 14:30:39  1231652
>>1231621
> <filesystem>
Почему-то гцц 8.1.0 отказался даже собрать программу с просто подключенным заголовком.

> но есть предположение, что слэши неправильные
Даже просто код system( "cd c:\\" ) тоже не срабатывает.
Ладно, с++ идёт нахуй.
Буду пробовать другими средствами.
Аноним 20/07/18 Птн 14:40:30  1231659
>>1231616
Совсем не в ту сторону вангуешь, пердолик. И свой кусок говна для маргиналов с собой забери.
Аноним 20/07/18 Птн 15:30:03  1231689
Моча вообще тут?
Выгоните этого >>1231659 спермоглота уже из нашего треда.
Аноним 20/07/18 Птн 16:13:52  1231728
>>1230522 (OP)
Посоветуйте актуальный (C++11) справочник (не онлайн) по STL.
Аноним 20/07/18 Птн 16:44:58  1231744
>>1231361
Стоит gcc на шинде и на пингвине, проблем нет.
Алсо, на няшного пингвина и 10 хватит
Аноним 20/07/18 Птн 16:46:55  1231748
Снимок.PNG (23Кб, 1054x392)
Почему vs показывает мой массив как функцию, а не как переменную? Можно это как-то пофиксить?
Аноним 20/07/18 Птн 17:31:30  1231772
>>1231652
Он в семнадцатом стандарте только есть такой. В одиннадцатом тоже есть, но там ебля с ним откровенная

А если вручную передавать в качестве пути, тоже не работает? В другую сторону слэш пробовал?
Аноним 20/07/18 Птн 17:34:00  1231775
>>1231652
>>1231772
Проебался, понял, вручную не катит.
Странно, что не съедает команды
Аноним 20/07/18 Птн 17:38:05  1231777
>>1231772
> Он в семнадцатом стандарте только есть такой
Я в курсе.
Но я как-то раз ставил гцц 7 версии и там пример какой-то работал правда std::experimental::filesystem.

> А если вручную передавать в качестве пути, тоже не работает? В другую сторону слэш пробовал?
Уже по всякому пробовал. Вообще никак.
Попробовал даже вот так myprog тут просто вывод пути к директории | xargs cd
Но тоже не сработало.
Аноним 20/07/18 Птн 18:06:51  1231810
>>1231728
цепепереференс можно официально выкачать архивом https://en.cppreference.com/w/Cppreference:Archives
Аноним 20/07/18 Птн 18:08:43  1231812
>>1231652
>Даже просто код system( "cd c:\\" ) тоже не срабатывает.
В каком смысле "не срабатывает"? `system` порождает шелл и выполняет в нём команду.
На твоей программа изменение директории в другом процессе, естественно, никак не сказывается.
Аноним 20/07/18 Птн 18:10:33  1231813
>>1231812
Ну а почему же тогда срабатывает пресловутый system( "pause" )?
Аноним 20/07/18 Птн 18:11:27  1231814
>>1231813
Потому что system ждёт завершения порождённого им подпроцесса, а подпроцесс при pause не завершается.
Как можно не понимать таких банальных вещей?
Аноним 20/07/18 Птн 18:17:31  1231818
>>1231814
> Как можно не понимать таких банальных вещей?
Для этого есть ты, для этого есть Интернет чтобы напомнить.
Аноним 20/07/18 Птн 18:50:49  1231846
>>1231419
>боль и унижение.
Ну так это же С++ трэд, почему бы и нет?
Аноним 20/07/18 Птн 21:17:51  1231962
>>1231748
бамп вопросу
Аноним 20/07/18 Птн 21:41:03  1231983
Был щас на собесе в одну серьезную международную компанию.
Ответил на все вопросы и решил все задачи на 2-х часовом интервью.

Задавайте свои ответы.
Аноним 20/07/18 Птн 21:46:48  1231989
>>1231983
Что за позиция, что спрашивали
Аноним 20/07/18 Птн 21:47:32  1231991
>>1231227
c++ пиздос сложный когда работу на нем надо искать тысяч на 100, когда в нии прогать или для себя можно за пару недель освоить.
Аноним 20/07/18 Птн 22:03:09  1232001
>>1231989
Позиция вроде на мидла или на сеньора я даже не посмотрел если честно.
Спрашивали много чего, начиная от типовых вопросов по С++, контейнеров, алгоритмов, многопоточности, и т.п. заканчивая задачками на алгоритмы и абстрактное мышление.
Самое забавное, что я нихуя не готовился даже, т.к. приехала тян и мы ебались 3 дня подряд.
Аноним 20/07/18 Птн 22:07:17  1232005
>>1232001
Расскажи про задачи.
Что там было?
Аноним 20/07/18 Птн 23:02:14  1232036
>>1232005
Я боюсь, что они тоже могут тут сидеть и спалят меня, если я расскажу задачи.
Ну задачки такие как бы, про байтоебство, про алгоритмы, про сложности алгоритмов, про структуры данных, типа как что и где использовать, давали задачи, которые надо было решить с их помощью. Давали задачи на оптимизацию алгоритмов. Благо я задрот в этой теме и в байтоебстве тоже, не зря байтоебил на си долгое время и ковырял разные алгоритмы.
По плюсам я не так хорош, но походив на пару собесов я выучил всякие каверзные вопросы.
Ну мне повезло на вопросы на самом деле, я хз, но я откуда-то реально в этих вопросах и задачах хорошо шарил.
Аноним 20/07/18 Птн 23:39:28  1232054
>>1232036
Помнится как-то устроился в крупную международную компанию на мидла. Прошёл перед этим 4 этапа собеса, растянувшегося где-то на неделю. А в итоге работа оказалась таким говнищщем, что я там и года не проработал. Так что сильно не обольщайся.
Аноним 21/07/18 Суб 00:15:49  1232078
>>1232036
>Я боюсь, что они тоже могут тут сидеть и спалят меня, если я расскажу задачи.
NDA подписывал?
Аноним 21/07/18 Суб 00:24:45  1232084
>>1232078
Та не, там первую форму допуска оформляют.
Аноним 21/07/18 Суб 08:25:00  1232135
Пацы, хочу начать изучать C++, может кто-то из вас сможет меня напрпвить по верному пути, с чего начинать, а что возможно и не стоит. Это такая интересная тема, и я очень хочу начать изучать ее, но к примеру на курсы идти, я хз.
Аноним 21/07/18 Суб 08:28:32  1232137
Я бы в принципе и бабки заплатить не против, если здесь был кто-то, кто мог обучить меня, или это я уже загнул?
Аноним 21/07/18 Суб 08:29:08  1232138
>>1232135
Лучше зайди в жс или пхп тред, может ну их нахуй эти кресты?
Аноним 21/07/18 Суб 08:30:01  1232140
>>1232135
Стивен прата лекции и упражнения
В шапке висит
Аноним 21/07/18 Суб 08:40:54  1232144
>>1232138
Чому нахуй?
Аноним 21/07/18 Суб 15:10:44  1232254
>>1232144
Потому что выучил пыху и жс, и сразу можешь что-то делать. А плюсы без предметной области нинужны. Ну сам подумай - сайт ты не сделаешь, парсер не сделаешь, брутфорс не сделаешь.
Аноним 21/07/18 Суб 15:15:20  1232255
>>1232254
ИИ сделаю.
Еще вопросы?
Аноним 21/07/18 Суб 17:44:55  1232370
Snap 2018-07-21[...].png (101Кб, 949x328)
>>1230522 (OP)
объясните мне пожалуйста, почему sizeof(Holder) равен 1 байту, а sizeof(DerivedHolder) равен 2 байтам, ведь оба этих класса содержат внутри только один класс?
Аноним 21/07/18 Суб 18:21:39  1232398
>>1232370
бля это откуда такое говно? Почему вообще размер класса без методов равен 1? Так указатель на него хранится?
Аноним 21/07/18 Суб 18:21:43  1232399
image.png (3Кб, 306x150)
>>1232370
Потому что в крестах наследование (не виртуальное) работает как композиция структур.
Сначала идут данные базовых классов, потом данные наследника.

Например пикрил,
struct A { char c; };
struct B { int x; };
struct C: A, B { ... };

На твоем пике в DerivedHolder один байт занимает пустой базовый класс и один байт поле е.
DoubleDerived занимает один байт, т.к. два пустых базовых класса объединяются, как там и написано.
Аноним 21/07/18 Суб 18:22:58  1232400
>>1232399
слышь, братка, объясни, почему пустой класс занимает один байт?
Аноним 21/07/18 Суб 18:26:36  1232404
>>1232036
не ссы, братюнь, давай сразу, сколько примерно з.п. о чем спрашивали, ведь один хуй если знаний в голове не было то и не прибавится хоть здесь все ответы прочитал, какие алгоритмы задрачивал, слушай, скинь мне задачки на agnomad1488@gmail.com, а я тебе свои скину, был на двух собесах, вот охуенно будет, пообщаемся за си++
Аноним 21/07/18 Суб 18:30:35  1232408
image.png (1Кб, 167x106)
>>1232399
При этом забавно выглядит каст указателей. Чтобы привести указатель на С к указателю на В его нужно сместить. Все это компилятор делает сам, так что можно не заебываться на этот счет.
С^ с = ...;
A^ a = static_cast<A^>(c);
B^ b = static_cast<B^>(c);
// (int)a != (int)b;

С виртуальным наследованием, конечно, компилятору приходится еще больше дрочить вприсядку, потому что появляются таблицы виртуальных методов, а также смещения указателей иногда неизвестны статически.
Аноним 21/07/18 Суб 18:33:03  1232410
>>1232400
>>1232370
>This ensures that if p points to an object of empty class, then p+1 is a distinct address and points to a distinct object

Хуле тут непонятного
Аноним 21/07/18 Суб 18:51:38  1232418
>>1232410
т.е. это все для того что если мы создадим указатель на пустой класс, он должен указывать на что-то в памяти, а не хуй знает куда? Четкая книжка или откуда эти сакральные знания?
Аноним 21/07/18 Суб 19:08:10  1232439
>>1232400
Типы с нулевым размером вроде как обещали к C++20 сделать.
Аноним 21/07/18 Суб 19:22:22  1232451
>>1232418
скрин из вот этой книги
https://books.goalkicker.com/CPlusPlusBook/
Аноним 21/07/18 Суб 19:24:33  1232453
>>1232418
Чтобы разные объекты имели разные адреса в памяти. Размер же равен 1 байту, потому что байт это минимальный независимо адресуемый набор данных (для большинства систем).

Вроде в стандарте так написано. Хотя я уже точно не помню.
Аноним 21/07/18 Суб 19:27:32  1232456
Анонусы, кто-нибудь сдавал BrainBench на си++, есть у кого-нибудь примерные вопросы, слышал, что когда в касперского устраиваешься их на собесе дают.
Аноним 21/07/18 Суб 20:06:13  1232491
>>1232398
G C C
C
C
Аноним 21/07/18 Суб 20:22:51  1232499
>>1232137
Смотря сколько ты готов заплатить.

Мимо-сениор-из-топовой-конторы
Аноним 21/07/18 Суб 20:43:19  1232512
>>1232499
могу орально тебя ублажить если поможешь вкатиться кун-пассив
Аноним 21/07/18 Суб 21:17:13  1232535
>>1232512
я сам себя могу так ублажить, не канает
Аноним 21/07/18 Суб 21:47:24  1232549
>>1232398
Несмотря на то что класс пустой, ты все еще можешь создать его объект. И у этого объекта обязан быть адрес в памяти и чтобы адрес оставался валидным хоть какое-то место в памяти этот объект занимать должен.
Аноним 21/07/18 Суб 22:56:26  1232578
>>1232370
> объясните мне пожалуйста, почему sizeof(Holder) равен 1 байту
An object has nonzero size if it
is not a potentially-overlapping subobject, or
is not of class type, or
is of a class type with virtual member functions or virtual base classes, or
has subobjects of nonzero size or bit-fields of nonzero length.
Otherwise, if the object is a base class subobject of a standard-layout class type with no non-static data members, it has zero size.
Otherwise, the circumstances under which the object has zero size are implementation-defined.
http://eel.is/c++draft/basic.memobj#intro.object-8

Применяешь это правило 2 раза. Один раз к мемберу Holder::e, который has nonzero size согласно первому пункту
(определение potentially-overlapping subobject http://eel.is/c++draft/basic.memobj#def:potentially-overlapping_subobject:
A potentially-overlapping subobject is either:
a base class subobject, or
a non-static data member declared with the no_­unique_­address attribute ([dcl.attr.nouniqueaddr]).
под которое мембер не попадает)
Потом к классу Holder: у него nonzero size по четвёртому пункту.

> sizeof(DerivedHolder) равен 2 байтам
Его base class subobject не должен иметь zero size, т.к. у отнаследовавшегося класса есть non-static data member.
Implementation определила, что у него должен быть nonzero size. И определила его равным единице. Итого, у DerivedHorlder 2 (неперекрывающихся) subobject-а размера 1. Поэтому он должен иметь размер минимум 2.
Аноним 21/07/18 Суб 23:10:39  1232587
>>1232578
>> sizeof(DerivedHolder) равен 2 байтам
>Его base class subobject не должен иметь zero size, т.к. у отнаследовавшегося класса есть non-static data member.
>Implementation определила, что у него должен быть nonzero size. И определила его равным единице. Итого, у DerivedHorlder 2 (неперекрывающихся) subobject-а размера 1. Поэтому он должен иметь размер минимум 2.

Тут я наврал, конечно же. Объяснение неверное.

base class subobject имеет размер 0, т.к.
> Otherwise, if the object is a base class subobject of a standard-layout class type with no non-static data members, it has zero size.

Но он не может иметь тот же адрес, что и non-static data member того же типа, т.к.:
Two objects with overlapping lifetimes that are not bit-fields may have the same address if one is nested within the other, or if at least one is a subobject of zero size and they are of different types; otherwise, they have distinct addresses and occupy disjoint bytes of storage.

Итого, хотя base class subobject у DerivedHolder нулевого размера, но т.к. первый дата мембер имеет тот же тип, что и базовый класс, то между base class subobject и мембером есть ненулевой padding. Отсюда размер 2 байта: padding + 1 байт от размера non-static data member.
Аноним 22/07/18 Вск 00:23:25  1232625
>>1232408
а что конкретно скрыто за "привести указатель" ?
вот есть указатель и есть его адрес
после
A a = static_cast(A)C
ведь адрес его не измениться, так?
Я так понимаю при вызове метода в метод передается адрес объекта(this) и соответственно доступ к данным организован через смещение от этого this. Как это в памяти выглядит?
Аноним 22/07/18 Вск 15:06:45  1232864
>>1232254
>сайт ты не сделаешь
-
>парсер не сделаешь
-
>брутфорс не сделаешь
- Причем на плюсиках ты можешь не только веб, но и железки брутфорсить, каково, а?

Ясно что плюсы не для этого и перечисленные тобой вещи на них не делают. Но это не значит будто сделать их нельзя. Просто учебного материала скажем будет мало, а на пыхе под аналогичные задачи очень много всяких туторов-гайдов.
Аноним 22/07/18 Вск 16:36:43  1232969
>>1232255
>ИИ сделаю.
>Еще вопросы?
Вопросов больше нет, так бы сразу и сказал что в AI хочешь. про питон не забудь
Аноним 22/07/18 Вск 17:20:51  1233033
>>1232969
Питон в контексте AI лишь костыль для тех, кто не может перемножить две матрицы на С.
Аноним 22/07/18 Вск 17:24:25  1233039
>>1233033
Вот этот вроде не совсем дебил.
Аноним 22/07/18 Вск 17:38:42  1233051
>>1233033
Ну и нахуй тебе перемножать матрицы на си? Причем матрицы на си ты можешь перемножить и в питоне. Си надо изучить, написать пару десятков лаба.с, запилить какой-нибудь метод Гаусса, сортировки, вектор и дерево. А дальше надо нормальный язык брать.
Аноним 22/07/18 Вск 17:49:40  1233056
>>1233051
>маняматика нинужна врети
Ясно.
Понятно.
Аноним 22/07/18 Вск 17:57:46  1233059
>>1233051
>Надо написать софт с жёсткими требованиями по производительности и ресурсам. Ок, возьму java/python/c#, потому что это нормальные языки для серьёзных задач.

Всегда с таких даунов проигрываю.
Аноним 22/07/18 Вск 18:01:24  1233061
>>1233059
>2к!8
>по производительности и ресурсам.
Просто купи нормальное железо.
Аноним 22/07/18 Вск 18:12:24  1233064
>>1233061
На определенном масштабе развертки софта выгоднее нанять целый отдел крестобогов и все переписать с джавапараши на кресты. Т.к. это будет меньше по затратам, чем затраты на железо.
Аноним 22/07/18 Вск 18:19:53  1233070
>>1233056
Блять, а кто тебе мешает выч. методы и алгоритмы на питоне писать? Для этого тебе си нужен?
Я всегда думал его в вузах учат на 1 курсе, чтобы объяснить, что такое ячейка памяти, указатель, стек, куча, зачем мусор собирать и прочее машинозависимое говнецо. Алгоритмы можно на чем угодно изучать.
Аноним 22/07/18 Вск 18:20:02  1233071
>>1233061
> 2!!8
> Сортировка пузырьком такая удобная. Просто купим железо помощнее.
Аноним 22/07/18 Вск 18:22:35  1233073
>>1233059
Это другой вопрос. Парень хочет в ИТ вкатиться через си.
Аноним 22/07/18 Вск 18:24:32  1233076
>>1233070
>Блять, а кто тебе мешает выч. методы и алгоритмы на питоне писать?
Святая толстота (или тупость?). Ну возьми ты тот же OpenCV и посмотри для чего там используется c++, java и python. Сразу поймёшь с каким языком место у параши, когда дело касается вычислений.
Аноним 22/07/18 Вск 18:26:12  1233077
>>1233059
Numpy написан на си, и с его помощью можно перемножать матрицы на си в питоне.
Аноним 22/07/18 Вск 18:26:50  1233079
>>1233061
Боже ебаный ты шизойд.
Я посмотрю на тебя макака тупая, как ты напишешь какую-нибудь real-time хуйню на своей ЖАВЕ или ПИТУХОНЕ, с недетерменированными задержками со всякими их GC и прочей хуитой.

Откуда же такие дауны берутся я хуею.
Аноним 22/07/18 Вск 18:27:32  1233080
>>1233056
Как связаны си и математика?
Аноним 22/07/18 Вск 18:30:12  1233083
>>1233079
Из питона и джавы можно вызвать программу на си. Например можно разделить проект на две части - та, которая не треубет производителности будет написана на джаве питоне, а производтиелньная на си крестах
Аноним 22/07/18 Вск 18:30:44  1233085
>>1233080
Ну если уж на то пошло, то тогда надо Fortran брать. Он как раз для математиков был спроектирован. Там, кстати, многое заточено под работу с матрицами и векторами.
Аноним 22/07/18 Вск 18:32:01  1233086
>>1233083
И нахуя этот гемор нужен? Джава - это язык для других задач.
Если ты какой-то неосилятор, то действительно можешь юзать NumPy и хуячить на питончике, те части, которые не требуют производительности. Так кстати и делают многие.
Аноним 22/07/18 Вск 18:32:15  1233087
>>1233076
Ну и что ты уже написал свою либу для выч методов, сука? Я еще раз говорю, для вката си не очень, если ты не из вуза начинаешь в работать.
Аноним 22/07/18 Вск 18:43:14  1233091
>>1233087
Да, я писал вычметоды на плюсах в коммерческом проекте. А что касается войтивойти, то тут уж кто на что способен и куда вкатывается. На чём ты будешь вкатываться в те же embedded systems?
Аноним 22/07/18 Вск 18:49:39  1233093
>>1233077
Странно, что не на питоне, да?
Аноним 22/07/18 Вск 19:52:29  1233123
>>1233061
Это прокатывает, пока на одной машине помещается. А они знаешь ли не резиновые.
Поставить несколько машин рядом? Ок, добро пожаловать в мир распределенных транзакций. Правда думаешь это легче, чем на C++ переписать?
Аноним 22/07/18 Вск 19:54:32  1233124
Boost.png (58Кб, 1044x784)
>>1230856
Пробую поставить этот boost.
Вначале он доёбывал какими-то придирками к аргументу --prefix="C:/Program Files/boost/installed" (Я пробовал писать и с одинарными кавычками и с двойными и с обычным слешем и с обратным и с двойным обратным — результат один ошибка и несколько строк с моим путем, где каждый раз слеши в разную сторону) психанул и без аргументов вызвал этот бутстрап, а потом сразу ./b2 install

Вот теперь то, что на картинке. При чем уже очень давно (пара часов, наверное) и конца и края нет. Я что-то сделал не так?

Внутри MVS при подключении в свойствах проекта автозаполнятор инклюдов видит boost, предлагает напечатать #include <boost/asio.hpp>, но потом не собирается и требует какую-то кучу букв.lib

Пример из бустовского туториала, где предлагают #include <boost/lambda/lambda.hpp>
у меня работал еще до запуска скрипта с установкой и сейчас работает. Из строки собрать не выходит, не видно путей.

Что делать?
Аноним 22/07/18 Вск 20:39:04  1233140
Аноны,
ko - указательна на функцию.
ko++ на какой адрес будет указывать?
Аноним 22/07/18 Вск 20:40:12  1233141
Несколько лет назад я писал TCP/IP сервер на си, затем как-то проебал эту парашу сетевую, не крутился в этих областях, а теперь куда ни плюнь все на буст asio ебенят, а на сях ща вообще чего-нибудь пишут под сеть или это уже навроде ассемблера?
Аноним 22/07/18 Вск 20:50:35  1233144
>>1233140
Не скомпилируется.
Аноним 22/07/18 Вск 20:56:55  1233150
>>1233124
Дописать в свойствах проекта путь бустовским библиотекам. В C:/Program Files/boost/ уточни, где они конкретно лежат. Если буст собран динамически, то еще и в переменную PATH добавить путь к его dll (или ручками скопировать в папочку, куда итоговый исполняемый бинарник твоего проекта выкладывается).

А вообще почитать нужно, как приложение компилируется и линкуется. Именно как происходит запуск cl.exe и link.exe. И с какими параметрами. А то привыкнут в этой вашей винде мышкой тыкать, а как чуть что по другому, так в лужу садятся))
Аноним 22/07/18 Вск 20:58:57  1233151
>>1233141
Nginx
Аноним 22/07/18 Вск 21:01:46  1233153
>>1233150
> А то привыкнут в этой вашей винде мышкой тыкать, а как чуть что по другому, так в лужу садятся))
Если на винде, то можно всё это сделать (почти) двумя тычками мышки. Буст элементарно ставится через vcpkg и его можно поставить с глобальной видимостью, что значит все его хедеры автоматом станут доступны во всех проектах вижуал студии.
Аноним 22/07/18 Вск 21:04:30  1233156
>>1233150
> дед мой в гараже с шохой пердолился, батя пердолился и я тоже буду.
Аноним 22/07/18 Вск 22:05:28  1233203
>>1233093
Питон медленный для сверхбыстрого перемножения матриц
Аноним 22/07/18 Вск 22:15:43  1233209
>>1233203
>Питон медленный
Во всём.
Аноним 22/07/18 Вск 22:58:23  1233231
>>1233156
Ты о чем? Я разве предлагал ручками в консольке набирать команды по-пол экрана?
Иметь представление о том, что происходит под капотом один фиг нужно. Хотя бы потому, что мир на VS и Windows не заканчивается.
>>1233153
Вариант. Еще и Nuget для этого есть.
Лично я использую Conan с автозапуском из CMake, ибо кросплатформеность нужна.
Аноним 22/07/18 Вск 23:11:30  1233241
>>1233150
Я очень проебываюсь по этой теме и вот сейчас хочу наверстать. Собственно, поэтому и буст через консольку запустил ставиться.

Знаю, что обычно пишу в Makefile что-то типа
all:
отступ табуляцииgcc -o test test.c
или для ++g++ -std=c++11 -o plus plus.cpp
А потом могу запускать прямо в MinGW, набрав test или plus соответственно.
С хидерами проблем пока что не возникало, но это были максимум <algorithm> или что-то еще из STL, как он их находит, не знаю. Хочу сделать, чтобы #include <boost/asio.hpp> при таком подходе тоже нормально подтягивалось и не нужно было писать в мейкфайл еще кучу длинных строк с путями к бусту. Это вообще возможно?

И почему он до сих пор мне показывает черный экран с надписями, он реально так долго ставится или пора отменять установку? (Он вообще на винду ставится или нет?)
Аноним 22/07/18 Вск 23:14:10  1233245
>>1233241
Заранее прошу прощения, если вопрос мой дурацкий. Читал FAQ и Tutorial заметки от буста и нихрена из них не понял. То, что он выдавал по запросу --показать-библы вообще не содержало пункта asio, да и на сайте там его в списке нет. Если есть какой-то нормальный материал с ответами на мои вопросы, ткните в него носом.
Аноним 22/07/18 Вск 23:20:03  1233255
>>1233124
V C P K G
C
P
K
G
Аноним 22/07/18 Вск 23:55:08  1233285
>>1233245
asio header-only библиотека, ее не нужно компилировать (а вот ее зависимости нужно).
https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio/using.html
Аноним 23/07/18 Пнд 00:02:14  1233289
>>1233241
>Он вообще на винду ставится или нет?
Ставиться, ставиться. Разве что под WinXP не все части собираются.
>он реально так долго ставится
У него дофига заголовочных файлов. Если винт тормозной, то не удивительно.
Аноним 23/07/18 Пнд 00:54:03  1233316
>>1233255
Спасибо, собралось VCPKG. Оно советует буквально следующее
>simply need to add it onto your CMake command line as -DCMAKE_TOOLCHAIN_FILE=[vcpkg root]\scripts\buildsystems\vcpkg.cmake
А куда это — не понимаю. У меня в папке с CMake файлов нет, в подпапке bin есть Cmake.exe, Cmake-gui.exe, cpack.exe, ctest.exe и cmcdelps.exe
Все кроме гуя запускаются на долю секунды. В гуе копировать эту строку особо некуда. (В configure попробовал, заругало)
Что это он хочет?

>>1233289
Таки-да, 10246 какой-то херни установило, когда Я Ctrl+C нажал, 102 не успело установить. Брюс Уиллис, ёба. Пофиг, удалил.
Аноним 23/07/18 Пнд 00:58:13  1233320
>>1233316
Теперь тебе нужно разбираться с cmake хе-хе. Если ты работаешь в vs погугли как создавать cmake-проекты в вижуал студии.
Аноним 23/07/18 Пнд 01:14:57  1233321
>>1233320
О, господи, нахера?
Я зазубрил 1.5 команды написания CMakefile как раз чтобы ни с чем не разбираться да, зря, видимо, получается, vcpkg мне что-то там на тему симейка предлагает только на случай, если мне захочется в симейке делать, на остальные случаи это не повлияет?

А зачем мне вообще может понадобиться симейк в MVS? Я понимаю, вместо MVS: написал себе эти все CMakeLists.txt, запустил cmake -H. -Bbuild потом им же построил типа как cmake --build build и сидишь довольный, а в среде он нахрен сдался, если среда сама всё построит?
Аноним 23/07/18 Пнд 01:38:17  1233327
>>1233316
Если твой проект на симейке - сделай то, что дядя сказал.

Если твой проект - студийный солюшен, то все автоматом подсосется. Ты же сделал vcpkg integrate, как на гитхабе написано, да?
Аноним 23/07/18 Пнд 01:52:40  1233332
>>1233321
>А зачем мне вообще может понадобиться симейк в MVS?
Ну типа писать портируемый проект в mvs со всеми удобствами ide. Под невиндой ты его открываешь в каком-нибудь QtCreator и также уютненько продолжаешь писать.
Аноним 23/07/18 Пнд 02:10:22  1233336
>>1233327
Конечно сделал, сейчас результаты такие же, как в самом начале: autocomplete видит boost/asio.hpp, но собираться проект с ним не хочет. Если поменять на какой-то boost/regex.hpp как в примере Getting Started, то всё нормально собирается. В чём дело?
Из командной строки тоже не видит, может чего дописать надо или еще доинсталлировать?
Аноним 23/07/18 Пнд 02:13:30  1233337
>>1233336
Пересоздал новый проект, та же херня.
1> ... error MSB3030: не удалось скопировать файл ...\boost_system-vc141-mt-gd-x32-1_67.dll - файл не найден.
1>Сборка проекта "Boost — still does not work.vcxproj" завершена с ошибкой.
Аноним 23/07/18 Пнд 02:25:13  1233338
vcpkg.png (38Кб, 992x355)
MVSisfuckingint[...].png (88Кб, 1113x714)
Я уже психанул и стал копировать вручную эту сраную дллку, нашел ее в папках VCPKG, скопировал, захожу туда, где MVS ее „не видит“ — и что же оказывается? Да она там есть и так.
boost_system-vc141-mt-gd-x32-1_67.dll

Какого хера он ее в упор не видит?
Аноним 23/07/18 Пнд 03:01:58  1233341
>>1233338
Не знаю, что ты делаешь, но проверь разрядность и debug/release, а также попробуй прописать путь к используемой dll через настройки проекта. Может она тянет за собой соседей и её просто так нельзя копировать.
Аноним 23/07/18 Пнд 03:40:27  1233344
>>1233341
Ещё vcpkg по-умолчанию компилирует 32-битные библиотеки, может он пытается использовать их с 64-битным приложением?
Аноним 23/07/18 Пнд 03:44:25  1233345
>>1233341
Спасибо за идею, проверил. Подобавлял везде папку с vcpkg (корень ведь, правильно?). Но не помогло ни хрена.
Вручную покопировал это boost_system-vc141-mt-gd-x32-1_67.dll во все внутренние папки решения, похуй, не видит в упор.
В файлы ресурсов в солюшнэкспройлере добавил уже зачем-то, один и тот же результат.

Я сдаюсь. В пдзу пргармирвоне
Аноним 23/07/18 Пнд 03:48:40  1233346
>>1233345
Лучше перекатывайся в C#. Там в .NET-мирке нет подобной ёбли со сборкой проекта в отличии от плюсов.
Аноним 23/07/18 Пнд 04:00:46  1233347
>>1233345
Пути к dll сразу для всех студийных проектов указываются в project->properties->vc++ directories->Library Directories. Для отдельных проектов Linker/Librarian->general->additioanl library directories.
Cам путь можно вбить туда абсолютный (ну типа c:\vcpkg\ или где там dll лежит). Если заработает, то потом запилишь константы и через $() переделаешь.
Аноним 23/07/18 Пнд 04:04:08  1233348
>>1233346
Это да. И цепляние сторонних либ через InteropServices там комфортное.
Аноним 23/07/18 Пнд 04:27:09  1233350
>>1233345
Да ладно тебе, ты ж только начал. Впереди не менее увлекательные задачи портирования и развёртки твоей laba2.cxx.

Кстати, в крупных конторах обычно есть макаки-инструментальщики, которые отдельно и целенаправленно ебутся со сборкой, портированием и развёрткой проектов. Ибо даже бывалые красноглазики не в состоянии с этим справиться.
Аноним 23/07/18 Пнд 08:52:26  1233377
>>1233350
ох бля, писал программу две недели и еще две недели писал под нее инсталлятор, проверяя ее на различном оборудовании, пиздец, из ldd просто не вылезал, весь по уши в bash и pituhon, ебля нон стопом, рили хард!
Аноним 23/07/18 Пнд 10:10:05  1233401
>>1231810
Спасибо.
Аноним 23/07/18 Пнд 11:41:55  1233449
Кто-нибудь сейчас пилит что-нибудь на гите? Или где искать интересные упражнения по С++? Именно со всеми спецификами языка
Аноним 23/07/18 Пнд 14:35:55  1233541
>>1233449
> Кто-нибудь сейчас пилит что-нибудь на гите?
Штоу?
Аноним 23/07/18 Пнд 14:36:42  1233542
>>1233541
Упражнения дай, ёпта.
Сайтики с упражнениями, я знаю, они есть.
Аноним 23/07/18 Пнд 14:39:21  1233544
.png (238Кб, 595x417)
.png (203Кб, 635x445)
.png (401Кб, 570x802)
>>1233542
Аноним 23/07/18 Пнд 14:45:47  1233545
>>1233544
Спасибо
Аноним 23/07/18 Пнд 17:22:07  1233604
>>1233209
Ну не скажи, для простого вебговна скорости хватает, для парсеров/брутфорсов тоже. А больше на питоне ничего и не пишут
Аноним 23/07/18 Пнд 17:38:57  1233615
Ребят, где практики набраться , типо как стажером, но даже не за еду, ради скиллов и информации только бы. Сам студент.
Аноним 23/07/18 Пнд 17:39:00  1233616
Ребята, как мне в методе класса сделать вывод инстанса класса? Чтобы получать имя переменной по указателю this?
Аноним 23/07/18 Пнд 17:40:23  1233618
>>1233615
Если ты знаешь стл буст алгоритмы потоки и tcp то можно идти юниором за нихуя.
Аноним 23/07/18 Пнд 17:59:15  1233623
>>1233616
чо?
Аноним 23/07/18 Пнд 18:06:02  1233627
>>1233616
Если я тебя правильно понял, то что-то типа
std::string typename = typeid.name(*this);
Аноним 23/07/18 Пнд 18:10:53  1233630
>>1233615
>Ребят, где практики набраться , типо как стажером, но даже не за еду, ради скиллов и информации только бы. Сам студент.
>
всякие крупные компании предлагают позиции именно стажёров на неполную занятость. либо они организуют различные курсы для студентов на лето.
Аноним 23/07/18 Пнд 18:15:21  1233632
>>1233623
Блять, торопился, соре. как мне в методе класса сделать вывод имени инстанса класса?
Аноним 23/07/18 Пнд 18:43:07  1233641
>>1233632
class Ass {
public:
std::string name;
void println_name() { std::cout << name << '\n'; };

int main()
{
Ass ass { "ass" };
ass1.println_name();
}
Аноним 23/07/18 Пнд 18:44:16  1233642
>>1233641
Проебаал скобку после определения класса...
Аноним 23/07/18 Пнд 18:51:45  1233644
>>1233641
А без задания имени в конструкторе? С простой переменной можно это через макросы сделать,
#define GET_VARIABLE_NAME(Variable) (#Variable)
но как с указателем this я не знаю.
Аноним 23/07/18 Пнд 19:17:26  1233649
15150943086020.gif (564Кб, 800x430)
>>1233644
Лол, а что ты хотел? Чтоб компилятор каждому инстансу класса придумывал своё имя?
И фамилию (от базовых классов), и историю с неожиданной развязкой: Светила полная луна, итератор инвалидировался после реаллокации контейнера...

Используй cout << this, указатель у каждого уникальный
Аноним 23/07/18 Пнд 19:21:46  1233655
>>1233347
Всё проверил, везде абсолютный путь на папку vcpkg.
Проблема в другом: когда нажимаю собрать проект, в папочку с Debug подтягивается boost_system-vc141-mt-gd-x32-1_67.dll, но сам линковщик при этом ничего не собирает и кричит, что boost_system-vc141-mt-gd-x32-1_67.dll в этой самой папке не найден.
В чем проблема? в MVS? в VCPKG? в Boost? в прокладке между табуреткой и компом?
Аноним 23/07/18 Пнд 19:54:59  1233666
Собеседовался щас по скайпу в яндекс, пиздец я проебался на задаче
найти медиану из 3х чисел, которые могут идти в любом порядке и повторяться.
аля :
int median(int a, int b, int c)
{
// ...
}

Я короче сначала сделал, через тупой перебор всех возможных комбинаций типа
#define med(a,b,c) if(a <= b && b <= c) return b;

med(a,b,c)
med(c,b,a)
med(b,c,a)
med(a,c,b)
...

Он попросил оптимизировать, я написал половину а дальше затупил.
Короче сидел наверное час решал эту хуйню, он даже добавил дополнительное время мне, но полностью не решил.

Еще был вопрос каково будет время вставки N элементов в вектор через push_back
Я ответил n log(n), т.к n элементов и т.к. вектор увеличивается в 2 раза если не хватает места, то получается вроде log n, так что общая сложность n log n. Но я не уверен.

Аноним 23/07/18 Пнд 20:16:04  1233679
>>1233666
На задаче проебался, зато в треде трипл выбил.

По медиане я только что такую хуйню придумал, лень гуглить нормальное решение:
int median(int a, int b, int c)
{
    return (a + b + c) - min(a, min(b, c)) - max(a, max(a, b));
}

Вставка в конец вектора в среднем О(1). Хотя размер реаллокаций растет экспоненциально, они происходят во столько же раз реже.
Аноним 23/07/18 Пнд 20:17:08  1233681
>>1233679
>max(a, max(b, c))
фикс
Аноним 23/07/18 Пнд 20:20:31  1233682
>>1233679
я так и не понял, что такое медиана. Но про вектор худшее время вставки это N, т.к. в зависимости от выбранного аллокатора - реаллокация может идти каждый раз. О - худшее время
Аноним 23/07/18 Пнд 20:23:57  1233684
>>1233679
Будет UB при переполнении в сложении.
Вряд ли это ожидается от функции.
Аноним 23/07/18 Пнд 20:24:37  1233686
Аноны, помоги, у меня есть массива в байтах и есть размер пакета в байтах, сколько нужно пакетов что бы уместить туда массив
я считаю вот так
> if (!body.size() % packet_length ) {
>packets_num = body.size()/packet_size;
>}
>else {
> packets_num = body.size()/packet_size + 1;
>}
Бля, в общем мне надо одно число на другое поделить и если результат не ноль округлить его до большего.
т.е. если пакет 3 байта, а массив 20, делим 20/3 и получаем 7 пакетов
Аноним 23/07/18 Пнд 20:30:43  1233692
>>1233682
есть мода - самое частое значение и медиана, такая хуета которая делит выборку пополам (но вообще я уже все забыл на хуй
Аноним 23/07/18 Пнд 20:37:06  1233699
14164039715940.jpg (112Кб, 736x736)
>>1233679
int median(int a, int b, int c)
{
if (a < b) swap(a, b);
if (b < c) swap(b, c);
if (a < b) swap(a, b);

return b;
}
Аноним 23/07/18 Пнд 20:42:20  1233703
>>1233686
Вот держи: ((((int)размер_массива / размер_пакета) + 1) * размер_пакета)
Аноним 23/07/18 Пнд 20:43:03  1233706
>>1233666
отсорировать значения и взять второе
как-то так:
int& refs[3] = {a,b,c};
if(ref[0]>ref[1]) swap(ref[0], ref[1]);
if(ref[0]>ref[2]) swap(ref[0], ref[2]);
return (ref[1]<ref[2]) ? ref[1] : ref[2];
Аноним 23/07/18 Пнд 20:48:10  1233710
>>1233699
Ах тыж шустрая жопа.
>>1233706
Аноним 23/07/18 Пнд 20:51:15  1233711
>>1233706
Чо, бывают массивы ссылок?
Аноним 23/07/18 Пнд 20:53:36  1233712
>>1233682
С помощью достаточно мудацкого аллокатора можно и O(N) получить и мамку твою выебать, кто ж спорит.
Вопрос-то наверно был не про параллельные вселенные, а про стандартный вектор. На cppreference для push_back написано amortized constant.
Аноним 23/07/18 Пнд 20:55:38  1233718
>>1233703
чет как-то непонятно
размер пакета 5 байт
размер массива 10 байт
((int)10 / 5 ) + 1) * 5
мы вам перезвоним...
Аноним 23/07/18 Пнд 20:56:22  1233720
>>1233711
Ну тогды просто массив интов.
Аноним 23/07/18 Пнд 20:59:40  1233724
Я охуеваю чета от местных. Тока работы у меня все равно нет.
Аноним 23/07/18 Пнд 21:29:58  1233744

помню меня спросили прям по телефону про размер вектора при аллокации или размер аллокатора вектора, в общем я до сих пор ответа не знаю (хотя размер вектора вроде 0) кто такой этот аллокатор?
Аноним 23/07/18 Пнд 21:51:56  1233758
>>1233744
https://ru.cppreference.com/w/cpp/memory/allocator
Аноним 23/07/18 Пнд 21:58:11  1233764
>>1233758
>ru
в выделенных неинициализированные хранения объект создать
Аноним 23/07/18 Пнд 22:03:20  1233766
>>1233764
>ru
Первое, что в гугле открылось. Самого бесит, что нужно вручную юрл поправлять.
Аноним 23/07/18 Пнд 22:12:26  1233773
>>1233766
Просто ты не смог в настройку хрома.
Settings->Languages
Order languages based on your preference -> English
Аноним 23/07/18 Пнд 22:28:28  1233784
Определить, является ли целое число степенью двойки.
bool isPow2(int v) { / code / };
Аноним 23/07/18 Пнд 22:45:34  1233793
>>1233784
https://ideone.com/gDWSDK
Вместо ctz(v) можно написать (31 - clz(v))

Алсо, для msvc надо будет использовать другие интрисики.

Хотя хуй его знает насколько это оптимально. Возможно сейчас байтоёбы придумают что-нибудь попирформансней.
Аноним 23/07/18 Пнд 22:51:28  1233799
>>1233793
И, кстати, мой вариант для отрицательных чисел работать не будет. Пичаль, беда.
Аноним 23/07/18 Пнд 22:55:26  1233804
Безымянный.png (16Кб, 612x517)
>>1233773
Как-бы у меня фирефокс, и как бы всё настроено. Просто сам гугл выдаёт результат уже с ru.
>inb4 почему гугл, а не DuckDuckGo
Не знаю
Аноним 23/07/18 Пнд 22:57:13  1233807
>>1233804
about:config
покажи
browser.search.region
browser.search.countryCode
Аноним 23/07/18 Пнд 23:20:12  1233834
>>1233799
Отрицательные степенью двойки быть не могут, так что можно заменить v!=0 на v>0. А без ынтрынсыков решение выглядит так:
bool isPow2(int v) {
return v > 0 && (v & (v - 1)) == 0;
}
Аноним 23/07/18 Пнд 23:21:35  1233836
>>1233807
US стоит
Аноним 23/07/18 Пнд 23:25:47  1233843
>>1233836
Используй DuckDuckGo.
Аноним 24/07/18 Втр 00:11:55  1233854
https://www.youtube.com/watch?v=9mWWNYRHAIQ
Аноним 24/07/18 Втр 00:27:57  1233860
>>1233718
У меня округление с шагом в большую сторону, если рамерности вот уже хватет впритык все равно делается +1 шаг. Чтоб пофиксить въеби проверку размера буфера под размер пакетов.
Аноним 24/07/18 Втр 02:56:19  1233900
>>1233666
Люблю задачки.
Медиана:
std::vector<int> v{a,b,c}; std::stable_sort(v.begin(), v.end()); return v[1]; // это добро работает O(nlogn) по сортировке (stable для предсказуемого худшего случая)

Время вставки: амортизированная сложность бэкинсертера O(1), в худшем случае O(n), от тебя скорее всего ждали ответ O(n), т. е. сложность вставки
кол-во элементов, ясен фалос берем амортизированную. Про мультипликативную реаллокацию ты был прав, хотя оптимально и не ровно вдвое, но это очень близко и на практическом уровне точнее значение не нужно.
(Положим, пи равно трём. Инженерная поговорка)

Аноним 24/07/18 Втр 02:59:39  1233902
>>1233684
Почему переполнение? Разве внутри выражения в скобках эта байда не приведется к unsigned --> unsigned long --> long long --> unsigned long long по неявному приведению?
Аноним 24/07/18 Втр 03:09:30  1233905
>>1233902
>Почему переполнение?
Потому что оно может быть при определённых значениях параметров.

> Разве внутри выражения в скобках эта байда не приведется к unsigned --> unsigned long --> long long --> unsigned long long по неявному приведению?

С чего оно будет приводиться так?
Аноним 24/07/18 Втр 03:26:59  1233907
>>1233900
Ну чо ты STL'ем то по воробьям. Срамота то какая.
Аноним 24/07/18 Втр 03:58:28  1233909
>>1233900
Зачем вектор для статически известного числа элементов?
Аноним 24/07/18 Втр 10:38:55  1234035
Аноны, стоит ли K&R изучить что бы ловчей по си++ собесы проходить, глупо конечно звучит, но на сях программил 10 лет назад где-то полгода, в то время даже особой разницы между си и си++ не видел.
Аноним 24/07/18 Втр 10:45:53  1234037
>>1234035
А зачем тебе для плюсов книга, предназначенная для обучения сям?
Аноним 24/07/18 Втр 12:43:53  1234088
>>1230544
До сих пор в ахуе, и что самое хреновое свой тред репортнуть нельзя
Аноним 24/07/18 Втр 12:55:24  1234098
>>1233860
обоснуй за округление в большую сторону? Кроме того вообще формула неверное, так-то получается по твоему алгоритму 15. Я вот такую хуету накодил пока
[code]
auto res = std::div(mBody.size(), PACKET_SIZE);
int packets_number = res.rem ? res.quot + 1 : res.quot;
[/code]
Аноним 24/07/18 Втр 12:58:15  1234099
>>1233909
что бы мудаки-говноеды за его размер не вышли, в векторе есть проверка за выход за индекс, а в массиве нет. Смысл программирования - не задумываться, что бы не тратить время на такую хуйню, человек должен везде вектор на автомате использовать, за исключением байтоебщины и прочего казуала. Чем меньше мозг хуйней нагружаешь тем лучше.
Аноним 24/07/18 Втр 12:58:26  1234100
Есть ли какая-нибудь книга, где описывается работа с памятью?(то есть фрагментация, стратегии аллокации итд).
Аноним 24/07/18 Втр 13:01:18  1234103
>>1234100
(((( бля где-то прям здесь статью видел про это дело
Аноним 24/07/18 Втр 13:27:26  1234114
>>1234099
>что бы мудаки-говноеды за его размер не вышли, в векторе есть проверка за выход за индекс, а в массиве нет.
??????
А это что https://en.cppreference.com/w/cpp/container/array/at ?
Аноним 24/07/18 Втр 13:32:59  1234118
>>1234099
>Смысл программирования - не задумываться, что бы не тратить время на такую хуйню, человек должен везде вектор на автомате использовать, за исключением байтоебщины и прочего казуала. Чем меньше мозг хуйней нагружаешь тем лучше.

Многие узнавшие понятие "преждевременная оптимизация" не знают/забывают, что есть понятие "преждевременная пессимизация".

Динамическое распределение памяти вектором это преждевременная пессимизация.

Кстати, ты узнавал, можно ли функции median кидать исключения? Вектор может кидать исключения. Так что ты, как ананас с UB >>1233679 , нарушаешь контракты своим решением с вектором.
Аноним 24/07/18 Втр 14:26:54  1234142
>>1234118
я наверное другой анон, ну я свое мнение высказал т.к. тут критерии не указаны, то оно тоже верно, если в контексте задачи, собеседующий может порадоваться.
Аноним 24/07/18 Втр 14:29:56  1234144
>>1234142
>тут критерии не указаны
Указаны критерии (требования) "найти медиану".
Вылетевший bad_alloc — это не найденная медиана.
Это сложно понять?
Аноним 24/07/18 Втр 14:36:45  1234147
Пачаны, скоро иду на собес. Что надо знать про сокеты и всё такое?
Аноним 24/07/18 Втр 14:42:24  1234150
>>1234147
>Что надо знать про сокеты и всё такое?

Какие именно сокеты?

TCP/IP сокеты?

Unix Domain сокеты?

Сокеты беркли?
Аноним 24/07/18 Втр 14:55:52  1234159
>>1234150
Сокеты Добрый и сокеты Я. Собес на программиста Агушу.
Аноним 24/07/18 Втр 15:01:22  1234162
>>1234150
Да-да, вот про это всё говно. Что об этом нужно знать приличному программеру и где можно прочесть джентльменский минимум в максимально сжатом виде? Я хочу самую общую картину схватить, совсем незнаком с вопросом.
Аноним 24/07/18 Втр 15:08:26  1234165
>>1234162
Ричард Стивенс, "TCP/IP в подлиннике".
Аноним 24/07/18 Втр 15:18:48  1234172
>>1234144
вот тебя и пидорнули, т.к. ты даже тут понять не можешь, что найти медиану означает написать программу где ты уже все исключительные ситуации предусмотрел
Аноним 24/07/18 Втр 15:22:01  1234174
>>1234147
Нахуя? Иди в веб
Аноним 24/07/18 Втр 16:11:59  1234202
>>1233679
Да решением с мин макс функциями не плохое, но я нашел получше решение через сортировочные сети, странно, что я не додумался об этом на собесе, но тот долбоеб меня сбил с толку, я сразу сказал типа отсортировать и выбрать 2-е, он начал типа без сортировки и т.п, хотя по сути это в любом случае сортировка.

У меня вышло так:

void cmp_swap(int& a, int& b)
{
if(a > b) {
int t = a;
a = b;
b = t;
}
}

int median(int& a, int& b, int& c)
{
cmp_swap(a,b);
cmp_swap(a,c);
cmp_swap(b,c);

return b;
}

>Хотя размер реаллокаций растет экспоненциально, они происходят во столько же раз реже.
Ну да по идее получается log2(n) реалокейтов, поэтмоу общая сложность n log n.

>>1233900
Бля, из всех предложенных тут вариантов, твой самый ущербный. Ты представляешь на сколько это будет медленно работать?

>>1233666 - анон
Аноним 24/07/18 Втр 16:37:32  1234211
>>1234174
Так а это что, не веб?
>>1234202
Я могу лучше: то же самое, только с forward_list и еще в шаблон обернуть, добавить там проверок всяких на is_integral, проверить отдельно лидирующий ноль, можно еще шизонуться и написать многоэтажный свич или иф, можно стать воздушным асом, можно Можно стать воздушной планетой. И будешь уверен, что эту планету примут по учебнику. Значит, на пользу физики пойдет одна планета. Величина — оторванная в область медианы — дает свои колебания на всю медиану.
Аноним 24/07/18 Втр 16:44:40  1234212
>>1234202
>cmp_swap(b,c);
return (b < c) ? b : c;
Аноним 24/07/18 Втр 17:00:28  1234218
>>1234211
Ты какой-то поехавший.

>>1234212
Так твое возвращает значение, а мое меняет.
Я просто еще смотрел на выход отсортированного массива с разных комбинаций.
Аноним 24/07/18 Втр 17:09:45  1234223
>>1234218
>Так твое возвращает значение, а мое меняет.
Третий свап не нужен. Первые два записывают в a минимальный элемент. Значит медиана это минимум из b и c.
Аноним 24/07/18 Втр 17:11:04  1234225
>>1234218
Кстати, передавая всё по ссылке, ты портишь входные данные.
Аноним 24/07/18 Втр 17:13:00  1234227
>>1233666
Вот вам ответ:
return std::max(std::min(a,b), std::min(a,b))
При желании max и min поменять местами.
Вообще же задача простая, кто хочет посложнее — возвращайте не медиану, а моду
Аноним 24/07/18 Втр 17:16:39  1234229
>>1234227
>std::min(a,b)
std::min(b,c)
поспешишь - проиграешь
Аноним 24/07/18 Втр 17:16:53  1234231
>>1234172
Ты дебил? Вообще понял кому и на что отвечаешь?
Аноним 24/07/18 Втр 17:18:46  1234233
>>1234229
Конечно, тут опечатка. Идея-то очевидная. Сработает даже на 4 аргументах.
Аноним 24/07/18 Втр 17:24:17  1234236
>>1234233
>на 4 аргументах
На 4 аргумента обычно дают задачку о пересекающихся интервалах (найти общую часть).
Аноним 24/07/18 Втр 17:33:55  1234238
>>1234236
А есть где-то запротоколированный пак моднейших задачек?
Аноним 24/07/18 Втр 17:42:35  1234241
>>1234238
Любой сборник задач по олимпиадной математике для школьников.
Аноним 24/07/18 Втр 17:48:52  1234243
>>1234238
leetcode.com
Аноним 24/07/18 Втр 18:51:23  1234262
Чуваки, что нужно знать, чтобы попасть на стажировку куда-нибудь? А то я читаю вот такую хуйню:
https://career.ru/vacancy/25924198
>Опыт объектно-ориентированного программирования
А придешь, окажется, что надо иметь опыт минимум 10 коммерческих проектов, гитхаб с >1000 фоловеров, написать по памяти реализацию вектора а стл, иметь мягкий анус и глубокую глотку.
Что точно надо иметь в портфолио?
Аноним 24/07/18 Втр 19:22:42  1234268
>>1234262
Так там же на 1С придётся "программировать".
Что касается опыта для стажёра - обычно достаточно рассказать про курсовую или лабу в которой ты использовал ооп. Потом тебя поспрашивают про основы языка и дадут задачку на смекалку. Всякую еботень типа написания своего sqrt или потокобезопасного контейнера с тебя не спросят.
Аноним 24/07/18 Втр 19:27:40  1234270
>>1234227
>>1234229
Че-то нихуя твой способ не работает.

[1 1 1] median = 1
[1 1 2] median = 1
[1 2 1] median = 1
[2 1 1] median = 1
[1 2 3] median = 2
[3 2 1] median = 2
[2 1 3] median = 1
[3 1 2] median = 1
Аноним 24/07/18 Втр 19:38:13  1234277
>>1234223
В общем, да, но (b < c) ? b : c; это один хуй операция сравнения, единственное, что на 1 копирование меньше.
Аноним 24/07/18 Втр 19:47:48  1234282
>>1234277
На 3 копирования и вызов функции, если компилятор не сделает её inline.
Аноним 24/07/18 Втр 19:55:12  1234284
>>1234270
Ну так и требуется.
Аноним 24/07/18 Втр 19:56:51  1234285
>>1234270
А вижу, в трех случаях пососал.
Аноним 24/07/18 Втр 20:03:01  1234288
>>1234282
Ясен хуй он сделает ее inline она в 1 строчку. Более того, он скорее всего даже заоптимизирует и уберет лишнее копирование.
Аноним 24/07/18 Втр 20:13:00  1234292
>>1234270
Ты код вместе с моей опечаткой перепечатывал?
Аноним 24/07/18 Втр 20:47:54  1234322
>>1234292
Нет конечно, я исправил.
Вот, я даже написал тест кейс для этой задачи.

int median(int a, int b, int c)
{
return std::max(std::min(a, b), std::min(b, c));
}



void test_median(std::function<int(int, int, int)>&& f)
{
std::array<int, 3> p1 = {1, 1, 1};
std::array<int, 3> p2 = {1, 1, 2};
std::array<int, 3> p3 = {1, 2, 3};

std::array<std::array<int, 3>, 3> w = { p1, p2, p3 };

for(int i = 0; i < 3; i++)
do
{
int a = w[0];
int b = w[1];
int c = w[2];

std::cout << "[" << a << " " << b << " " << c << "]";

int m = f(a, b, c);

if(m == 2)
std::cout << " median = " << m << std::endl;
else
std::cout << " median = " << m << " WRONG!" << std::endl;

} while(std::next_permutation(w.begin(), w.end()));
}

int main()
{
test_median(&median);
}



Вот вывод:
[1 1 1] median = 1 WRONG!
[1 1 2] median = 1 WRONG!
[1 2 1] median = 1 WRONG!
[2 1 1] median = 1 WRONG!
[1 2 3] median = 2
[1 3 2] median = 2
[2 1 3] median = 1 WRONG!
[2 3 1] median = 2
[3 1 2] median = 1 WRONG!
[3 2 1] median = 2
Аноним 24/07/18 Втр 20:49:04  1234323
>>1234322
Кстати еще, на выходах типа 1 1 2, функция должна возвращать 2, а не 1.
Аноним 24/07/18 Втр 22:12:20  1234369
>>1234322
Если в median написать std::min(a, std::max(b,c))?
Аноним 24/07/18 Втр 22:25:58  1234379
>>1234369
то это будет TDD
Аноним 25/07/18 Срд 04:00:52  1234485
>>1234322
>[1 1 1] median = 1 WRONG!
У тебя в проверке ошибка. Проверяет на 2 и пишет WRONG когда 1!=2 (почему не 3, не 265, не 1812, например?)
Аноним 25/07/18 Срд 10:17:30  1234553
>>1234369
Окей. Сейчас попробовал
return std::min(std::max(a,с), std::max(b,c));
Аноним 25/07/18 Срд 10:18:03  1234554
>>1234379
>>1234553
Аноним 25/07/18 Срд 10:29:48  1234561
тупой вопрос наверное, но как получается что используя стандартную библиотеку мы в начале своего цпп файла пишем инклуд необходимый h файл, в котором по идее содержатся только объявления, компилируем свой цпп, запускаем экзешник и все работает? откуда прога знает определения используемых функций, переменных из стандартной библиотеки, если мы скомпилировали свой цпп и препроцессор только подставил в цппшку из h файла объявления?
Аноним 25/07/18 Срд 10:41:49  1234563
>>1234553
Нет, все равно не работает. Самое лучшее решение(оно не работает при 1 1 2 и других подобных сочетаниях )это
if(a < b)
swap(a,b);
return std::min(a, std::max(b,c));
Аноним 25/07/18 Срд 10:41:57  1234564
>>1234561
>откуда прога знает определения используемых функций
Стандартные библиотеки по умолчанию линкуются. Можешь отключить флагами как libstdc++, так и libc.
Аноним 25/07/18 Срд 13:07:31  1234638
>>1230522 (OP)
>Эта книга предназначена для тех. кто еще никогда не программировал
первая страница книги Страуструпа, а уже разочарование
Двач, если я знаю си и питон, то какую книгу мне читать ? В шапке такого нет вроде практизы читать нет смысла, так как ц++ довольно сильно отличается от питона и си, но читать что такое переменная мне не оч хочется
Аноним 25/07/18 Срд 13:12:08  1234641
>>1234638
Так читай сразу про классы да шаблоны. и пили задачи.
Аноним 25/07/18 Срд 13:22:01  1234644
>>1234641
Есть название книги ? Best practices с шапки ?
Аноним 25/07/18 Срд 13:37:46  1234652
>>1234644
http://www.r-5.org/books/computers/all/

Ебитес.
Аноним 25/07/18 Срд 16:23:47  1234735
>>1234485
Я знаю, что ошибка, просто лень было допиливать.
Проверяет на 2, т.к. из из набора 1 2 и 1 2 3, должна быть 2ка на выходе. надо пофиксить, чтоб из набора 1 была единица.
Аноним 25/07/18 Срд 18:15:08  1234811
>>1234638
Как ни странно, TCPL
Аноним 25/07/18 Срд 23:34:16  1235066
Сап, ананасы.

Мимо-джун.

Хочу запилить десктопный клиент для вконтактика на Qt, чисто на поиграться.

Как думаете, взлетит?

Аноним 26/07/18 Чтв 00:20:58  1235082
>>1235066
Уже есть vk messeger
Аноним 26/07/18 Чтв 02:22:56  1235129
>>1235066
делай что угодно, главное делай
Аноним 26/07/18 Чтв 14:20:59  1235375
>>1235066
Лучше клиент к дваче сделай.
Года 2-3 назад один анон делал в /s/
Аноним 26/07/18 Чтв 16:57:19  1235502
Сегодня проходил собес в яндекс, обосрался на элементарнейшем вопросе про указатель и стек, хотя ответ знал, бес нашел на меня. Посоветуйте литры по указателям, чтобы идеально все аспекты понимать.
Аноним 26/07/18 Чтв 17:02:19  1235508
>>1235502
1. Understanding and Using C Pointers: Core techniques for memory management
2. http://alumni.cs.ucr.edu/~pdiloren/C++_Pointers/
Аноним 26/07/18 Чтв 17:37:09  1235530
>>1235502
Может лучше личностные тренинги на тему "Как не обосраться от волнения"?
Аноним 26/07/18 Чтв 17:52:14  1235542
Делаю алгоритм Ахо Корасика.
Не понимаю, чому не работает первый тест не находит "pen" и по 2 раза находит строки?

https://ideone.com/t0ynyV
Аноним 26/07/18 Чтв 17:52:23  1235543
>>1235508
Прочитал первое, вроде все знаю.
Аноним 26/07/18 Чтв 18:10:30  1235557
Аноны. Есть буфер с путем винды "C:\some.exe"
Бывает что там и дохуя слешей.
Скармливаю этот путь WinExec. Он ничего не делает. Методом проб и ошибок я установил, что проблема в том, что надо удвоить слэши.
Собственно сабж, как сделать это более мудро?
Аноним 26/07/18 Чтв 18:13:48  1235559
>>1235557
s/\//\/\//g
Аноним 26/07/18 Чтв 18:15:38  1235561
>>1235559
Чет твой вариант не оч.
Ну просто городить несколько циклов по-моему пиздец.
Аноним 26/07/18 Чтв 18:18:13  1235563
>>1235561
Почему не очень?
Кстати там ошибка, я по привычки юниксовые слеши написал, а тебе надо другие, тогда будет так: s/\\/\\\\/g
Аноним 26/07/18 Чтв 18:20:43  1235565
>>1235563
Окей. Скажем так, у меня VS2010 . регялрочки как ты знаешь подвезти успели в с++11
Аноним 26/07/18 Чтв 18:24:21  1235567
>>1235565
Ставь буст, ёпта.
Аноним 26/07/18 Чтв 18:27:24  1235570
>>1235066
Делай лучше клиент двача на qt, что-то вроде dashchan, только на пеку.
Думаю, взлетит
Аноним 26/07/18 Чтв 18:37:00  1235576
>>1235565
Тогда
echo "C:\\path\\prog.exe" | sed -e "s/\\\/\\\\\\\/g"
или
echo "C:\\path\\prog.exe" | perl -pe "s/\\\/\\\\\\\/g"
Аноним 26/07/18 Чтв 18:38:14  1235577
>>1235557
Друг, я искренне сомневаюсь, что проблема в этом.

Может ты путаешь экранирование слэшей с чем-то другим? Или строку изначально неправильно задаешь?
Аноним 26/07/18 Чтв 18:44:39  1235583
>>1235577
Смотри. Я подаю tchar который я получил из GetModuleFileNameW, обрезал до слэша и добавив нужный мне .exe, скармливаю строку WinExec с (LPCSTR)(path), SW_SHOW ничего не происходит. Кормлю строкой с одинарными слэшами - пусто, даю с двойными - все норм. Хотя возможно проблема с приведением типа.
Аноним 26/07/18 Чтв 18:57:42  1235605
image.png (48Кб, 552x539)
Сап, антоны.
Подскажите в чем проблема.
Накатил Qt Creator. Поставил Qt, к нему Qt Web Engine, Qt стоит версии 5.9.2.
Для Web Engine нужен компилер MSVS 2017, оке. Поставил. Сажусь ваять свои нетленочки - и вот какую хуйню выдаеи компилятор в ошибках.

Собственно, как починить эти ебучие кракозябры?
Аноним 26/07/18 Чтв 19:06:54  1235614
>>1235605
Извечная проблемма. Компилер выдаёт текст в 866 кодировке по умолчанию в консоли стоит, а креатор воспринимает ее как 1251. Попробуй в китах поставить галку для вывода в utf-8.
Аноним 26/07/18 Чтв 19:13:23  1235622
>>1235614
Посмотрел где эта галка находится. А у меня ее там нет. Лол
Аноним 26/07/18 Чтв 19:16:06  1235628
Нахуя плюсам нужно два файла чтобы запустить один класс?
Аноним 26/07/18 Чтв 19:16:56  1235630
Анончики, нашел почти альтернативный вкат в кресты:

If I were new to C++, I would not start learning C++ with this book. Rather, I would use these below three steps and the relevant books in this order:

1. Accelerated C++ by Andrew Koenig & Barbara Moo -- Read and practice example code and exercises from this book first.

2. Programming: Principles and Practice Using C++ (2nd Edition) by Bjarne Stroustrup -- Chapters 5,6, and 7 are gems in this book. You can in fact use this book in parallel with the Accelerated C++ book and

3. (a) The C++ Programming Language (4th Edition) by Bjarne Stroustrup, -- Definite reference book to have.
3. (b) The C++ Standard Library: A Tutorial and Reference (2nd Edition) by Nicolai M. Josuttis, -- Clear examples and very methodical
3. (c) C++ Templates: The Complete Guide by David Vandevoorde -- What can I say! This is simply a classic.

добавите же в шапку? :3
Аноним 26/07/18 Чтв 19:33:51  1235643
image.png (106Кб, 719x492)
image.png (15Кб, 727x217)
>>1235614
Анон помоги
http://doc.qt.io/qtcreator/creator-targets.html
тут у этих пидоров есть галка
у меня этой галки нет


как же заебало блять
хочешь сесть уютно покодить, а занимаешься какой-то хуйней
Аноним 26/07/18 Чтв 19:35:14  1235645
>>1235628
ты про интерфейс и реализацию чтоли?
Аноним 26/07/18 Чтв 19:36:56  1235647
Госпаде, вкатач, с какими же хуесосами приходится собеседоваться.

Прям такие дохуя умники сидят, лол, растопырив пальцы перед джунчиком. Хотя, вроде и ясно говоришь, что я вроде как только вкатываюсь. Но нет, блядь. Хуесос технический специалист прям устраивает с тобой ДУЭЛЬ блядь интеллектуальную. А если на чем-то подловит, то пизда, УХ БЛЯ, там ТРИУМФ, ваши знания СИ ПЛЮС ПЛЮС В ОБЩЕМ-ТО НИКАКИЕ.

Какие уебки, блядь.
Аноним 26/07/18 Чтв 19:38:05  1235650
7dbffb772e1729f[...].jpg (100Кб, 2048x1024)
Пиздец я ахуеваю с треда.
Задал вопрос по алгоритмам - хуй кто ответил.
Зато блять полный тред даунов-вкатывальщиков типа этих:
>>1235557
>>1235605
>>1235628
>>1235630
>>1235643
>>1235647
Аноним 26/07/18 Чтв 19:40:26  1235659
>>1235650
Пошел на хуй
Аноним 26/07/18 Чтв 19:40:56  1235662
>>1235650
А чё ты ожидал? Схуяли кто-то должен знать ответ на твой вопрос и расписывать решение? Гораздо очевиднее что отвечать будут на то, что лучше понимают и что знает множество людей.
Аноним 26/07/18 Чтв 19:41:48  1235666
>>1235645
Да. Почему .h и .cpp, а не просто .cpp ?
Аноним 26/07/18 Чтв 19:49:17  1235678
>>1235662
Потому что это блять С++ тред, в котором по идее должны сидеть умные люди с образованием и пониманием CS, а не горстка выблядков "ВОЙТИВАЙТИ", засирающих тред своими тупорылыми вопросами, на которые сука в гугле находятся ответы за 2 секунды.

Пиздец. Они еще ахуеваеют, что их хуесосят на собесах. Да вы же блять настолько тупорылые дауны, что вас не то что в джуны, вас блять даже в обслуживание кофе машины не возьмут.

Иди нахуй от сюда в /b/ и создавайте там треды как вкатиться в айти.

Вот этот >>1235666 даун меня вообще выстегивает, сука ну почему ты настолько имбецил, что тебе блять в падлу загуглить вопрос, я даже не говорю о том, чтоб ты почитал книжку и нашел там ответ, т.к. заранее знаю, с твоим уровнем развития ты там большую часть слов не поймешь и не пройдешь дальше предисловия, но сука загуглить то можно, уебище? И так без тебя этот вопрос тут постоянно задают бесчисленные орды макак вкатывальщиков, которые думают щас они хело ворд из инета скапипастят и сразу пойдут устроятся Сеньором в яндекс на ЗП 400к в сек.
Просто блять эпик дауны.
Аноним 26/07/18 Чтв 19:56:23  1235688
>>1235650
Ну ладно, ладно. Вот решение на коленке.
const std::string sample("\\"), value("\\\\");
size_t pos = 0;
while ((pos = str.find(sample, pos)) != std::string::npos)
{
str.replace(pos, sample.length(), value);
pos += value.length() + 1;
}
Аноним 26/07/18 Чтв 19:58:04  1235689
>>1235688
Нахуй ты мне это говно высрал?

Мой вопрос был по алгоритму Ахо Корасика >>1235542


Аноним 26/07/18 Чтв 19:59:02  1235691
>>1235650
>даунов

Один ты у мамы умный.
А знаешь что. Иди-ка ты на хуй отсюда. Со своими алгоритмами. В очко их себе загони петущара :3
Аноним 26/07/18 Чтв 20:03:15  1235697
>>1235630
это троллинг
Аноним 26/07/18 Чтв 20:03:38  1235699
>>1235678
>засирающих тред своими тупорылыми вопросами, на которые сука в гугле находятся ответы за 2 секунды.

Петушок, порешай мне за две секунды что делать с этой кодировкой ебучей в креаторе.

Спасибо.
Аноним 26/07/18 Чтв 20:03:41  1235700
>>1235689
Ты тут настолько воду замутил, что я не туда ответ влепил. Тебе, гондон, следует пройти нахуй, потому что ты предлагаешь дебажить твой сраный говнокод, да ещё в залупу лезешь.
Аноним 26/07/18 Чтв 20:04:44  1235703
>>1235697
:)
Аноним 26/07/18 Чтв 20:06:50  1235705
>>1235643
Бля, ну не знаю, может кретор древний. И зачем юзать GDB если есть нативный виндовый дебагер?
Аноним 26/07/18 Чтв 20:07:19  1235706
>>1235705
>древний.

Криейтор как раз последний
Аноним 26/07/18 Чтв 20:07:24  1235707
>>1235699
Всем похуй на твой сраный креатор. Это не относится к сабжу треда.

>>1235700
>дебажить
Нахуй его дебажить? Тут проблема не в каком-то баге в коде, а в самом алгоритме. Если ты знаешь этот алгоритм, то возможно знаешь в чем проблема.
Аноним 26/07/18 Чтв 20:09:18  1235711
>>1235707
В книжке алгоритм посмотри. Ебанашка
Аноним 26/07/18 Чтв 20:11:43  1235715
>>1235711
Я уже дохуя где посмотрел, прежде чем написать тут.
Я же не еблан, спрашивающий каждый пук на форумах.
Аноним 26/07/18 Чтв 20:13:42  1235719
>>1235715
Что-то тебе не сильно-то это помогло, читатель залупный :3.

Пиздуй отсюда, чорт ебаный.
Аноним 26/07/18 Чтв 20:17:59  1235725
>>1235707
Начни с мнемонического названия переменных (v,c,t,i,k,u - вот это вот всё говно что у тебя там), затем перейди к инициализации агрегатов (строки 39-46), потом почитай про чистый код (таб = 4 символа, мусор 136-144 нахуй). Тогда можно будет прочитать, где ты обосрался с реализацией алгоритма.
Аноним 26/07/18 Чтв 20:19:47  1235726
>>1235583
чёт вообще срал и ебал этот виндоуз, ещё раз этот чувак подойдёт, чтоб я его прого доделал, то я ему щи переломаю.
https://pastebin.com/pS09B68q
Вот куски кода, что отвечают у него за функцию.

Я почитал про эти TCHAR и прочее, и слава богу что код под окна с оконными функциями я писал года 4 назад.

В общем, какая тут может быть проблема? Я так понимаю, либо в приведении к LPCSTR, либо таки в слэшах, так как буфер получает их одиночными.
Аноним 26/07/18 Чтв 20:21:54  1235729
>>1235678
чёт ты токсичный, может ты школьник, который тоже хочет быть воннаби нормис? Алгоритм же книжный, вот и подгляди в книгах, подумай что у тебя не так? Книги по чистому коду читал? про рефакторинг знаешь? А стандарты кода читал?
Аноним 26/07/18 Чтв 20:23:53  1235731
>>1235719
Ты реально аутист или тролишь тупостью?
Хотя что тебе остается, ведь ты очередная манюнька мечтающая вкатиться в ойти и получать 200к/нс, ты стал изучать С++ т.к. слышал, что все крутые дядки и хакеры используют его и решил, что ты тоже станешь таким с твоей нулевой базовой подготовкой и ты реально думаешь, что алгоритмы и прочий матан вовсе не нужен сейчас, когда все можно спрашивать на форумах и копипастить со стековерфлоу. Ты думаешь, как только ты изучишь как работают циклы и условные переходы, ты сразу сможешь устроиться на высокооплачиваемую работу в ДС, ходить с важным видом по офису, потягивать смуззи, громко обсуждать различные модные айтишные темы используя максимальное количество заумных слов, чтоб все слышали какой ты умный.
Но спешу тебя разочаровать: всего этого не будет и твой максимальный уровень это laba1.cpp.

Так что пошел нахуй с моего треда, где должны сидеть только истинные задроты.
Аноним 26/07/18 Чтв 20:25:34  1235733
>>1235725
Нахуй иди со своими пидорскими названиями переменных и чистым кодом.
Там и так все понятно.

Цитата одного известного человека:
>C is a Spartan language, and so should your naming be. Unlike Modula-2 and Pascal programmers, C programmers do not use cute names like ThisVariableIsATemporaryCounter. A C programmer would call that variable tmp, which is much easier to write, and not the least more difficult to understand.

Аноним 26/07/18 Чтв 20:27:02  1235737
>>1235733
Ты тредом ошибся. Это CPP тред, да и стандарты кода, а так науки о коде не просто так высирали, а чтобы за тобой кто-то что-то мог прочитать, а главное ты.
Аноним 26/07/18 Чтв 20:27:18  1235738
>>1235726
А там нечего приводить:
An LPCSTR is a 32-bit pointer to a constant null-terminated string of 8-bit Windows (ANSI) characters.

This type is declared as follows:

typedef const char* LPCSTR;

Просто замени слэши.
>>1235688
Аноним 26/07/18 Чтв 20:29:09  1235741
>>1235729
Бля, ты тупая обезьянка, еще раз говорю я прочитал дохуя книг и статей по этому алгоритму и не могу понять ошибку. Короче, нахуя я в сотый раз распинаюсь тут перед тупорылым дауном?

>чистый код
>рефакторинг
>стандарты кода
Вот это все выдает в тебе макакена.
Я знаю про все это, но при прототипировании это обычно не используется.
Аноним 26/07/18 Чтв 20:30:33  1235743
>>1235741
>при прототипировании это обычно не используется
При прототипировании говном мажут экран и улюлюкают?
Аноним 26/07/18 Чтв 20:32:02  1235745
>>1235737
А ничего что ЦПП и Си очень близкие друг другу языки с многими общими областями применения.
А ты в курсе, что можно писать на ЦПП как на Си?
Это первое.

Второе:
>>1235741
>>чистый код
>>рефакторинг
>>стандарты кода
>Вот это все выдает в тебе макакена.
>Я знаю про все это, но при прототипировании это обычно не используется.

Но типичный макакен даже не знает о прототипировнии и его главная цель в написании программки красивенько все оформить, чтобы тимлид хуем по губам провел и сказал маладец.
Аноним 26/07/18 Чтв 20:33:13  1235747
>>1235726
>WinExec
Смотрим мсдн:
Note: This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

Нахуя ты юзаешь этого динозавра? Под виндовс 3 пишешь?
Аноним 26/07/18 Чтв 20:33:27  1235748
>>1235743
Если для тебя тот код кажется чем-то совсем непонятным, то у меня для тебя плохие новости.
Аноним 26/07/18 Чтв 20:36:29  1235751
>>1235747
ты не поверишь, но там WinExec с этой программой, что он использует запускает какую-то утилиту Windows, которая работает из консоли. Как я понимаю, ему важно, чтобы когда он её врубает, то у него было SW_HIDE. SW_SHOW уже поставил я.
Аноним 26/07/18 Чтв 20:37:28  1235755
>>1235741
ты после прототипирования сделал одну хуйню, знаешь какую? Показал код другим.
Аноним 26/07/18 Чтв 20:39:30  1235759
>>1235755
И что?
Ты зайти на любой сайт по алгоритмам, такой спартанский стиль это обычная практика.
Аноним 26/07/18 Чтв 20:43:19  1235765
>>1235759
https://github.com/heineman/ algorithms-nutshell-2ed

зашёл, где?
Аноним 26/07/18 Чтв 20:45:48  1235766
>>1235738
так, оба.
Ты же видешь, что у него там наверху ifdef с юникодом?
потом он эту строку приводит к c_str()
а потом указывает пойнтер на ANSI?

Это точно нормальная практика программировать окна?
Аноним 26/07/18 Чтв 20:47:57  1235769
>>1235765
>Java
Ты реально дебил?

Вот известный сайт по алгоритмам откуда я взял часть кода:
http://e-maxx.ru/algo/aho_corasick

>inb4: ПИДАРАШИЙ ГОВНОКОД РЯЯЯЯ
Ладно вот держи расово верный англосаксонский вариант:
https://www.geeksforgeeks.org/aho-corasick-algorithm-pattern-searching/
Аноним 26/07/18 Чтв 20:50:50  1235772
>>1235769
This directory contains the C and C++ code solutions as coded in the
O'Reilly book "Algorithm in a Nutshell", Second Edition, by George
Heineman, Gary Pollice, and Stanley Selkow, (C) 2016.

Во всей книге си, а ты нашёл там в директории ПИТОН ДЖАВА и закукарекал
Аноним 26/07/18 Чтв 20:54:36  1235775
>>1235731
Опять портянку высрала порватка.
Ну хватит :3.

лабу 1 я уже сделал.
Аноним 26/07/18 Чтв 20:57:54  1235777
>>1235772
Ладно, я понимаю, что ты троллишь, но подыграю тебе:
Открываем первое попавшееся на С
https://github.com/heineman/algorithms-nutshell-2ed/blob/master/Code/Sorting/Ints/modifiedQsort.c

И что мы видим? Говнокодик с непонятненькими названиями переменных?
А где же ThisVariableContainTheSizeOfTheArrayWhichWeUsedToCountWorldInTheClassSortedWhichInhiritsClassBasInOutFouthLessonInMyPriviousBookWhichIwroteWhenIWas21AndMyDickCouldStillBeHard = 21?

Более того, глупо вообще сравнивать код из книги с кодом из реальной жизни.

Аноним 26/07/18 Чтв 21:03:10  1235780
>>1235777
похоже у тебя реально проблемы.
Там таки понятный код, потому что переменный не похожи друг на друга, а книги по рефакторингу или стандарты ты не читал.

А вот помогать тебе внедрять в банк поиск по списку террористов (медленное решение), когда есть другой алгоритм, и он проще и быстрее для такого дауна, как ты.

Если тем более у тебя реально пробела в алгоритме, то это ещё большая проблема, для тебя, так как ты не можешь его выразить на псевдокоде, чтобы найти ошибку. Так что тестируй.
Аноним 26/07/18 Чтв 21:04:25  1235781
И всё-таки какого хуя я не могу написать всё в .cpp файле? Зачем нужен этот сраный .h?
Аноним 26/07/18 Чтв 21:06:18  1235783
>>1235781
ускоряет процесс компиляции
Аноним 26/07/18 Чтв 21:07:12  1235785
>>1235783
Проиграл
Аноним 26/07/18 Чтв 21:08:26  1235787
>>1235783
Блять, когда уже кто-нибудь запилит современный язык с функционалом си?
Аноним 26/07/18 Чтв 21:20:29  1235797
>>1235766
с_str() это получение указателя на внутренние данные в соотвествии с типом строки. если #def unicode то у него строка wstring и будет const wchar_t. иначе string и const char_t.
В свою очередь LPCTSTR = const char or const wchar_t depending on _UNICODE, то есть там тривиальное приведение из char в char и wchar_t в wchar_t без преобразований. Другое дело, что UINT WinExec(LPCSTR , UINT ); не приспособлена для wchar_t*.

Но всё равно скорее всего дело в '\\' и в '\"'. Видимо он парсит строку как строковый литерал:
WinExec("\"C:\\Program Files\\MyApp.exe\" -L -S", ...)
Аноним 26/07/18 Чтв 21:34:46  1235809
>>1235780
Боже, что за поток создания ты высрал?
Боже, как таким идиотом вообще возможно быть?

1. У тебя что фикс на чистоте кода? Ты недавно прочитал Чистый Код и теперь пытаешься блеснуть своими знаниями в любом разговоре? Так вот знай, я читал чистый код и прочие книги по рефакторингу и скорее всего даже получше тебя в этом разбираюсь и знаешь что? Я ебал твою чистоту кода в ротешник. Как тебе такое? Если ты даун и не можешь понять что t[v] это доступ к вершине, что функция go это функция переходов конечного автомата по состояниям и out это функция перехода на листья в дереве, то это твои проблемы, ибо почти во всех источниках именно так этот код и выглядит в плоть до названия переменных.

2. Ты настолько тупой, что даже не понимаешь и не знаешь предназначения алгоритма Аха Корасика, что думаешь это для поиск по списку? Ты вообще отличаешь поиск по списку от паттерн матчинга? Ты просто невообразимо туп, так что лучше даже не лезь сюда.

3. Я сразу сказал, что проблема в алгоритме. Алгоритм выражен абсолютно правильно, дело в том, что есть его вариации специально заточенные под конкретные специфические случаи, детали этих реализаций четко особо нигде не описаны.
Аноним 26/07/18 Чтв 21:44:13  1235815
>>1235781
Скоро сможешь. К 23 году (если повезёт в 2020) обещают добавить модули.
Аноним 26/07/18 Чтв 21:55:15  1235828
>>123580
Я тебе сказал, у тебя не та вариация. Такой алгоритм какой тебе нужен называется по другому. И ты даун, чтобы в банках делали поиск по списку? Там паттерн матчинг
Аноним 26/07/18 Чтв 22:40:07  1235864
>>1235828
Ты же даже не знаешь задачу которую я хочу решить им и уже говоришь, что мне нужен другой алгоритм.

Я просто в ахуе с тебя.
Аноним 26/07/18 Чтв 22:55:53  1235877
>>1235864
Ты заебал.
У тебя косяк в методе check. Это к вопросу об однобуквенных именах.
Аноним 26/07/18 Чтв 23:00:30  1235878
>>1235787
Rust?
Аноним 26/07/18 Чтв 23:05:47  1235879
>>1235877
Бля точняк, спасибо бро.
Аноним 27/07/18 Птн 02:04:50  1235931
Пацаны, вот скажите. Допустим я хочу написать модульное приложение, которое состоит из .exe файла и dll-ек(абстрактно, оно кроссплатформенное) под qt и я хочу чтобы в exe рисовалось основное окно, а каждая dll отвечала за вкладку. Как я это сделаю?

Единственное что мне приходит в голову - передавать qml как строку.
Но это плохая идея. А как лучше?

Аноним 27/07/18 Птн 03:07:07  1235939
>>1235931
> я хочу чтобы в exe рисовалось основное окно, а каждая dll отвечала за вкладку. Как я это сделаю?
Главный вопрос.
Зачем?
Аноним 27/07/18 Птн 03:20:04  1235940
>>1235939
Интересно. Вот допустим я хочу чтобы каждый новый модуль был самостоятельным и мог отвечать за свой интерфейс и чтобы добавить в програму новый функционал можно было просто создать новый модуль и не трогать старые вообще никак

Аноним 27/07/18 Птн 03:25:12  1235941
>>1235931
> Но это плохая идея.
Чем она плохая? Qt так и делает, только сначала достаёт строку из ресурсов, а потом передаёт парсеру.
Аноним 27/07/18 Птн 03:32:13  1235943
>>1235941

Ну, для этого нужен таки парсер qml. А как парсить qml?

Аноним 27/07/18 Птн 03:35:36  1235944
>>1235943
http://doc.qt.io/qt-5/qqmlcomponent.html
Аноним 27/07/18 Птн 04:08:42  1235947
У меня есть массив интервалов типа [0-3][0-8][4-8][4-11][9-11][12-16]
Мне нужно сделать из него множество всех комбинаций без пересекающихся интервалов, типа
[0-3][4-8][9-11][12-16]
[0-8][4-8][9-11][12-16]
[0-8][4-11][12-16]
[0-3][9-11][12-16]

Как сделать лучше?
Аноним 27/07/18 Птн 05:51:56  1235957
>>1235947
У тебя во 2 и 3 комбинациях есть пересечения. Напиши полный вывод для данного примера.
Аноним 27/07/18 Птн 11:38:44  1236055
>>1230522 (OP)
Есть ли вообще смысл использовать new вместо new [1]?
Зачем было так делить операции? Чтобы потом кто-то пердолился, думая, есть там [] или нет?
Да ещё и результат не определён в случае ошибки.
Каков здравый смысл?
Аноним 27/07/18 Птн 11:41:58  1236057
>>1236055
Впрочем, понял, можно же конструктор не по умолчанию юзать для не-[]
Аноним 27/07/18 Птн 11:44:51  1236060
мне SIZE_MAX и и функуция max_size вектора charов выдают одно и то же число, 18446744073709551615. Что оно значит и откуда берется? Я прочитал что это максимальное значение объекта типа size_t и соответственно максимальное количество элементов которое может хранить вектор чаров. Но ведь даже если разделить это число на 1024^3 останется число с 11 цифрами, какое то невероятное количество гигабайт, откуда оно берется?
Аноним 27/07/18 Птн 11:57:44  1236063
>>1236060
а ясно, это просто 2^64-1. Зависит от разрядности ос
Аноним 27/07/18 Птн 13:21:29  1236138
>>1235957
Ну короче чтоб из входного ренджа сделать список всех возможных комбинаций с непересекающимися ренджами.

Input: [0-3][0-8][4-8][4-11][9-11][12-16]
Output:
1 -[0-3][9-11][12-16]
2- [0-8][9-11][12-16]
3- [0-3][4-11][12-16]
4- [0-3][9-11][12-16]

Типа как-то так.
Аноним 27/07/18 Птн 13:51:59  1236173
>>1235797
Дело было в том, что он не тот метод юзал. У него ничего не вызывалось изначально ( а приложение которое он мне дал реально было 16-бит), и оно вызывалось, поэтому я отловить не мог( особенно когда я переключал сборку на юникод). Переделал код под криэйтпроцесс и тепеоь работает все.

Пойду дальше писать свои драйвера.
Аноним 27/07/18 Птн 14:49:37  1236232
>>1230522 (OP)
Порекомендуйте сборник задач/задачник по программированию.
Аноним 27/07/18 Птн 17:20:21  1236361
>>1236232
Посмотри на какие-нибудь online judges, вроде https://codesignal.com/ и https://codewars.com.
Аноним 27/07/18 Птн 18:59:02  1236432
backtrackingran[...].png (46Кб, 1850x480)
>>1236138
Короче решил делать бектрекингом, но я настолько туп, что не смог это в голове реализовать без графа.
Аноним 27/07/18 Птн 18:59:14  1236433
какая разница между

Rational Rational::operator+(Rational p)
{
numerator = p.denominator;
p.numerator
= denominator;
numerator += p.numerator;
denominator = p.denominator;
return
this;
}

и

Rational& Rational::operator+(Rational p)
{
numerator = p.denominator;
p.numerator
= denominator;
numerator += p.numerator;
denominator = p.denominator;
return
this;
}
Аноним 27/07/18 Птн 19:11:24  1236443
>>1236432
Только теперь проблема, найти максимальные уникальные последовательности. То есть чтоб на последнем выходе не было 1 элемент (12-16). Может я граф не правильно построил?
Аноним 27/07/18 Птн 19:36:09  1236458
>>1236432
Тоесть по твойму последовательности типа:
Root -> (0-8) -> (4-8) -> (4-11) -> (9-11) -> (12-16)
это нормальные непересекающиеся интервалы?
Аноним 27/07/18 Птн 19:46:01  1236467
>>1236458
Нет, это дерево для бектрейса, то есть мы идем от root -> (0-3) x-> (0-8) ->x, на (0-3) мы смотрим что (0-8) пересекается и уже не идем дальше отбрасывая все поддеревья с (0-8) и переходим в root -> (0-3) -> (4-8) -> ...
и так далее.
Аноним 27/07/18 Птн 21:20:04  1236517
Увидел тут ссылку на этот сайт. Начал там делать задачи, щас пришло уведомление что скоро начинается еженедельный контест. Планирую поучаствовать.
Есть еще тут народ участвующий там?

Вот ссылка
https://leetcode.com/contest/weekly-contest-95/
Аноним 27/07/18 Птн 21:43:40  1236529
Ку, поясните дорогие, что значит выучить STL, как определить степень своих знаний, типо читал-видел достаточно, или надо как то обширно наизусть все знать вот это вот все, благодарен
Аноним 27/07/18 Птн 21:48:52  1236536
Олимпиадного говнопогромирования пост.
В условиях написано, что надо вывести число с точностью до 6 цифр после запятой, но при юзании дабла только 5, чяднт?
Аноним 27/07/18 Птн 23:55:03  1236575
>>1236529
Да сделай свой список или вектор с
блекджекомитератором и мемным аллокатором, почитай про мапы, хеш мапы, сеты и прочую поебень, изучи std algorithms, хули там.
>>1236536
Есть же такая хрень, как std::setprecision(определена в iomanip), которая позволяет задать произвольную точность вывода чисел с плавающей запятой.
Аноним 27/07/18 Птн 23:59:34  1236576
>>1235947
Само заебато такие вещи делать при помощи префиксного дерева(trie).
Аноним 28/07/18 Суб 02:09:54  1236599
>>1236576
Что трай-то даст?

>>1236432
Короче бля при больших N это начинает пиздецово медленно работать, что не проходит по времени в задании.
Вот код
https://ideone.com/XZe2It

Кто знает как ускорить можно?
Аноним 28/07/18 Суб 02:22:41  1236602
>>1236599
Я бы это задание делал через матрицы смежности. Над алгоритмом думай сам.
Аноним 28/07/18 Суб 02:56:24  1236605
>>1236138
В чем проблема отсортировать отрезки а потом перебрать?https://ideone.com/BFrMSU
Тут все равно лучше чем 2N не получится, если конечно надо выписывать все непересекающиеся множества.
Аноним 28/07/18 Суб 10:30:31  1236655
>>1236575
Спасибо
Аноним 28/07/18 Суб 11:26:12  1236662
>>1235947
Система непересекающихся множеств поможет тебе.
Аноним 28/07/18 Суб 17:22:04  1236830
аноны, подскажите, какой геометрический смысл данного кода?
https://acmp.ru/article.asp?id_text=170
Аноним 28/07/18 Суб 18:08:30  1236848
Хотелось бы запилить серверное и клиентское приложение, ну и реквестирую библиотеки для подобного.
Аноним 28/07/18 Суб 18:19:19  1236853
>>1236848
boost asio
Аноним 28/07/18 Суб 18:36:31  1236858
>>1236830
бамп
Аноним 28/07/18 Суб 18:38:25  1236859
>>1236858
ты тредом ошибся, паскаледед
Аноним 28/07/18 Суб 19:02:38  1236872
>>1236853
Какой же я даун нихера не понимаю, как вообще вкатываться в сетевое программирование?
Аноним 28/07/18 Суб 20:14:05  1236891
>>1236872
Читаешь таненбаума и вперед
Аноним 28/07/18 Суб 20:23:43  1236900
>>1236830
Ну тип классическая задача и классическое решение. Два отрезка пересекаются, если их концы лежат по разные стороны от линий, которые они задают.
Аноним 28/07/18 Суб 21:39:16  1236944
>>1236830
Там векторные произведения: v1 = B1B2 x B1A1, v2 = B1B2 x B1A2 - если точки A1 и A2 лежат по разные стороны от отрезка B1B2, то векторные произведения будут иметь разный знак, соответственно их произведение v1*v2 будет отрицательным. Потом то же самое проверяется для отрезка A1A2.
Аноним 29/07/18 Вск 14:48:40  1237241
Посоветуйте материал по оценке алгоритмов (выч. сложность/расход памяти/сходимость). Вот эти вот все o(n), O(n), амортизированные константы и проч. Желательно книжечку или какой-то бложик с последовательным изложением.
Аноним 29/07/18 Вск 14:59:33  1237245
>>1236232
codeforces.com
Аноним 29/07/18 Вск 16:47:46  1237288
>>1234035
Нет. Нет, блядь, нет!!!111

1. С != С++
2. Там где С пересекается с С++, в плюсовых стандартах происходит одно, а в сишных другое.
3. K&R написан вообще в достандартную эпоху.

Короче K&R это вредный совет в 2018 году, честное слово.
Аноним 29/07/18 Вск 18:02:03  1237312
Как сделать аллокатор с несколькими шаблонными параметрами? Чтоб соответствовал концепту Allocator.
Для allocator_traits написано, что "rebind_alloc = Alloc::rebind<T>::other or if Alloc is A<X,...> then A<T,...>" Но я где-то проебался и оно не хочет компилироваться именно на том месте.
https://ideone.com/evpXbL
Полдня сижу над этой пиздой.
Аноним 29/07/18 Вск 18:04:09  1237313
>>1237288
Бля, я зря что ли из шапки книги читаю?
Аноним 29/07/18 Вск 19:28:34  1237361
>>1237313
Читай ассемблер абеля для общего развития. Остальное приложится.
Аноним 30/07/18 Пнд 00:50:09  1237517
Суп, двуч. Вопрос по qt. Пишу на qml окно, есть объект

ApplicationWindow
{
//
//

Grid {
//
}

}


Каким образом я могу описать grid в другом файле qml и заинклюдить чтобы было типа Grid : myGrid? А то сам грид большой и отдельнго файла требует

Аноним 30/07/18 Пнд 02:13:25  1237532
>>1237241
Ну же, ну, где советы?
Аноним 30/07/18 Пнд 03:42:24  1237536
>>1237241
Седжевика почитай. Можно Кормена, но это оверкил.
Аноним 30/07/18 Пнд 05:06:25  1237538
1516036901236.jpg (132Кб, 1280x853)
Решил написать вектор который работает не через ебучие аллокаторы, которые не умеют в realloc и не умеет быстро копировать через memcpy.
Особо не тестил, только вот написал.
Можете постестить, буду признателен за выявленные баги.
А я пока пойду спать.

https://ideone.com/MAuUis

Дают немного нефти заранее.
Аноним 30/07/18 Пнд 07:29:13  1237542
>>1237538
откуда у тебя такие охуенные картинки бро? Поделись плс соусом и паком!!!
Аноним 30/07/18 Пнд 13:39:00  1237651
Где стихи в шапке? 2 года назад они были, а сейчас где?
Аноним 30/07/18 Пнд 13:55:45  1237652
Аноны кто что скажет за Codelite + mingw?
Стоит ли юзать? подводные камни?
Аноним 30/07/18 Пнд 14:01:55  1237655
>>1237652
>mingw
Под виндой есть смысл только в CLion + mingw, либо vs community ну и qt creator. Остальное ненужно и почти не развивается
Аноним 30/07/18 Пнд 14:12:47  1237661
>>1237655
Первый платный, второе говно.
А я задал ведь конкретный вопрос)
Аноним 30/07/18 Пнд 14:18:49  1237665
>>1237661
Хорошо, отвечу. Codelite - что-то вроде текстового редактора с подсветкой синтаксиса и глуповатым автокомплитом. Примерно на уровне vim/emacs с парой плагинов. Лучше уж взять codeblocks. Он тоже говно, но умеет гораздо больше чем codelite.
Можешь посмотреть на vs code, может понравится.
Но вообще везде используют студию или clion, может еще qt creator. Это единственные 3 человеческие ide для крестов.
Аноним 30/07/18 Пнд 14:20:28  1237668
>>1237661
Почему второе говно, гений?
Аноним 30/07/18 Пнд 14:35:38  1237682
>>1237665
Во, спасибо тебе
Аноним 30/07/18 Пнд 14:36:49  1237683
>>1237668
Потому что пока не поставишь 100500 ненужных библиотек, хуй он будет нормально работать. И он исключительно виндусовский, что автоматически его переводит в уровень рабов.
Аноним 30/07/18 Пнд 14:39:25  1237686
>>1237683
Нормально работает, все изкоробки.
Ну если не нравится, на торрентах clion ищи.
Аноним 30/07/18 Пнд 14:41:33  1237687
>>1237683
>Потому что пока не поставишь 100500 ненужных библиотек
Что ты несешь вообще?
Аноним 30/07/18 Пнд 14:47:14  1237693
>>1237687
Давай считать:
1. Kernel.dll
2. .net
3. Обязательный пакет расширения для винды, обязательные компилы для линуховых
4. Для эмуляции, обязательно поддержка гипервизора
5. Powershell если пишешь под мобильники
6. Еще 10 штук пакетов Visual C++ от времен бородино до 2018.

И все это что бы нормально установить и работать в какой то сраной IDE.

Нахуй?
Аноним 30/07/18 Пнд 14:51:21  1237696
>>1237693
1. Что это вообще такое?
2. Установлен
3. Это нормально. В линуксах кернел-хедеры.
4. Не обязательно
5. Может быть
6. ставится один, текущий. Тем не менее - если ты пекой пользуешься, они уже стоят.

Какая-то _ОЧЕНЬ_ странная аргументация, если честно. У тебя ССД на 32 гигабайта, или что?

Ну и да, ИДЕ не сраная, а де-факто стандарт индустрии.
Аноним 30/07/18 Пнд 15:03:20  1237704
>>1237693
Что ты несешь?
1. Это и так в винде есть, дебич
2. .net - по дефолту в 10 винде уже он есть
3. Для линукса - да. Про пакет расширения никогда не слышал.
4. Не обязательно
5. По дефолту есть в 10 винде
6. Ставится 2017, никаких других не надо
Аноним 30/07/18 Пнд 15:04:09  1237705
>>1237696
Нормальная аргументация. Хотя судя по первому пункту с тобой даже говорить не о чем. Максимум с чем ты работал это очередной форк или hw.
Аноним 30/07/18 Пнд 15:04:45  1237706
>>1237704
> 10 винда
Спасибо блеванул
Аноним 30/07/18 Пнд 15:11:41  1237708
>>1237705
Не проецируй, гений доморощеный.
Аноним 30/07/18 Пнд 16:07:16  1237736
>>1231748
Какая версия?
Аноним 30/07/18 Пнд 18:30:38  1237781
>>1231748
Я не уверен на все сто(компилятора под рукой нет проверить), но есть вот такая штука: https://en.cppreference.com/w/cpp/iterator/data
Могут перекрываться области видимости, из-за чего твой массив видится как эта функция.
Хотя чуйка мне подсказывает, что дело не в этом
Аноним 30/07/18 Пнд 20:11:44  1237835
>>1237651
Чулочника заебал сосач. Оно и к лучшему, тут и так клоунов хватает.
Аноним 30/07/18 Пнд 20:22:27  1237842
Подскажите детские книжки по C++, которые интерактивные и прикольные, для таких даунов как я.
Есть такая по руби и js, есть ли аналог для спп?
Аноним 30/07/18 Пнд 20:25:45  1237845
>>1237842
>Есть такая по руби и js
Я почему-то не удивлен, особенно по JS. Во истину язык для даунов.

Захуй те ЦПП, если ты даун? Один хуй либо не осилишь, либо останешься на уровне хелоу вордов.
Аноним 30/07/18 Пнд 20:53:17  1237867
>>1237842
книги уровня "С++ для даунов" не существует
Аноним 30/07/18 Пнд 20:54:23  1237868
>>1237867
Уже нашёл несколько. лел
Аноним 30/07/18 Пнд 23:04:42  1237985
Есть у кого впечатления от средства C++11 <threads>?
Перескакиваю, по сути, с pthreads на него. Говорят, что функционала меньше, но зато кроссплатформенность. Да и нативные средства по-прежнему можно вызывать.
С вас по сути только "отзыв", особенно если с другого API вкатились, как в сравнении оно...
Аноним 30/07/18 Пнд 23:50:31  1238010
1.png (13Кб, 576x264)
2.png (13Кб, 577x264)
Господа, помогите разобраться. То ли у меня мозги стухлись на ночь глядя, то ли я нифига не понимаю.
На 1.png код при n = 10000000 выполняется за 470 мс. Ключи, как видно, предварительно запихнуты в вектор(или в массив, не важно, пробовал и так и так).
На 2.png код при таком же n выполняется за 1991 мс. Здесь вектор не используется, а ключи берутся непосредственно из счетчика цикла for.
В чем подвох?
Аноним 30/07/18 Пнд 23:52:51  1238011
>>1238010
>В чем подвох?
Индирект, лишнее обращение к памяти.
Аноним 30/07/18 Пнд 23:56:35  1238015
>>1237665
>Примерно на уровне vim/emacs
Сейчас во всех редакторах LSP для автокомплита. Тот же самый, что в VS Code.
Аноним 31/07/18 Втр 00:07:38  1238019
image.png (249Кб, 1278x1082)
Ваши оправдания.
Аноним 31/07/18 Втр 00:08:25  1238020
>>1238011
Прости, можешь объяснить поподробнее?
Я так понимаю, ключ все равно передается по ссылке и unordered_map использует его только для вычисления хеша. Так какая разница откуда мы передадим значение по ссылке?
Аноним 31/07/18 Втр 00:09:24  1238022
>>1237538
Будет работать только с POD типами. Если у объектов есть конструкторы-деструкторы, то твой вектор устроит тебе большой и неприятный сюрприз.
Аноним 31/07/18 Втр 00:12:38  1238024
>>1238020
um[v] - тут непрямое чтение из памяти пидорасит кэш процессора, из-за чего падает производительность.
Аноним 31/07/18 Втр 00:24:46  1238032
>>1238020
>Так какая разница откуда мы передадим значение по ссылке?
При линейном обращении к um шанс, что нужное значение лежит в кэше гораздо выше. С массивом у тебя мало того, что обращение к памяти рандомное, так еще и опосредованное, в два приема. То есть процу сначала надо дождаться, пока придет значение из вектора, а потом еще пидорасить бинарный поиск в um.
Аноним 31/07/18 Втр 00:37:02  1238042
>>1238032
Ну, вообще по логике так, да. Только, во-первых, в массиве и векторе соседние элементы лежат рядом, то есть вероятность того, что соседние элементы вектора есть где-то в кеше, тоже довольно большая. А во-вторых, что самое интересное, все с точностью наоборот к твоим словам. Ты перепутал скриншоты. По ним видно, что в случае вектора(скрин 1) доступ быстрее, чем линейный(скрин 2).
И, если подумать, последовательные ключи 1,2,3... будут иметь совсем разные хеши, т.е. могут лежать далеко друг от друга и попадание одного элемента в кеш не означает попадание туда соседа. Но все равно какая-то хуйня, я запутался.
Аноним 31/07/18 Втр 00:37:26  1238043
>>1238032
>бинарный поиск в um
Но это же хэштэйбл. Доступ по ключу за константное время.
Аноним 31/07/18 Втр 00:50:47  1238056
>>1238043
>Доступ по ключу за константное время.
"Константное" время на практике очень сильно зависит от того, как идет обращение к памяти. Вплоть до того, что для небольших массивов линейный поиск может быть быстрее, чем хэш таблица.
Аноним 31/07/18 Втр 01:01:21  1238059
>>1238056
>для небольших массивов
>>1238010
>n = 10000000
Плез. Тут происходит амортизация того, о чём ты говоришь. Иди баиньки уже.
Аноним 31/07/18 Втр 01:01:44  1238060
>>1238042
>Ты перепутал скриншоты
Тогда странно получается, да. Запости целиком прогу.
Аноним 31/07/18 Втр 18:02:57  1238416
Аноны, такая проблема:
Работал в визуалке 2017 года, работал с символьными динамическими массивами. На визуалке "программа" работает некорректно. Выводятся вообще рандомные символы. Как я понял, неправильный адрес берется компилятором. Скопировал код в Dev C++ и C++ Builder - все нормально. Как фиксить парашу от микрософта?
Аноним 31/07/18 Втр 18:33:11  1238427
>>1238416
Вангую дело в кодировке
Аноним 31/07/18 Втр 18:36:04  1238430
>>1238416
Как фиксить свои кривые руки от андифайнед бихевиора, ты хотел сказать?
Аноним 31/07/18 Втр 22:13:02  1238536
Доброй ночи. Я тут сходил на собес, паттерны по банде четырех вроде нормально знаю, но теперь спрашивают, а скажи мол, дорогой, по GRASP паттернам. Я же вообще ни в зуб ногой, че это за хрень такая. Домой как вернулся, гуглить — только статьи в хабровикипедиях понаходил. А литература какая-то есть на эту тему, что посоветуете?
Аноним 31/07/18 Втр 22:53:30  1238565
14592143271900.jpg (59Кб, 540x643)
>>1238536
>Паттерны
>C++
Ты кем устраиваешься? Формошлепом каким-то что ли?
Аноним 31/07/18 Втр 22:57:33  1238570
>>1238536
А есть ещё вот такие:
https://books.google.ru/books/about/Patterns_for_Parallel_Programming.html?id=LNcFvN5Z4RMC&redir_esc=y&hl=en
Этих паттернов понапридумывали ояебу сколько. Если ты на кодера собираешь устраиваться, то просто забей. На практике ты их все увидишь не раз, только названия знать не будешь.
Аноним 31/07/18 Втр 22:58:40  1238571
>>1238565
Всем без разбору, где требования к языкам только C++. Я даже C знаю очень неуверенно, а о питонах всяких и речи не идет. Хочу уже куда-то устроиться, а не все сидеть и „вкатываться“. Так что с ГРАСПом-то?
Аноним 31/07/18 Втр 23:00:28  1238573
>>1238570
Спасибо, буду хоть морально готов, что на ГРАСПЕ оно не заканчивается.
Аноним 01/08/18 Срд 00:10:06  1238634
1514386630141.jpg (40Кб, 273x398)
8 лет прогал под линукс, дома последние лет 5 тоже линукс стоял как основная система + винда для игорь на другом диске.
Теперь появилось такое желание попрогать под виндой.
Раньше сказать, я ненавидел С++ под виндой, ибо WinApi это просто пиздец, корявое уебище по сравнению с красивым и удобненьким linux api + Студия говно, но я нашел Resharper C++ попробовал его вроде годно.
Единственное, что до сих пор смущает - это отсталый компилятор у студии, в котором мало того, что много чего из новых стандартов не реализованно, так еще и нету всяких санитайзеров, что просто киллер-фитча, который я постоянно пользуюсь в gcc, которая позволяет находить различные сложные баги. Плюс вывод ошибок у студии уебищный и не понятный по сравнению с gcc который прямо очень точно указывает, что не так да еще и цветом выделяет, студия выплевывает какую-то несуразную хуиту по которой вообще не понятно в чем проблема.
Зато у студиии дебагер вроде как получше.
Еще бесит у студии флаги компилятора уебанские и совсем другие, чем у gcc, clang, intel и проч.
Еще не понятно, что у студии с CMake'ом.

Так вот что скажите, если ли какие-то обходные пути?
Аноним 01/08/18 Срд 00:22:09  1238640
>>1238634
> отсталый компилятор у студии
Полная поддержка С++17 завезена уже
Аноним 01/08/18 Срд 00:23:06  1238643
>>1238634
Ты делать то что собрался, болезный?
Аноним 01/08/18 Срд 00:41:14  1238649
>>1238634
Я бы посоветовал тебе Eclipse вместо VS. В нём сбываются все красноглазые мечты.
Аноним 01/08/18 Срд 01:08:14  1238656
>>1238640
А что на счет санитайзеров, адекватного вывода компилятора, CMake, и прочего?

>>1238643
Для себя я обычно всякие алгоритмических программы делаю.
На работу щас устраиваюсь, там под винду надо будет делать.

>>1238649
Ой не, я Eclipse траил много лет под линуксом, за все эти годы переодических попыток, я так и не разобрался как там скомпилировать что-то. Эклипс это просто кусок говна.
Юзал QtCreator долгое время, потом пересел на CLion с его появлением.
Но Clion до сих пор не особо со студийным компилером работает, а отладчик его вообще не поддерживается.

На gcc под виндой, половина фишек типа санитайзеров не работает.
Аноним 01/08/18 Срд 01:34:53  1238667
>>1238656
>На работу щас устраиваюсь
This is the third thread you've been applying for a job. So sad reading this. But its a fair price for being a linux c/c++ developer. Red-eyed guys have to suffer.
Аноним 01/08/18 Срд 01:44:28  1238670
>>1238667
>This is the third thread you've been applying for a job. So sad reading this. But its a fair price for being a linux c/c++ developer. Red-eyed guys have to suffer.
Лол. Это паста или нахуя ты на англ. написал?
Вообще по линуксу дохуя всего, просто так попалось, что мне понравился проект, платят норм, и есть перспективы съеба с пидарахи.
А так на линуксе намного больше по плюсам вакансий, чем на винду.
Аноним 01/08/18 Срд 02:05:52  1238676
>>1238670
If we go to a local job-placement site like hh.ru and check your statement about development under different operation systems we will find out that its totally wrong. There are only 1k positions marked both "c++" and "linux" against 3k positions marked with "c++" in total. What would you say in opposition to this fact?
Аноним 01/08/18 Срд 05:41:32  1238691
>>1238430
>андифайнед бихевиора
Ты о чем?
мимо закончил первый курс
Аноним 01/08/18 Срд 05:57:53  1238694
>>1238691
Да.
Аноним 01/08/18 Срд 06:00:30  1238696
>>1238694
Ааа
Аноним 01/08/18 Срд 13:23:25  1238888
>>1238676
>being a pretentious cunt wallowing in his basic ability to write English
Seems ta me yer peen is hoora wee, innit?
Аноним 01/08/18 Срд 13:35:03  1238895
>>1238676
>operation systems
o, vy iz anglii?

>against 3k positions marked with "c++" in total.
И где доказательства, что из этих 2к на винду больше тысячи?
Аноним 01/08/18 Срд 15:58:37  1238963
>>1238888
>to write English
"in English" actually

>>1238895
>o, vy iz anglii?
Mistakes are made.

>И где доказательства, что из этих 2к на винду больше
тысячи?
We cant get the certain numbers from the inquiry. In my experience if an employer doesn't point out "linux" in a description then its a windows-based position, though.
Аноним 01/08/18 Срд 16:20:16  1238970
DpQ9YJl.png (20Кб, 700x700)
>>1238963
>"in English" actually
Не обязательно.
Аноним 01/08/18 Срд 17:14:53  1238999
CNEgEeWO88I.jpg (32Кб, 521x400)
>>1238634
QtCreator + MSVC компилятор, ежжи.
З.Ы. Только креатор предпоследний бери. Из ГУИ на выбор как с++ Qt виджеты, так и QML JS фигня с пробросом с++ функционала, забавная вещь.
Аноним 01/08/18 Срд 17:29:26  1239009
>>1238970
Maybe somewhere in India it is.
Аноним 01/08/18 Срд 18:00:36  1239036
>>1238649
ты совсем сумасшедший? Эклипс это худшее, что существует в мире IDE
Аноним 01/08/18 Срд 18:05:10  1239039
>>1239036
Чем оно худшее, дебич? В разы проще и интуитивнее, чем MS VS.
Выведено всё, всё, блядь, что можно.
Аноним 01/08/18 Срд 19:38:46  1239088
>>1239039
Земля тебе пухом
Аноним 01/08/18 Срд 19:55:37  1239094
34144.jpg (9Кб, 480x360)
Решил собрать свой "кроссплатформенный" проект, который я писал и тестил под линуксом, в студии.

Во-первых, я ахуеваю на сколько студия уебищная с работой с CMake это просто пиздец, постоянно че-то не обновляется в этом ссаном кеше, блять через жопу все опции как-то, флаги компиляции как-то криво приходят, пиздец одним словом.

Во-вторых, я хуй знает как, но блять файловые стримы под виндой работают в 100 раз медленее. Мое приложение много работает с файлами, и я долбоеб, почему-то решил использовать плюсовые стримы, хотя знал что это кусок говна, но не ожидал, что настолько. В общем, идея там простая: я задая фиксированный буффер через rdbuf()->pubsetbuf() и уже пишу/читаю потом. Короче на линуксе чтение/запись работает очень быстро типа файл в 10 мегов, пишется из памяти через с++ стримы в районе пары мс, под виндой эта хуйня занимает по 3-4 СЕКУНДЫ!!!! Я сначала не понимал, почему мое приложение так медленно работает, потом запустил профайлер и ахуел, что это файловый стрим так тормозит, заменил его на Сишные стримы все стало нормально. Но это просто эпический пиздец.

В-третьих, как меня заебала студия своим уебищным UI, при компиляции поднимается окошко с логом компиляции и ошибками и СРАЗУ ЖЕ закрывается, я блять ахуеваю просто, постоянно надо нажимать туда чтобы посмотреть ошибки, а держать его открытым постоянно - это место занимает. Короче пиздец.

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

В-пятых, Ебучее WinAPI, сегодня час потратил пока искал в инете как превратить код возврата ошибки в строку, там пиздец.
Аноним 01/08/18 Срд 19:57:44  1239096
>>1239094
Пиздос, иде для пидоров как и смейк, но похоже ты уже начинаешь понимать
Аноним 01/08/18 Срд 20:01:57  1239105
>>1239094
>решил использовать плюсовые стримы, хотя знал что это кусок говна

почему это кусок говна?
Аноним 01/08/18 Срд 20:03:57  1239107
>>1239105
Потому что медленные как пиздец.
Аноним 01/08/18 Срд 20:25:55  1239130
>>1239094
Для винды по опыту считывание около мб оптимально. Больше или меньше медленнее. И при чем тут плюсы, если за стрим ОС отвечает?
Аноним 01/08/18 Срд 20:33:53  1239141
>>1239094
1. Да
2. Делает хуйню
3. Неосилятор
4. Неосилятор
5. Неосилятор

> РРРРРРРРРРРЯЯЯЯЯЯЯЯЯЯЯЯЯЯ СТУДИЯ ГАВНО МАМ
Вопрос на миллион Аутист 01/08/18 Срд 20:34:28  1239142
Зачем C++ ввёл ссылки? ну правда, были указатели, они могут быть шаблонными типами, с ними не возникнет этих сраных ссылочных проблем, которые ещё и варьируются со стандартами.
"Ссылка просто предоставляет нам более простой интерфейс по сравнению с указателями. Теперь не надо постоянно разыменовывать." - Примерно так пишут в учебниках.
На деле:
> семантика переноса
> ссылки rvalue, lvalue, универсальные ссылки
> Ой, у вас тут std::move отваливается, замените на std::forward
> Ой, вы думали, что тут rvalue, но он как аргумент, конечно, rvalue, но формальный параметр есть lvalue по природе своей. Не ешь, подумой
> Здесь у вас кусок говна получился с копированием, мы же хотели прямую передачу
> Вы что, не знаете, как сворачиваются ссылочки?
И это притом, что:
> Указатели неплохо смотрятся в шаблонах.
> Указатели прозрачны в плане модели памяти и вообще довольно наивны. Ни у кого в голове не будет сомнений по поводу природы указателя, в то время как изучающие C++ без С могут спустя года не понимать, что компилятор все ссылки в конечном счёте сводит к указателям как естественным носителям информации "где".
Аноним 01/08/18 Срд 20:39:41  1239145
>>1239094
Добро пожаловать в мир разработки по, клован. Нехуй было 8 лет сычевать под одной осью и дрочить в один и тот же инструментарий.
Аноним 01/08/18 Срд 20:42:23  1239150
>>1239130
Я вроде ясно написал, что СИшные стримы работают нормально, когда я ими заменил плюсовые. При чем тут ОС?

>>1239141
Просто обоссал и убил твою семью, большего ты не заслуживаешь.

>>1239145
>"Мир разработки ПО"
Лел.
Вообще я думал ваш мир намного более продвинутый, но сейчас понимаю, что линукс в этом плане идет впереди лет на 20.
Аноним 01/08/18 Срд 20:43:07  1239151
>>1239150
Попробуй сменить компилятор. По сути из твоего жирного поста проблема-то только в медленной работе. Серьёзная.
Аноним 01/08/18 Срд 20:44:55  1239155
>>1239150
>СИшные стримы
наркоман?
Аноним 01/08/18 Срд 20:45:40  1239157
>>1239155
stdio.h
Слышал о таком?
Аноним 01/08/18 Срд 20:46:35  1239159
>>1239151
Серьезная да, но остальные мелочи тоже выводя из себя спустя некоторые время.

>Попробуй сменить компилятор.
Так смысл, если программа должна быть кроссплатформенная? Под студией она уже хуево работает, значит под нее уже надо менять решение.
Аноним 01/08/18 Срд 20:47:09  1239161
>>1239094
Да, тебе один намекнул, но зачем ты полез КАЧАТЬ ВИЗУАЛ СТУДИО ПОСЛЕ МНОГИХ ЛЕТ ОБЖИМАНИЯ/ПИНУСА?
Есть mingw, MSYS, pacman доставит утилиты!
Аноним 01/08/18 Срд 20:48:33  1239163
>>1239159
> кроссплатформенная
Не кросскомпиляторная. Вообще, если ты нигде не обосрался и не написал какой-то код с undefined behaviour в редких ситуациях, то тебя долбать судьба твоей обёртки системных вызовов волновать не должна.
Не нравится - пиши ifdef'ы и разные вызовы для разных осей, лул.
Аноним 01/08/18 Срд 20:50:56  1239166
>>1239157
>Слышал о таком?
Слышал, причем здесь стримы?
Аноним 01/08/18 Срд 20:53:17  1239170
>>1239166
FILE * это указатель на стрим, если что.
> The fopen() function opens the file whose name is the string pointed
to by pathname and associates a stream with it.
Вы уже забываете свои корни
Аноним 01/08/18 Срд 20:55:35  1239173
>>1239161
Да я пару постов назад писал, что хочу попробовать на студии пописать. Тем более я там же писал, что у всяких gcc под виндой половина фитч не работает, типа санитайзеров.

>>1239163
В том-то и дело, я кроме STL ничего не использовал и по идее должно было работать нормально в любых компиляторах.

В общем, я думаю проблема в ебучих плюсовых буферах, которые на каждый символ вызывают функцию.

>std::basic_istream::read
>When using a non-converting locale (the default locale is non-converting), the overrider of this function in std::basic_ifstream may be optimized for zero-copy bulk I/O (by means of overriding std::streambuf::xsgetn)

>std::streambuf::xsgetn
> Reads count characters from the input sequence and stores them into a character array pointed to by s. The characters are read as if by repeated calls to sbumpc().


Короче стримы сами по себе медленное говно.
Жаль в плюсы не завезли мемори мапинг.
Аноним 01/08/18 Срд 20:58:48  1239181
>>1239170
>это указатель на стрим
У тебя кресты головного мозга
Аноним 01/08/18 Срд 20:59:09  1239182
>>1239173
В догонку топик по сабжу

https://stackoverflow.com/questions/26095160/why-are-stdfstreams-so-slow
Аноним 01/08/18 Срд 20:59:13  1239183
>>1239181
Чего?
Аноним 01/08/18 Срд 21:00:04  1239185
>>1239155
>>1239166
>>1239181
Вкатывальщик не палится.
Аноним 01/08/18 Срд 21:01:18  1239188
>>1239185
Вообще, да.
Он упоротый какой-то.
Аноним 01/08/18 Срд 21:01:56  1239190
>>1239142
Bump, ваши идеи.
Оправдывайтесь, крестодауны
Аноним 01/08/18 Срд 21:02:02  1239191
>>1239182
Чем выше уровень абстракции, тем меньше производительность. Очевидно же. Ты бы ещё производительность raw и smart указателей сравнил.
Аноним 01/08/18 Срд 21:05:31  1239198
>>1230522 (OP)
> CPP тред
Зачем вам отдельный тред для препроцессора языка C?
Аноним 01/08/18 Срд 21:06:26  1239199
>>1239191
Абстракции абстракциями, но если бы ты почитал тот тред дальше, то увидел бы, что разработчики gcc почему-то позаботились о быстрой реализации этих стримов для больших блоков данных, а в студии похуй. Хотя это даже хорошо, а вообще лучше бы из С++ удалили файловые стримы, и оставили бы только стринг стримы, для удобного форматирования.
Ну или хотя бы завезли какие-нибудь классы для работы с большими бинарными файлами.
Аноним 01/08/18 Срд 21:07:26  1239200
>>1239198
>Зачем вам отдельный тред для препроцессора языка C?
Что бы поток байтов называть стримом
Аноним 01/08/18 Срд 21:07:50  1239201
>>1239190
Ну что ты пристал? Никто уже не помнит зачем ссылки ввели. А && ввели, потому что хомяки новый функционал клянчили. Мол вон в питухоне ещё инструментария навалили и какие там всякие приколюхи - нам это тоже пиздец как надо.
Аноним 01/08/18 Срд 21:08:07  1239202
>>1239199
Ебать, ты помимо того что нытик, так еще и ни хуя не понимаешь
Аноним 01/08/18 Срд 21:09:01  1239203
>>1239201
>Ну что ты пристал?
Я просто представил, как на меня будут смотреть, если я не буду их в коде юзать вообще.
И есть дикое желание, если честно...
Аноним 01/08/18 Срд 21:09:14  1239204
>>1239201
>А && ввели
Чем крестодибилам указатели помешали?
Аноним 01/08/18 Срд 21:10:06  1239205
>>1239202
Так и что не понимаю и где я не прав или обосновывай или иди нахуй со своими вскукареками.
Аноним 01/08/18 Срд 21:10:17  1239206
>>1239204
>>1239200
Хватит уже толстить
Аноним 01/08/18 Срд 21:11:39  1239207
>>1239205
>где я не прав
В стримах
Аноним 01/08/18 Срд 21:14:06  1239209
>>1239207
Все пошел на хуй, не беси меня.
Аноним 01/08/18 Срд 21:15:40  1239211
>>1239209
>Я в скинни джинсах, и я прыгаю на сцене
ясно
Аноним 01/08/18 Срд 21:20:58  1239216
>>1239203
Да всем пофиг на самом деле. Писать на c++ это как жить в Китае или Индии - вроде язык общий и традиции, однако отдельные этносы друг друга нихуя не понимат.
Вот как у нас тут челик из Южной Индии мира линухов не может найти себя - так и по всей отрасли.
Аноним 01/08/18 Срд 21:25:16  1239219
>>1239204
>Чем крестодибилам указатели помешали?

А их никто и не трогал. Оставили как есть. Хочешь использовать && - используй. Не хочешь - можешь написать то же самое на указателях как в бородатом 98м.
Аноним 01/08/18 Срд 21:25:27  1239220
>>1239216
>Писать на c++ это как жить в Китае или Индии - вроде язык общий и традиции
У крестоблядков ООП головного мозга, что и порождает проблемы, можно так же посмотреть питухонщиков.
Аноним 01/08/18 Срд 21:27:14  1239221
>>1239219
> Хочешь использовать && - используй. Не хочешь
Но зачем? Зачем это говно нужно?
>как в бородатом 98м.
Я уже школу закончил как два года.
Аноним 01/08/18 Срд 21:33:41  1239225
>>1239220
Эффективные менеджеры требуют многа и за быстро и чтоб вчера и чтоб сразу в продакшн. Отсюда ооп, питухон, аджаил и прочее говно.
Аноним 01/08/18 Срд 21:41:10  1239232
>>1239221
>Но зачем? Зачем это говно нужно?
Это костыль для случаев, когда можно избежать глубокого копирования.
Аноним 01/08/18 Срд 21:43:52  1239237
Сейчас подключил SFML и открыл дефолтный пустой проэкт в Code:Blocks. Всё делал по ультрапростому туториалу, и врятли мог ошибиться. Но выдаёт кучу ошибок будто не подключена вообще SFML, ide тем не менее видит классы, хотя не знаю смотрит ли она в хэадере или это встроеное.
Аноним 01/08/18 Срд 21:47:17  1239239
>>1239232
>глубокого копирования
Копирования чего?
Аноним 01/08/18 Срд 21:53:07  1239242
>>1239239
Например данных, которые хранятся в объекте по указателю и подразумевают единоличное владение.
Аноним 01/08/18 Срд 21:56:45  1239246
>>1239242
>Например данных
Ну я же знаю их формат и могу их скопировать от руки, зачем это все переносить в язык?
Аноним 01/08/18 Срд 23:14:13  1239329
>>1239246
Ну любители c, например, пердолятся с хранением указателей на функции в структурах, чтобы имитировать объект с методами. В c++ это встроено в язык, хотя в большинстве случаев это не нужно.

Попробуй написать код для вот такой ситуации без &&.
class A {B* m_p;};
A f();
A a1 = f();
A a2 = a1;
Аноним 01/08/18 Срд 23:21:01  1239335
>>1239237
> Code:Blocks
Почему. Почему. Почему постоянно ньюфаги упоминают этот кусок дерьма. ЗАЧЕМ? Почему нельзя поставить Студию\Шлион\Культикреатор. Почему ставить этот высер сифозной макаки?
Аноним 01/08/18 Срд 23:22:11  1239337
>>1239335
>Студию\Шлион\Культикреатор
Аноним 01/08/18 Срд 23:24:25  1239341
>>1239337
>тормозноеговно\Шлион\анальныйзонд
Аноним 01/08/18 Срд 23:40:53  1239355
>>1239341
Обнови свой Пентиум 4 уже, не позорься. Тормозное говно у него
Аноним 01/08/18 Срд 23:46:29  1239356
>>1239355
Тормозное блять. В игры играю а студия вылетает и грузит две буквы 10 секунд.
Аноним 01/08/18 Срд 23:49:43  1239358
>>1239356
Thief и квака уже не стоят на грани компьютерной графики, анон.
Аноним 01/08/18 Срд 23:54:52  1239359
>>1239355
Так у него ЛевЪ на Java писанный работает. Пациент просто копротивляется. А может это дистрибьютер JetBrains свои копеечки отрабатывает.
Аноним 02/08/18 Чтв 00:00:01  1239361
Блять, да VS глючная что пиздец. Я такого никогда не видел, чтоб текстовый редактор виснул настолько часто и долго.
Аноним 02/08/18 Чтв 01:04:16  1239396
VS говно, его пользователи дауны.
Аноним 02/08/18 Чтв 05:16:29  1239442
Двач, почему в C++ компиляторы обнуляют указатели в структурах?
Можно ли это отключить как-то?
В c они это тоже делают, причём везде, но только с включением оптимизации.
Аноним 02/08/18 Чтв 07:23:08  1239459
>>1238963
>In my experience
But you have no experience.

>Mistakes are made.
>get the certain numbers
Ви продолжаете, может таки лучше остановиться?

>>1239200
>поток байтов
Но ведь стрим это и есть поток. В чём шутка?
Аноним 02/08/18 Чтв 10:23:39  1239489
Могучие местные крестовики не знают, что плюсовые стримы могут иметь такую-же или большую скорость, если отключать проверки.
Виндовый компилятор медленее в дебаге, т.к. имеет 100500 проверок на безопасность, многие вещи пролетающие в гцц как по маслу, в винде падают с абортом, т.к. код ансейф. Попробуй с -Ox на винде, и каким-то -Ofast на гцц.
Плюс в винде многие небезопасные оптимизации выключены вообще и нужно ручками все указывать, тот же strict_aliasing например.
Вообще в современном мире компилировать код чем-то кроме clang+llvm моветон
Аноним 02/08/18 Чтв 10:56:43  1239498
>>1230522 (OP)

Пацаны, код годный? Стоит за ними повторять?

https://github.com/CRYTEK/CRYENGINE/tree/release/Code/CryEngine
Аноним 02/08/18 Чтв 11:22:04  1239505
>>1239459
>But you have no experience.
Everyone who have ever applied for a job has such experience.

>Ви продолжаете, может таки лучше остановиться?
Any explanations are welcome.
Аноним 02/08/18 Чтв 12:27:50  1239544
>>1239489
Слушай, я сегодня напишу специально тест для стримов С++ и сишных, нативных ОС файловых функциях и мемори маппед файлов.
Так вот ясен хуй я компилировал с максимальными оптимизациями при проверке. Просто сами плюсовые стримы так сделаны хуево по крайней мере в студии.
Аноним 02/08/18 Чтв 12:47:52  1239551
Объясните как подключать библиотеки. У меня MinGW. Засунул .a файлы в \lib, хэдеры в \include. Ещё есть dll, куда его? Почему не подключается библиотека?
Аноним 02/08/18 Чтв 13:07:34  1239560
>>1239505
>applied for a job
Which you have not.

>Everyone who have
has. And probably "anyone" fits better.

>Any explanations are welcome.
I don't like "the" there, doesn't seem right. Perhaps the word "certain" is throwing me off a bit, of course. More importantly, your sentence sounds like there are some numbers (out of many) that you can't get, while what you were trying to say is you can't get specific or accurate numbers [of windows-only jobs].
I know it has a kind of similar definition in the dictionary, but see these, for example:
https://english.stackexchange.com/questions/252054/difference-between-certain-specific-and-particular
https://english.stackexchange.com/questions/291113/what-is-the-difference-between-certain-and-specific

Oh, and it should be "the description" in the next sentence.
Аноним 02/08/18 Чтв 14:03:32  1239592
>>1239544
Выключи там синхронизацию, убери проверки локалей, добавь буфферинг и увидишь, что цпп даже быстрее быть может.
Аноним 02/08/18 Чтв 16:23:56  1239647
Посоны! А у меня тут такой тупой вопросик.
А какая особая разница между функцией и классом с оператором()? Ну помоимо того что класс это ещё и всякие хуйни там можно понавешивать.
Нахуярить вместо функций классов и использовать безымянные объекты как функцию.
Аноним 02/08/18 Чтв 16:24:21  1239648
15241865960790.jpg (3Кб, 170x127)
>>1239361
>>1239396
Дурень, ты VS Code скачал?
Аноним 02/08/18 Чтв 16:44:04  1239656
>>1239551
Бамп епт.
Аноним 02/08/18 Чтв 16:50:09  1239657
>>1239648
Нет, дефолтную студию. Она не синяя она фиолетовая и виснет что пиздец.
Аноним 02/08/18 Чтв 17:56:53  1239683
Должен ли я указывать при компиляции все файлы .h которые я подключаю вне главного компилируемого файла? Или только то, что подключаю в главном?
Аноним 02/08/18 Чтв 18:09:41  1239692
Visual studio на самом деле это лучшее IDE.
Правда ещё есть Clion, он даже получше будет чем Visual studio, более того он кросплатформенный, но он стоит дохуища денег, 12000 в год.
Мне на линухе так вообще приходиться пользоваться "qtcreator", параша полная, но даже это лучшее из того что представлено на линухе из IDE (помимо вышеупомянутого Clion'a).
Аноним 02/08/18 Чтв 18:12:48  1239698
>>1239692
А нет, Clion стоит 90$ в год (что собственно тоже не подъёмная сумма (для большинства русских))
Аноним 02/08/18 Чтв 18:26:15  1239714
image.png (196Кб, 480x360)
g++ -c -g -include /C/MinGW/include/SDL2/SDL.h -MMD -MP -MF "build/Debug/MinGW-Windows/main.o.d" -o build/Debug/MinGW-Windows/main.o main.cpp

main.cpp:15:17: fatal error: SDL.h: No such file or directory
#include <SDL.h>

Памагите пожалуйста

ИДЕ NetBeans
Аноним 02/08/18 Чтв 19:09:28  1239740
Ну почему у меня никогда ничего не работает?
Аноним 02/08/18 Чтв 20:49:14  1239791
Помогите написать Hello World. Это вообще возможно?
Аноним 02/08/18 Чтв 21:16:11  1239811
>>1239791
Да, записывай:
#include <iostream>
int main(){std::cout << "Hello faggot" << std::endl;}
Компилируй: g++ main.cpp
Аноним 02/08/18 Чтв 21:16:28  1239813
>>1239692
>Платить самому за софт
Орнул с тебя.
Аноним 02/08/18 Чтв 21:18:09  1239815
>>1239813
Хули ты орёшь дебил? Тебе дурку вызвать?
Аноним 02/08/18 Чтв 21:25:22  1239817
>>1239815
Пернул тебе в глаз, омеганище.
Аноним 02/08/18 Чтв 21:32:47  1239819
image.png (200Кб, 416x400)
>>1239811
Не получилось. Укатился обратно в питон.
Аноним 02/08/18 Чтв 21:34:38  1239820
>>1239819
Туда тебе и дорога.
Аноним 02/08/18 Чтв 21:36:16  1239821
>>1239817
Ты в монитор пёрнул чмошник омеганский.
Аноним 02/08/18 Чтв 21:44:59  1239823
>>1239821
>Перефорс
И это все что ты можешь, жалкий девственник?
Аноним 02/08/18 Чтв 21:48:02  1239825
>>1239823
Могу дурку тебе вызывать чтобы не орал по ночам, чмошник омеганский.
Аноним 02/08/18 Чтв 21:50:06  1239828
>>1239825
>Фикс на дурке, оре и омеганстве
Тебя в детстве санитары избивали и ты потом плача громко орал, что теперь ты омеган и чмошник?

Дааа, не завидую...
Аноним 03/08/18 Птн 01:17:37  1239903
А что, правда сейчас уже зашквар писать int, long, short и т. д., а надо строго int32_t, uint8_t и т. д.?
Аноним 03/08/18 Птн 01:19:23  1239904
>>1239811
return 0; // ты забыл
Аноним 03/08/18 Птн 06:18:24  1239939
>>1239903
Так тоже зашквар. Нынче auto
Аноним 03/08/18 Птн 11:23:56  1240094
Объясните тупому.
OpenGL - это просто спецификация, так. Реализация спецификации сделана в драйверах GPU.
Тогда что я подключаю #include <GL/glut/glew/GL.h>. И если я не закину dll в проект, то говно не скомпилируется. В спецификации написано, что это >OpenGL Loading Library
Нихуя не понимаю блять
Аноним 03/08/18 Птн 11:41:30  1240105
>>1239657
Какая версия винды и студии? Может тебе просто мать пропылесосить?
Аноним 03/08/18 Птн 13:40:34  1240184
Нужно нарисовать граф с посчитанным расположением вершин. Интерфейс на Qt, позавчера в первый раз читал доки. Есть ли способ избежать отрисовки примитивов? Что-то вроде QChartView, но с рёбрами.
Аноним 03/08/18 Птн 13:56:52  1240194
>>1240184
Или лучше скопипастить сделать что-то типа этого?
http://doc.qt.io/qt-5/qtwidgets-graphicsview-elasticnodes-example.html
Аноним 03/08/18 Птн 17:41:04  1240317
Щито это такое?
if (i 1ll i <= n)
Аноним 03/08/18 Птн 17:47:21  1240322
>>1240317
if (i 8 1ll 8 i <= n)
Где восьмерки там умножение
fix
Аноним 03/08/18 Птн 18:38:05  1240357
>>1239714
> ИДЕ NetBeans
> MinGW
Помоги себе сам сначала
Аноним 03/08/18 Птн 18:38:55  1240358
>>1239904
по стандарту можно не писать в main()
Аноним 03/08/18 Птн 18:41:15  1240361
>>1240094
OpenGL в винде предоставляет возможности программирования только на OpenGL 1.1. Для того, чтобы писать на чем-то поновее, нужно загрузить нужные расширения из системы. Т.е. сама винда загружает только 1.1, надо дозагруживать
Аноним 03/08/18 Птн 20:01:32  1240419
>>1240322
Очевидно говнокод. А по делу, если i это int, то, как мне думается, автор пытается избежать переполнения при умножении.
Аноним 03/08/18 Птн 21:49:12  1240471
>>1240419
А может это фрагмент из йоба метода по типу метода Кармака для обратного корня.
Аноним 03/08/18 Птн 22:49:53  1240494
>>1240419
Спасибо, я просто даун
Аноним 03/08/18 Птн 23:44:29  1240531
Блять, как вкатиться в коммерцию? Я уже бог этого говна. Еще чуть-чуть, и пойду учить жс.
Аноним 04/08/18 Суб 00:05:57  1240550
>>1240184
Заюзаю MathGL
Аноним 04/08/18 Суб 18:03:55  1240835
>>1239939
Где это auto?
auto main(auto argc, auto argv) что ли?
Аноним 04/08/18 Суб 18:32:02  1240853
>>1240835
auto main(auto argc, auto argv)
{
std::vector<std::basic_string<decltype(
argv)>> v;
for(auto i = decltype(argc)(); i < argc; ++i)
{
v.emplace_back(argv);
}

...

}
Аноним 04/08/18 Суб 19:35:53  1240900
>>1239903
все эти инты и шорты обычно у студентиков в лабах остаются
Аноним 04/08/18 Суб 20:55:16  1240945
>>1239939
>>1239903
Плюсы не для auto, они для кроссплатформенного софта. И там и с int16_t приходится пердолиться, и свои аналоги выдумывать.
Аноним 05/08/18 Вск 01:05:52  1241045
Вы че ахуели, кто отвечает за перекат треда?
Пили новый, ты, чорт.
Аноним 05/08/18 Вск 10:41:29  1241124
В ньюфаг треде не ответили, пишу сюда:

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

У регистра есть методы get и set, которые наследуются из другого класса. Нужны для того чтобы читать из регистра и писать, регистр может иметь атрибут RO, RW, WO, в зависимости от этого мы определяем можно ли вызвать get или set.

Задача: мне нужно реализовать маппинг этого регистра к памяти по определенному адресу, чтобы вызывая get объекта, я выполнял логику get или set регистра.

У класса Memory я делаю метод map в него подается адрес на который я хочу замапить регистр и сам регистр.

void Memory::map(int addr, Register ✼reg_m) {
int64_t tempAddr = (int64_t)(int✼)reg_m;
....
}
Здесь я получил адрес регистра, т.е. адрес объекта, но теперь вопрос:
Как у этого объекта вызвать метод зная только его адрес?
Грубо говоря:
0xdeadc0de.get()

А сама программа будет работать так:
Register Reg0(8, RW); //создали регистр
Memory memspace(0x00, 0x60); //создали область памяти размером 0x60

memspace.map(0x53, &Reg0); //мапим регистр на 0x53
memspace.read(0x53); //тут уже будем читать из регистра, проходя логику проверки аттрибута регистра, и принимаем решение, можно ли с него читать или нет

Аноним 05/08/18 Вск 11:12:53  1241136
>>1241124
>Как у этого объекта вызвать метод зная только его адрес?
>TvoyClass✼ obj= reinterpret_cast<TvoyClass✼>(obj_addr);
>return obj.get();
?

Методы они не у адресов, они у объектов. Ну или я не понял, что ты вообще делаешь. Если ты в map() передаёшь указатель на Регистр, нахуя ты его в безликий адрес переводишь-от, почему бы этот же указатель и не сохранить? Потом reg_m->get() вызовешь да и всё.
Аноним 05/08/18 Вск 11:45:21  1241145
ПРИХОДИШЬ НА СОБЕСЕДОВАНИЕ ПО КРЕСТАМ
@
НАЧИНАЮТ ЕБАТЬ ЧИСТО СИШНЫМ ГОВНОМ И НИЗКОУРОВНЕВОЙ ЗАЛУПОЙ

это нормально, котаны?
Аноним 05/08/18 Вск 12:29:15  1241167
>>1241145
Насколько низкоуровневой? Про что спрашивают?
Аноним 05/08/18 Вск 12:32:36  1241174
>>1241167
просили поволохать битьы - поволохал.
срезался на ололофункциях с мемсетами мемцпай ЧТО ВЫВЕДЕТ ПРОГРАММА НА ЭКРАН ЧТО ЗНАЧИТ НЕ БУДЕТ РАБОТАТЬ ПОЧЕМУ ИМЕННО НЕ БУДЕТ РАБОТАТЬ ЧТО ИМЕНО ВЫВЕДЕТ
Аноним 05/08/18 Вск 12:36:01  1241177
>>1241174
А в чем пример был, в чем фишка? Мемсет, мемсру, и что? Там какие-то мегаподводные мегакамни?
Аноним 05/08/18 Вск 13:17:36  1241190
>>1241177
там был кусочек ебанутого кода.
и в общем было ясно что там в определенный момент память потечет, и еще куски какой-то ебанины.
я постарлся указать на то что там потечет памятть и нет смысла смотрю ту ахнинею, что есть еще. но ЭТО ОКАЗАЛОСЬ ОЧЕНЬ ВАЖНО
Аноним 05/08/18 Вск 13:35:00  1241196
>>1241190
Короче ты просто не знал, что будет и предположил, что потечет память потмоу что используются сишные функции?

Ясно.
Мы вам перезвоним.
Аноним 05/08/18 Вск 14:46:16  1241248
>>1241196
ты даун?

я тебе сказал,что там явно текла память + нахуевертили еще какого-то говна до этого.

я обозначил - тут потечет память, а тут - даже голову ломать не буду.

они такие - хуяк. ну тут потечет, а тут что будет. а я говорю - да какая разница в общем-то
Аноним 05/08/18 Вск 19:43:00  1241499
>>1233784

static constexpr inline bool IsPowerOf2(const int32 Value) noexcept
{
return (Value & (Value - 1)) == 0;
}
Аноним 05/08/18 Вск 20:16:59  1241524
>>1241248
Пиздец ты даун.
Еще удивляется почему его нахуй послали.
Аноним 05/08/18 Вск 20:36:20  1241532
>>1241145
Ну да. Те же тестовые ингда требуют написать без использования STL. Зачем? Чтобы кандидат мог ковырять легаси говно или заниматься оптимизацией.
Аноним 05/08/18 Вск 21:04:56  1241551
Ребята, учу Python, а после хочу продолжить изучать с++, какие подводные и какие плюсы я с этого получу? В СИпп знаком с переменными, циклами, условиями, а потом дропнул тк начал глубоко изучать ассемблер для кр555
Аноним 05/08/18 Вск 22:53:18  1241659
>>1241551
Охуешь и выйдешь в окно от того, сколько нюансов держать надо в голове.
Аноним 05/08/18 Вск 23:13:54  1241678
>>1241659
Не выйду, в ассемблере же разобрался
Аноним 06/08/18 Пнд 00:11:39  1241722
>>1241678
Ассемблер - это детская игрушка по сравнению с С++, в асм нету ничего сложного, единственные что может вызвать там затруднения - это понимание работы памяти и аккуратное ее использование, а так хули там есть инструкция есть 1-3 операнда, которая она принимает, сам по себе язык очень примитивный, а вот С++ это пиздец, кроме того же понимания работы памяти, там надо понимать и знать еще кучу вещей, кучу разных нюансов, знать кучу различных подводных камней.
Поверь мне, я знаю и х86 асм и плюсы уже 10 лет и то я не могу сказать про себя что я гуру в плюсах, до сих пор иногда нахожу вещи в них, которые я не знал или не понимал.
Аноним 06/08/18 Пнд 01:07:32  1241728
>>1241722
Да это то все понятно, я к тому, что трудности меня не пугают. Да и дрочу я на си, еще на 2 курсе как узнал об языке, так и влюбился
Все можно гуглить, все можно смотреть в справочниках
Мне интересно, я стану богом со связкой python и cpp?
Аноним 06/08/18 Пнд 01:15:35  1241729
>>1241728
А что есть бог для тебя? В некоторых конторах без знания определённых областей матана ты будешь делать сосамба писюрелла.
Аноним 06/08/18 Пнд 01:18:21  1241730
>>1241728
Да как вы заебали. Выучу - стану богом. Калькуляторов. Язык это просто детский лепет. 95% нужной инфы не программирование. А дискретная математика, теория информации, линейная алгебра, матан, статистика, теория вероятностей, алгоритмы, структуры данных, протоколы. В зависимости от области применения. Вот мне ебучию криптографию и телекоммуникационную начинку побоку начем писать. Хоть да яваскрипте, только оно не влезет и памяти не хватит. В последнюю очередь мне были важны нюасы языка, а вот статистические данные и вероятностная модель в первую
Аноним 06/08/18 Пнд 01:19:02  1241731
>>1241729
Дак я и не буду лезть туда, где супер мега матан, я прекрасно знаю свои возможности, а вернее свою лень
Аноним 06/08/18 Пнд 01:20:15  1241732
>>1241730
Ты еблан, пруфов не будет
Аноним 06/08/18 Пнд 01:22:23  1241733
>>1241732
Основную теорему теории информации хоть назовешь, умник?
Аноним 06/08/18 Пнд 01:23:45  1241734
>>1241731
Ну тогда будешь формошлёпить на qt и пилить автоматизацию сборки/тестирования на python.
Аноним 06/08/18 Пнд 01:25:04  1241735
>>1241733
Кодирование источника. А что ты подучишь с моего ответа? Всего лишь потешишь свое самолюбие
Аноним 06/08/18 Пнд 01:26:05  1241736
>>1241731
Тогда зачем тебе плюсы?
Аноним 06/08/18 Пнд 01:26:21  1241737
>>1241734
Че так жестко? Можно много крутых проектов сделать не знаб глубин матана, а если прямо прижмет, то всякие стаки, хабы и просто f9 try наше все
Аноним 06/08/18 Пнд 01:29:12  1241738
>>1241736
А знаешь, я не знаю. Ну сервер написать на нем, всякую дрянь типа шифровальщиков, хуков. Язык многогранен и он не только для решения " в чем смысл жизни? -7"
Или как там было, в теории большого взрыва?
Аноним 06/08/18 Пнд 01:31:46  1241739
>>1241735
Просто понять, слышал человек что-то про теорию связи или нет
>>1241738
Этого говна и так навалом. И проще это сделать не на плюсах. А за шифровальщик и присесть можно
Аноним 06/08/18 Пнд 01:34:22  1241742
>>1241739
Теорию информации конечно. Теория электросвязи отдельный пиздец. Быстрофикс
Аноним 06/08/18 Пнд 01:36:04  1241744


>>1241739
Бро, я не знаю этой теории, но щас зайду в гугл и ознакомлюсь.
А почему бы и не на си это писать? На питоне тоже можно, я и писал на нем, но доверять всяким py2exe это пиздец и объем файла становиться пиздец огромным из-за зашивания в ехе интерпретатора py
Аноним 06/08/18 Пнд 01:37:18  1241745
>>1241739
А да, на си я собираюсь читы для игр писать и инжекторы.
Аноним 06/08/18 Пнд 01:50:35  1241748
>>1241744
Ну ознакомишься. А вот полноценную начинку цифрового тракта по всем 7 уровням модели osi написать после ознакомления не сможешь. И выдрочив весь стандарт тоже не сможешь. И обосновать, почему надо именно так не сможешь. Суть в этом. Есть много областей, где знания только языка недостаточно.
>>1241745
Ну вот и ответил. А то ну не знаю, ну прост, шоб было))) тогда да, плюсы и архитектура ос. Может быть ещё сети
Аноним 06/08/18 Пнд 01:53:38  1241749
>>1241748
Osi знаю, как же блядь заебало писать на парах про эту хуету, если надо будет всегда конспекты открыты.
Да и зачем мне все это знать на старте, все приходит с опытом, кругозор увеличивается И так далее итп
Аноним 06/08/18 Пнд 01:57:40  1241751
>>1241749
Ну напишешь ты на листочки с прикладного по физический. И после этого электрические сигналы магическим образом превратятся в картинку? Разве что большого протонного хуя. Тут не опыт, а цос, тэс, ти и тервер сразу нужны, а не постепенно.
Аноним 06/08/18 Пнд 01:58:42  1241752
>>1241751
>На листочке уровни с прикладного по физический
Аноним 06/08/18 Пнд 01:59:35  1241753
>>1241751
Я так то учился на компьютерных системах и комплексах, есть понимание как чаго почему. Диплом сдал на 5, на защите хуярили прямо
Электротехника аппает невероятно в этом
Аноним 06/08/18 Пнд 02:01:51  1241755
>>1241753
Ну тогда понимаешь, что это с кодом никак не связано. И таких областей достаточно
Аноним 06/08/18 Пнд 02:05:11  1241756
>>1241755
Да, но для себя я выбираю именно то, что можно делать программно. Хватит с меня всей поеботы, хватило за 4 года, хоть и было интересно
Аноним 06/08/18 Пнд 03:47:59  1241766
>>1241730
Да все в рот ебали тебя и твои теории автоматов.
Нормальные парни пишут на React и Node, попивают крафтовое пивко в барах, и носят андеркаты, добираясь на работу на гироскутере, пока такие чмошники, как ты стоят в сторонке и молча завидуют.
Аноним 06/08/18 Пнд 06:49:46  1241776
Допустим, у меня есть некая последовательность функций, которые нужно вызвать, но при этом как только любая из них вернёт false, дальше идти не надо.
Есть ли какой-то красивый способ такое организовать, кроме оборачивания каждого вызова в if(!funcN()){return;} ?
Аноним 06/08/18 Пнд 13:06:31  1241864
>>1241776
func1() && func2() && ... && funcN();
Если хочется, можно еще показать, что возвращаемое значение не нужно.
(void)( func1() && ... );
Аноним 06/08/18 Пнд 16:43:54  1241959
>>1241776
тебе нужны rangesv3
Аноним 06/08/18 Пнд 17:02:29  1241970
[code]
Бля почему С++ такой ущербный язык, что Foo f(&i) вызывает конструктор по ссылке из-за того, что он не может неявно скастовать int в const int
[/code]

https://ideone.com/L1rcW8
Аноним 06/08/18 Пнд 17:35:25  1242000
>>1241970
Што?
Аноним 06/08/18 Пнд 17:39:18  1242011
>>1242000
Я говорю почему С++ такой ущербный язык, что Foo f(&i) вызывает конструктор по ссылке из-за того, что он не может неявно скастовать указатель на int в константный указатель на int.

Алсо, по ссылке код уже пофикшеный, но стоит только убрать enable_if и все пойдет по пизде.
Аноним 06/08/18 Пнд 17:51:02  1242034
>>1242011
>он не может неявно скастовать указатель на int в константный указатель на int.
Он всё может. Просто байнд к ссылке лучше, чем qualification conversion
Аноним 06/08/18 Пнд 17:56:38  1242040
>>1242034
О том и речь. Приходится ебошить костыли и ублажать компилятор, чтоб он смог выбрать правильную перегрузку.
Аноним 06/08/18 Пнд 18:02:47  1242048
>>1242040
И чем она правильнее? Передача массивов с enable_if хреновее, например.
Аноним 06/08/18 Пнд 18:07:55  1242055
>>1242048
>Передача массивов с enable_if хреновее, например.
Обоснуй
Аноним 06/08/18 Пнд 18:14:10  1242061
>>1242055
Обосновал тебе за щёку.
Аноним 06/08/18 Пнд 18:18:30  1242067
>>1242061
>Манятеоретик слился
Ясно
Аноним 06/08/18 Пнд 18:21:04  1242069
>>1242067
Слился горячей струёй тебе за щёку.
Аноним 06/08/18 Пнд 18:35:30  1242086
>>1242069
Ты из вкатавальщиков-тред протек? Вот и пиздуй туда.
Аноним 06/08/18 Пнд 18:37:15  1242087
>>1242086
Судя по твоим нулевым знаниям overload resolution ты протёк из ньюфаг-треда.
Аноним 06/08/18 Пнд 18:47:58  1242099
>>1242087
Я из гугла тоже могу копипастить в тред типа ебать я эксперт. Ведь ты именно так и сделал, загуглил вопрос и пришел сюда кукарекнул с ебать видом эксперта, а потом, когда я попросил тебя обосновать конкретную вещь, ты тут же слился, ибо сам нихуя в этом не понимаешь.

/обоссан
Аноним 07/08/18 Втр 05:06:04  1242355
>>1241499
static constexpr inline noexcept
Но Холмс, зачем?
Это должно быть на рефлексе как правило хорошего тона или тут есть какой-то смысл именно для этой задачи?
Аноним 07/08/18 Втр 06:14:21  1242362
Такая байда хоть где-то применяется?
https://www.justsoftwaresolutions.co.uk/cplusplus/shared-ptr-secret-constructor.html
Аноним 07/08/18 Втр 11:51:58  1242439
Стандарт языка С++ содержит сколько страниц? Я за все время учебы в институте столько страниц не выучил.

Язык должен быть интуитивно понятен. Вы берете молоток и сразу видите, куда и как бить — вам не надо читать 300-страничную инструкцию к нему.

В общем мир окончательно рпзделился на тех, кто успел выучить C++, пока он был относительно простым и тех, кто не выучит его никогда!
Аноним 07/08/18 Втр 17:09:12  1242558
>>1242439
Стандарт не надо читать. Достаточно знать некий сабсет и бест практисы
Аноним 07/08/18 Втр 21:36:23  1242706
monkey.png (153Кб, 600x303)
>>1242558
>Стандарт не надо читать. Достаточно знать некий сабсет и бест практисы
Аноним 07/08/18 Втр 22:10:45  1242722
>>1242706
Сам то читал его, постер картиночек?
Может ты даже знаешь, что на самом isocpp написано, что стандарт не является средством для изучения языка и тд?
Аноним 07/08/18 Втр 22:24:46  1242726
>>1242722
Читал.
Аноним 07/08/18 Втр 22:53:04  1242735
>>1241136
Спасибо за подсказку! Анон, надеюсь ты еще здесь...

В безликий перевожу, потому что каждая ячейка mem-space`а имеет поле mapped[addr], где addr - адрес ячейки в этой области памяти, в это поле, собственно, и пишется указатель на то что замаплено, а там может и быть и ПОРТ, и РЕГИСТР, и ШИНА и даже ROM. И они реализованы в будущем будут по разному. Еще это нужно будет мне чтобы отрисовывать дерево маппингов.

Когда я создаю регистр, он наследует свойства (или как правильно) класса Device, в котором есть все что касается всех устройтв без исключения (hard_reset, value, и т.д.). Так же конструктор ставит в специальное поле Device->type флаг, кторый и обозначает тип этого устройства (defines ниже).

Далее когда происходит read\write из ячейки mem-space`а, программа смотрит, что замаплено? Сначала смотрит dev_m->get_type(), и если это порт то приводит указатель к классу Port и вызвает Port::read(), если там регистр то Register::read() и т.д.

В общем, подумал, подумал я и сделал все вот так, в map передается класс Deivce:


#define DEV_REGISTER 1
#define DEV_MEMSPACE 2
#define DEV_PORT 3
#define DEV_BUS 4

class Device
{
protected:
....
int type = 0;

public:
.....
int get_type() {
return type;
}
;

};



void Memory::map(int addr, Device ✼dev_m) {
int64_t tempAddr = (int64_t)(int✼)dev_m;

switch (dev_m->get_type()) {
case DEV_REGISTER: {
printf("Mapping Register to %d\r\n", dev_m->address);
Register✼ obj = reinterpret_cast<Register✼>(tempAddr);
break;
}
case DEV_PORT: {
printf("Mapping Port to %d\r\n", dev_m->address);
Port✼ obj = reinterpret_cast<Port✼>(tempAddr);
break;
}
.......
}
obj->map(addr);
space[addr] = tempAddr;
mapped[addr] = 1;
}


Работает так:

Register R0(8, RW);
Port Port0();
Memory memspace(0x00, 0x60);
memspace.map(0x53, &R0);
memspace.map(0x55, &P0);


Теперь вот 2 вопроса:
1. Не сильно ли я зарылся в абстракции?
2. Вот этот switch выше так же будет и в read, write, map, unmap. Можно ли как-то его в функцию засунуть? Я думал, думал, но пока не пойму что она должна возвращать? А то везде switch, получается написан... И много выходит повторяющегося кода.
Аноним 07/08/18 Втр 23:20:13  1242745
image.png (1412Кб, 1280x720)
>>1230522 (OP)
Сап /pr/, вкатывальщик 16 лвла ищет книгу чтоб не было много ебли с основами программирования
Я знаю си и питон, шарю в байты хуяйты и тд, какую книгу мне читать ?
Пикрандом
Аноним 07/08/18 Втр 23:50:58  1242752
>>1242745
Ты куда вкатываться то собрался? Чтение ради чтения пустая трата времени.
Аноним 07/08/18 Втр 23:56:03  1242754
>>1242752
В С++
Хачю работать штобы 20к грывень в месяц
Хочу разобраться как работает язык, стандартные библиотеки и какойта фреймворк чтоб на хлеб с маслом хватало Я просто люблю программирование
Аноним 08/08/18 Срд 00:18:39  1242764
>>1242754
> Хочу разобраться как работает язык
Страуструп в треде, все в std
Аноним 08/08/18 Срд 00:29:49  1242767
>>1242745
Вы блять вообще шапку читаете в треде?
Там блять целая простыня с книгами и подробно разжованно с чего начинать и куда двигаться
Аноним 08/08/18 Срд 00:44:16  1242771
>>1242754
>Я просто люблю программирование
Больше похоже, что ты читать любишь. Ну тип нормальная мотивация - я хочу делать то-то и то-то (и для этого мне нужен c++), а не наоборот.
Аноним 08/08/18 Срд 03:21:35  1242796
>>1242771
Я хочу программировать шоб в кайф было, и для этого мне нужен коммон лисп, но я его не осилил из-за отсутствия опыта. Решил выучить C++ для поднятия скилла в программировании. Потом уже начну учить лиспы
Вот написал такой и понял что я долбоеб и не могу сформулировать свою мысль нормально. Ну ладно
Аноним 08/08/18 Срд 05:13:33  1242809
>>1242735
Тебе может на полиморфизм глянуть? Виртуальные функции там и всё такое. Если твои регистры и прочие наследуют от Device'а, в интерфейсе которого есть нужные тебе read, write и т.д., то и не нужны никакие касты. Храни массив указателей на Device (записывая туда адреса объектов твоих сабклассов), а потом просто вызывай space[addr]->read(), который вызовет нужный метод у настоящего объекта.

Иначе у тебя фигня какая-то получается, если всюду придётся городить свитчи с непересекающимся кодом.
qt Аноним 08/08/18 Срд 12:19:27  1242905
Как вкатиться в qt?
Реквестирую книги/курсы\ролики на ютубе.
Аноним 08/08/18 Срд 12:29:03  1242916
>>1242905
Макс Шлее
Аноним 08/08/18 Срд 16:09:39  1243090
Вечер в хату. Интересует один тонкий момент.

1. Имеется абстрактный класс с чисто виртуальной функцией.
class examp;

У него есть protected-поле:
T t;
В конструкторе работает код типа
t = set_t(const T& _t);
где
T examp::set_t(const T& t)
{
t = _t;
return t;
};
Однако, когда в конструкторе вызываешь функцию типа такой:
void examp::set_t(const T& _t)
{
t = _t;
};
поле t никак не инициализируется, чому так?







Аноним 08/08/18 Срд 19:21:47  1243168
Перекот пилите уже, тред утоп.
Аноним 08/08/18 Срд 19:24:30  1243170
>>1243090
1. При чем тут чисто виртуальная функция?
2. Имена переменных просто заебись нет
2. t = set_t(const T& _t); - что это за хуета?
3. T examp::set_t(const T& t)
{
t = _t; <----- константной переменной присваиваешь значение, как так-то?
return t;
};
Короче, я нихуя не понял.
Аноним 08/08/18 Срд 19:25:47  1243172
>>1242809
Спасибо, анон! Почитаю про полиморфизм
Аноним 08/08/18 Срд 19:42:40  1243178
>>1242362
Да.
Аноним 08/08/18 Срд 19:52:02  1243182
>>1243090
Это особый тип извращенства, что ли, использовать сеттер внутри самого класса?

Покажи целиком код, где что-то не работает, желательно на repl'е или ideone'е.
Аноним 08/08/18 Срд 20:04:29  1243189
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
>>1243187 (OP)
Аноним 09/08/18 Чтв 00:09:20  1243320
>>1242355
именно для этой не нужен, за статик сорри, копировал из своего говнокода, там это был публичный метод класса.constexpr сам знаешь зачем. inline - потому что раньше пихал его везде и страдал синдромом forceinline'а, просто осталось. noexcept вроде как ускоряет время компиляции (хотя я понимаю, что это ничтожнофункция никакого прироста не даст)
Аноним 09/08/18 Чтв 03:16:19  1243356
>>1243320
Тогда, если подправить еще пару мелочей, должно быть так?

constexpr bool IsPowerOf2(const int32_t Value) noexcept { return !(Value & (Value - 1)); }

noexcept, ЕМНИП касается гарантий и, пиша это слово, ты ручаешься, что не бросит ни при каких обстоятельствах. И это то, что раньше было throw(), т. е. nothrow гарантия. Я так понял, что из всех вариантов throw() только она и осталась, а остальные из языка поубирали без вариантов на замену.

constexpr до конца не понимаю, зачем. Ну напишу его, и что дальше? Илья Муромец вырасти должен?
Аноним 09/08/18 Чтв 12:03:03  1243445
Поясните за std::move, пожалуйста. Имеет ли смысл его использовать, если у меня ~100кб данных раскидано на кучу небольших векторов (~300)?
Сначала получается вектор даблов, потом его надо переделать в инты и записать в атрибут класса (который имеет лишь конст гетер, так что не могу напрямую в него из трансформа писать). Хочется точно не копировать данные без необходимости лишний раз.

Попробовал как-то так, но почему-то с мувом даже медленнее выходит — https://repl.it/repls/FullMildMiddleware с мувом в push_back'е, подозреваю, тоже не всё правильно.

Хотя вот тут, где практически то же самое и написано, вроде бы, мув в разы быстрее — https://repl.it/repls/ItchyCornsilkError

Где я обосрался?
Аноним 09/08/18 Чтв 13:23:54  1243478
>>1243445
В тестах ты не инициализируешь start
Аноним 09/08/18 Чтв 16:30:29  1243621
>>1243478
Блин, точно, хреново скопировал. Спасибо.
Аноним 09/08/18 Чтв 17:48:28  1243664
>>1243356
написав constexpr, при известных на этапе компиляции значениях, функция выполнится на этапе компиляции

т.е. написав где-то (к примеру) if(IsPowerOf2(5)), компилятор выполнит функцию и на выходе будет if(false). Как-то так
Аноним 09/08/18 Чтв 18:35:00  1243702
>>1243356
Я сам себе отвечу шикарным примером. Вдруг и другим пригодится:

template<int... vals>
constexpr int sum() { return (vals + ...); }

Как есть сейчас, можно использовать для, например, int array_of_size[sum<1,-2,3>()]; // и всё компилируется
Стоит убрать constexpr, пойдут ошибки компиляции.
Хотя функция-то и так и так возвращает значение во время компиляции. Непонятно, зачем еще от пользователя какие-то словечки. Но факт остается фактом, так это работает.
Аноним 10/08/18 Птн 00:31:49  1243909
>>1233140
Sigmentation fault
Аноним 10/08/18 Птн 12:57:48  1244137
>>1233140
Значение оператора sizeof() для указателя на функцию? Как и для любого другого указателя.

Соответственно, его инкремент даст тебе на современных домашних машинах вторые 8 байт, считая от нулевого байта функции. Скорее всего они будут указывать в случайные код / данные функции, но если функция ну очень короткая то хызы, тогда они могут указывать бог знает куда.
Аноним 18/09/18 Втр 03:10:13  1265886
Сап, кочаны.

У меня охерительно важный реквест по std::move в лямбдах для асинков. Доставьте ту самую пикчу с фурриёбами.


Топ тредов
Избранное