Этого треда уже нет.
Это копия, сохраненная 16 сентября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
3 1230532
>>30522 (OP)
Обосрал весь перекат.
4 1230544
Ну как так можно было обосраться с названием?
5 1230607
>>30522 (OP)
Тут тред по C++ или нет?
6 1230643
У меня к вам очень простой вопрос.
Нахуя нужны поинтеры и референсы, если можно просто использовать pass by reference?

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

У переменной, на которую будет ссылаться левый поинтер или референс, уже есть адрес. Нахуя мне нужен ещё один референс, если переменная является референсом на себя же. И нахуя мне нужен поинтер?
7 1230644
>>30643
Пойнтер нужен для пойнтерной арифметики, например.
8 1230652
>>30644
Тогда ещё один вопрос, а почему на референсе нельзя?
Разницы ведь никакой.
9 1230655
>>30652
Потому что референс должен всегда указывать на валидный кусок данных, что противоречит идее выполнения адресной арифметики с ним. Даже в расте ссылки и указатели - разные типы. Просто указатели считаются небезопасными и их использование ограничено.
10 1230658
>>30643
поинтер - это объект, а ссылка - нет
открой липпмана или прату и прочтай внимательно про поинтеры и референсы
11 1230660
>>30655

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


Почему же противоречит? Скорее наоборот, поинтер может хранить совершенно нерелевантный адрес, что ставит под вопрос целесообразность арифметики над мусорными данными.
Если, конечно, я правильно представляю область примерения поинтерной арифметики. Которая для меня ограничивается, перебором массива данных.
>>30658

>объект


В каком смысле объект?
Насколько я понимаю, поинтер - это тупо 4не обязательнобайта, которые банально хранят адрес.
12 1230661
>>30660

> Почему же противоречит?


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

> Которая для меня ограничивается, перебором массива данных.


Для этого указатели (как и арифметика с ними) не нужны совсем. Лично я указательной арифметикой только в embedded пользуюсь и то очень редко.
13 1230662
>>30655

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


Адресная арифметика тоже определена только для валидных поинтеров (на элементы массива).
14 1230664
>>30661

>Потому что к указателю ты можешь прибавить произвольное число и получаешь абсолютно валидный указатель, который может указывать куда угодно (даже на несуществующий кусок памяти).


Написанное в стандарте тебя неприятно удивит.
15 1230665
>>30660

>В каком смысле объект?


>Насколько я понимаю, поинтер - это тупо 4 (не обязательно) байта, которые банально хранят адрес.



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

Что из себя представляет референс - решает компилятор и стандарт его в этом никак не ограничивает. Поэтому к нему нельзя применять арифметику. Также sizeof(T&) != sizeof(T*), потому что для ссылки отдельные правила.
16 1230666
>>30664
Чем удивит? Что разыменовыване подобного указателя это UB и компьютер может выебать мою мамку и это не будет противоречить стандарту?
17 1230668
>>30666

>Что разыменовыване подобного указателя это UB


Уже при арифметике может быть UB
18 1230669
>>30668
Только разве что переполнение.
19 1230670
>>30665

>Указатель всегда занимает какое-то место в памяти


Не обязательно.
20 1230672
>>30669
Нет, не только.
21 1230673
>>30672
Например?
22 1230674
>>30673
Например, открой уже стандарт. Ссылка во втором сообщении.
23 1230677
>>30674
Мне лень читать эту портянку и выискивать все неоднозначности в ней. Всё равно я указатели почти не использую. Если тебе лень или ты сам не в курсе, то ладно. Пусть это останется тайной.
24 1230681
>>30677

>Мне лень читать эту портянку


Ну тогда сиди тихо под шконкой, не вылазей со всяким

> референс должен всегда указывать на валидный кусок данных

25 1230682
>>30681
Ладно-ладно, хранитель бессмысленных знаний, успокойся. Ты победишь любого в "своей игре" если тема будет "UB в языка C++".
26 1230683
>>30682

>бессмысленных знаний


Пригорело и ушёл в обесценивание?
images[1]36 Кб, 517x648
27 1230685
Добрый вечер. Мимонуб в треде, прошу подсказать, куда мне идти.
Вопрос такой: предстоит что-то отвечать по теме Network Programming в C++. До этого читал Страуструпа, начал Коплиена и так, пару курсов прошел. Нигде о нетворке ни полслова. Что мне нужно будет знать и где это можно узнать?
Шапку смотрел, гугл гуглил, нашел только пикрелейтед. Что скажете, хорошая книга, может лучше с чего другого начать?
28 1230688
>>30683
А в чём ценность этих знаний? У тебя хоть зарплата выше средней?

Ты не пойми меня неправильно, на самом деле у меня действительно баттхёрт из-за того что я не знаю все обстоятельство при которых код на C++ выдаст мне UB. Это так ужасно. На самом деле ведь тебе меня жаль и поэтому ты пытаешься пополнить меня этим знанием, чтобы сделать меня сильнее. Ты как сенсей в этих старых фильмах про боевые искусства.
29 1230689
>>30655

>Потому что референс должен всегда указывать на валидный кусок данных


Та не, можно висячую ссылку создать и по ней зайти в невалидный кусок данных.
int& f() { int i = 12; return i; }
int& ref = f();
ref += 1;
30 1230692
>>30688

>А в чём ценность этих знаний? У тебя хоть зарплата выше средней?


>


Он C++ в каком-нибудь вузике преподаёт или в школе учителем информатики трудится. Зарплаты у них сам знаешь... Вот и бесится.
31 1230695
>>30688
Да, отрицание — это распространённая психзащита в наше время.

> У тебя хоть зарплата выше средней?


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

>>30692

>Он C++ в каком-нибудь вузике преподаёт или в школе учителем информатики трудится.


Семён не заметен)
Как раз в вузиках преподают, что к указателям можно прибавлять произвольное число и при этом значение указателя увеличится на sizeof указуемого типа умножить на прибавляемое число (или что-то в этом духе).
32 1230696
>>30670
Если речь не идёт об оптимизации, то о таких глубинах глубин мне не ведомо.
33 1230699
>>30695

> Да, отрицание — это распространённая психзащита в наше время.


Прежде чем использовать слова неплохо бы узнать их значение. Или это такая самоирония и ты сделал вид, что отрицаешь мою исповедь о том, что я действительно не знаю всех случаев когда C++ выдаст ub?

> Семён не заметен


А вот это уже паранойя. Осторожно, а то дальше будешь вместо собеседников видеть одних врагов.
34 1230735
>>30695

>к указателям можно прибавлять произвольное число и при этом значение указателя увеличится на sizeof указуемого типа умножить на прибавляемое число (или что-то в этом духе)


А можно для дремучих, что здесь не так?
35 1230738
>>30735
Тебе не понять всю глубину C++ если попытаться объяснить это кратко и простыми словами. Иди читай стандарт от корки до корки и пока не прочтёшь не возвращайся.
36 1230740
>>30738
Не, не хочу стандарт от корки до корки. Скажи, что по сетевому-то читать.
37 1230741
>>30740 >>30738
Вот не готов еще читать стандарт, понимаешь? Видимо, это какой-то высший уровень, когда все книги пройдены и ты уже language lawyer, Я еще далеко до этого. Мне нужно что-то типа брошюры Network Programming in C++ for dummies, можешь мне что-то такое порекомендовать?
Fortranbookcover.jpg51 Кб, 200x282
38 1230742
>>30738
Если б он с картинками был или сюжет интересный - я б полистал.
39 1230743
>>30741
А зачем тебе именно по плюсам книжка? С теорией и примерами на С должно быть много хороших книг. Спроси у красноглазиков.
40 1230745
>>30743
В плюсах же есть какие-то исключительно плюсовые инструменты для этого всего?
41 1230746
>>30745
Да вроде всё то же самое. В с++11 потоки добавили, а про сети пока что только разговоры идут - мол вроде и надо, но как-то не до этого.
Сам я не в теме, но вроде на голых плюсах только мазохисты пишут, а остальные используют сторонние либы типа boost.asio.
42 1230747
Можно сказать, что наследование — это в каком-то смысле агрегация?
Ну по сути-то класс наследник агрегирует в себе экземляр суперкласса. Конструктор и деструктор суперкласса вызываются и отрабатывают между началом и концом работы конструкторов и деструкторов производного. Всё так?
43 1230751
Аноны, можете какие библы посоветовать для работы с изображениями? А если точнее, хочу захватить часть изображения указав фрагмент, и отправить его в отдельную переменную.
44 1230761
>>30747
Это как-то притянуто за уши.

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

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

И, обычно, при рассуждениях на тему ООП агрегация или композиция (+ делегирование, если нужно) рассматривается как альтернатива наследованию.
45 1230762
>>30747
По сути - да. Но в НАСЛЕДОВАНИИ ты забираешь интерфейсы, а в агрегации ты пишешь свой собственный
46 1230763
>>30762
Ну если скажу, что наследование частный случай агрегации и сделаю эти пару оговорок, плюс там про полиморфизм, то за это не отмудохают?
47 1230764
>>30747
Ну тут такое.
Если у тебя базовый класс имеет хотя бы один виртуальный метод, то у него не может быть экземпляра. Если он читсто виртуальный, то у него нет ни данных ни реализации методов и его наследование не может быть агрегированием.
48 1230765
>>30751
libpng, libjpeg - для хождения по внутренностям файлов. CImage маленькая, но предоставляет более высокоуровневое api.
49 1230766
>>30764
Спасибо. Я как раз об этом не подумал. Короче, очень уж условное наблюдение, не ахти.
50 1230767
>>30766
Попробуй посмотреть с другой стороны.

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

Во всех этих случаях речь идёт о повторном использовании кода, но, технически это делается по-разному, и терминология это отражает.
51 1230770
>>1230750
OpenCV.
52 1230773
>>30767
Ну да, только он же может агрегированное добро скрыть за интерфейсом. Хотя может и унаследованный метод перекрыть куда-то в защищенные уровни — и прощай типовый полиморфизм, хотя наследование, да, на месте кагбэ.

Блжад, почему же сложно всё так!
А бывает какая-то условно библия ООП, где это с самых базовых аксиом разжевывается? Что-то похожее мне попадалось в первых главах OOD&A, но там потом стремительно унеслось в дебри. А так чтобы подробная экскурсия по азам, чтобы «детки, вот так наследование не делайте, пнятненько» такое бывает вообще?
53 1230775
>>30773
Конечно существует. Называется практика. Пара написанных программ под 3 к строк и вопросы про ООП исчезнут. Будешь так сказать на кончиках мыслей чувствовать какой подход правильный в ситуации.
54 1230776
>>30765
спс, то что надо.
55 1230777
>>30751
Есть вообще простой вариант: открываешь потоком файл, считываешь заголовок файла, потом заголовок пикчи, а потом в двумерный массив (вектор векторов) читаешь данные пикчи.
И работай, копируй нужный тебе кусок пикчи.
Косяк в том, что .bmp, например, хранится напрямую, а тот же .jpeg - уже не очень, то есть нужно либо курить организацию нужного формата, либо перегонять все в бмп.
56 1230778
>>30763
отмудохают, потому что они рассматриваются как альтернатива друг другу.

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

Также при наследовании тип объекта определяет его поведение. При агрегировании - нет. Например есть класс A и его наследники B, C. Если мы создаём наследника D от B, то он всегда будет вести себя как B. Если же D агрегат с конструктором D(A*), то он может вести себя как любой наследник A.
57 1230856
>>30740

> Скажи, что по сетевому-то читать.


В стандартной библиотеке C++ сетей как бы пока нет (обещают сделать к 2023 году). Так что читать надо будет литературу по конкретным библиотекам, например Boost.Asio.
58 1230884
>>30747

>Можно сказать, что наследование — это в каком-то смысле агрегация?


Не публичное — да.

>>30761

>Никакой отдельный экземпляр суперкласса не создаётся


Если при аггрегации у меня будет data member "по значению", то отдельный экземпляр тоже не будет создаваться, а будет subobject-ом.
59 1231096
Можно каким-нибудь образом установить GCC на винду без еботни с десятком библиотек и сотней шагов? MinGW-W64 стоит.
60 1231141
61 1231146
Аноны, выручайте. В проекте юзается статически сбилженая Qt, однако встала необходимость заюзать QWebEngineView из QtWebEngine модуля, для которого статическая сборка не поддерживается.
Можно ли как-то заюзать только dll-ки QtWebEngine-а так, чтобы не тянуть либы других модулей типа qtcore, qtnetwork и тд? они же блять статически сбилженые

Или может кто знает либы для отображения веб контента? Например, так как QtWebEngine основан на хромиуме, можно сделать свой виджет используя Chromium Embedded Framework (CEF). Но помимо овер 20Гб сурсов (это с самим хромиумом), его хуй скомпилишь. Плюс какое-то уебанское API или это я лох
62 1231154
>>31096
Зачем, когда есть студия?
А вообще - пак от дяди Стефана с nuwen.net
63 1231169
>>31096

>без еботни с десятком библиотек и сотней шагов?


https://www.msys2.org/
64 1231175
Интересно, кто-нибудь здесь работает на плюсах? Сам имею желание вкатиться в computer vision, а там в основном кресты да питоны. Или это только для сверхлюдей, кресты обычный человек осилить не может?
65 1231221
>>31175
Если потянешь матан, связанный с computer vision, то с крестами проблен не возникнет в принципе.
66 1231227
>>31175
То, что кресты пиздец сложные - это миф. Они безусловно сложнее, чем динамикопараша, но божественное окружение (ты же не дебил копаться каким-нить code::blocks) и компилятор сильно облегчают задачу.

Для типичного вкатывальщика с сосача даже граблями огород прорыхлить неподьемная задача, т.к. он ленивый и тупой. Вот и пишут, что СЛОЖНА.
67 1231333
>>31096
Я сегодня установил. Всё сделал по этой инструкции: https://www.youtube.com/watch?v=8Ib7nwc33uA
Заработало как часы. Зависимости никакой, брат жив.
68 1231361
>>31096

>GCC


>на винду


Ну ёбанарот! У тебя на ПеКа не найдётся 20Гб на няшного пингвина? Покопаешься в консольке, поебёшся с Make'ом, поймёшь как эти самые программы собираются. А IDE это всё от лукавого, они скрывают от тебя процесс рождения программы. Поставь себе какойнибудь ебучий калькулятор. В лине можно преспокойнейше без всяких там ide кодить, среда оче дружественная для погромистов. Только читни для начала справочник по башу и какие виды пакетных манагеров бывают.
69 1231392
>>31361
Пошел нахуй, красноглазый даун
70 1231419
>>31361
У нас в компании есть выделенный человек, который целыми днями занимается обслуживанием нашей билд системы - тонны CMake файлов и всяких скриптов.

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

Пробовал через system менять директорию, через chdir, но ничего не срабатывало.
Почему так может быть?
72 1231616
>>31392

>Посылает нахуй пользователей единственной адекватной ОС


>Сидит в треде языка, чей предок ( Си) был создан, как раз для создания прародителя этой ОС ( Unix ).


Боже какая же ты мудаебина.
Вангую, ты ебаное днище максимум способное осилить формошлепство на JS.
73 1231621
>>31611
Вот точно причину не назову, но есть предположение, что слэши неправильные - когда парсишь текст, используй класс path из <filesystem> - он сам делает нужные слэши, а потом уже делай system("cd "s.append(объект класса path.string())) - должно будет сработать
74 1231652
>>31621

> <filesystem>


Почему-то гцц 8.1.0 отказался даже собрать программу с просто подключенным заголовком.

> но есть предположение, что слэши неправильные


Даже просто код system( "cd c:\\" ) тоже не срабатывает.
Ладно, с++ идёт нахуй.
Буду пробовать другими средствами.
75 1231659
>>31616
Совсем не в ту сторону вангуешь, пердолик. И свой кусок говна для маргиналов с собой забери.
76 1231689
Моча вообще тут?
Выгоните этого >>31659 спермоглота уже из нашего треда.
77 1231728
>>30522 (OP)
Посоветуйте актуальный (C++11) справочник (не онлайн) по STL.
78 1231744
>>31361
Стоит gcc на шинде и на пингвине, проблем нет.
Алсо, на няшного пингвина и 10 хватит
Снимок.PNG23 Кб, 1054x392
79 1231748
Почему vs показывает мой массив как функцию, а не как переменную? Можно это как-то пофиксить?
80 1231772
>>31652
Он в семнадцатом стандарте только есть такой. В одиннадцатом тоже есть, но там ебля с ним откровенная

А если вручную передавать в качестве пути, тоже не работает? В другую сторону слэш пробовал?
81 1231775
>>31652
>>31772
Проебался, понял, вручную не катит.
Странно, что не съедает команды
82 1231777
>>31772

> Он в семнадцатом стандарте только есть такой


Я в курсе.
Но я как-то раз ставил гцц 7 версии и там пример какой-то работал правда std::experimental::filesystem.

> А если вручную передавать в качестве пути, тоже не работает? В другую сторону слэш пробовал?


Уже по всякому пробовал. Вообще никак.
Попробовал даже вот так myprog тут просто вывод пути к директории | xargs cd
Но тоже не сработало.
83 1231810
>>31728
цепепереференс можно официально выкачать архивом https://en.cppreference.com/w/Cppreference:Archives
84 1231812
>>31652

>Даже просто код system( "cd c:\\" ) тоже не срабатывает.


В каком смысле "не срабатывает"? `system` порождает шелл и выполняет в нём команду.
На твоей программа изменение директории в другом процессе, естественно, никак не сказывается.
85 1231813
>>31812
Ну а почему же тогда срабатывает пресловутый system( "pause" )?
86 1231814
>>31813
Потому что system ждёт завершения порождённого им подпроцесса, а подпроцесс при pause не завершается.
Как можно не понимать таких банальных вещей?
87 1231818
>>31814

> Как можно не понимать таких банальных вещей?


Для этого есть ты, для этого есть Интернет чтобы напомнить.
88 1231846
>>31419

>боль и унижение.


Ну так это же С++ трэд, почему бы и нет?
89 1231962
>>31748
бамп вопросу
90 1231983
Был щас на собесе в одну серьезную международную компанию.
Ответил на все вопросы и решил все задачи на 2-х часовом интервью.

Задавайте свои ответы.
91 1231989
>>31983
Что за позиция, что спрашивали
92 1231991
>>31227
c++ пиздос сложный когда работу на нем надо искать тысяч на 100, когда в нии прогать или для себя можно за пару недель освоить.
93 1232001
>>31989
Позиция вроде на мидла или на сеньора я даже не посмотрел если честно.
Спрашивали много чего, начиная от типовых вопросов по С++, контейнеров, алгоритмов, многопоточности, и т.п. заканчивая задачками на алгоритмы и абстрактное мышление.
Самое забавное, что я нихуя не готовился даже, т.к. приехала тян и мы ебались 3 дня подряд.
94 1232005
>>32001
Расскажи про задачи.
Что там было?
95 1232036
>>32005
Я боюсь, что они тоже могут тут сидеть и спалят меня, если я расскажу задачи.
Ну задачки такие как бы, про байтоебство, про алгоритмы, про сложности алгоритмов, про структуры данных, типа как что и где использовать, давали задачи, которые надо было решить с их помощью. Давали задачи на оптимизацию алгоритмов. Благо я задрот в этой теме и в байтоебстве тоже, не зря байтоебил на си долгое время и ковырял разные алгоритмы.
По плюсам я не так хорош, но походив на пару собесов я выучил всякие каверзные вопросы.
Ну мне повезло на вопросы на самом деле, я хз, но я откуда-то реально в этих вопросах и задачах хорошо шарил.
96 1232054
>>32036
Помнится как-то устроился в крупную международную компанию на мидла. Прошёл перед этим 4 этапа собеса, растянувшегося где-то на неделю. А в итоге работа оказалась таким говнищщем, что я там и года не проработал. Так что сильно не обольщайся.
97 1232078
>>32036

>Я боюсь, что они тоже могут тут сидеть и спалят меня, если я расскажу задачи.


NDA подписывал?
98 1232084
>>32078
Та не, там первую форму допуска оформляют.
99 1232135
Пацы, хочу начать изучать C++, может кто-то из вас сможет меня напрпвить по верному пути, с чего начинать, а что возможно и не стоит. Это такая интересная тема, и я очень хочу начать изучать ее, но к примеру на курсы идти, я хз.
100 1232137
Я бы в принципе и бабки заплатить не против, если здесь был кто-то, кто мог обучить меня, или это я уже загнул?
101 1232138
>>32135
Лучше зайди в жс или пхп тред, может ну их нахуй эти кресты?
102 1232140
>>32135
Стивен прата лекции и упражнения
В шапке висит
103 1232144
>>32138
Чому нахуй?
104 1232254
>>32144
Потому что выучил пыху и жс, и сразу можешь что-то делать. А плюсы без предметной области нинужны. Ну сам подумай - сайт ты не сделаешь, парсер не сделаешь, брутфорс не сделаешь.
105 1232255
>>32254
ИИ сделаю.
Еще вопросы?
Snap 2018-07-21 at 17.41.32.png101 Кб, 949x328
106 1232370
>>30522 (OP)
объясните мне пожалуйста, почему sizeof(Holder) равен 1 байту, а sizeof(DerivedHolder) равен 2 байтам, ведь оба этих класса содержат внутри только один класс?
107 1232398
>>32370
бля это откуда такое говно? Почему вообще размер класса без методов равен 1? Так указатель на него хранится?
image.png3 Кб, 306x150
108 1232399
>>32370
Потому что в крестах наследование (не виртуальное) работает как композиция структур.
Сначала идут данные базовых классов, потом данные наследника.

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

На твоем пике в DerivedHolder один байт занимает пустой базовый класс и один байт поле е.
DoubleDerived занимает один байт, т.к. два пустых базовых класса объединяются, как там и написано.
109 1232400
>>32399
слышь, братка, объясни, почему пустой класс занимает один байт?
110 1232404
>>32036
не ссы, братюнь, давай сразу, сколько примерно з.п. о чем спрашивали, ведь один хуй если знаний в голове не было то и не прибавится хоть здесь все ответы прочитал, какие алгоритмы задрачивал, слушай, скинь мне задачки на ax!!gnomad1488ANUSgmailZ<:PUNCTUMco(2!m, а я тебе свои скину, был на двух собесах, вот охуенно будет, пообщаемся за си++
image.png1 Кб, 167x106
111 1232408
>>32399
При этом забавно выглядит каст указателей. Чтобы привести указатель на С к указателю на В его нужно сместить. Все это компилятор делает сам, так что можно не заебываться на этот счет.
С^ с = ...;
A^ a = static_cast<A^>(c);
B^ b = static_cast<B^>(c);
// (int)a != (int)b;

С виртуальным наследованием, конечно, компилятору приходится еще больше дрочить вприсядку, потому что появляются таблицы виртуальных методов, а также смещения указателей иногда неизвестны статически.
112 1232410
>>32400
>>32370

>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



Хуле тут непонятного
113 1232418
>>32410
т.е. это все для того что если мы создадим указатель на пустой класс, он должен указывать на что-то в памяти, а не хуй знает куда? Четкая книжка или откуда эти сакральные знания?
114 1232439
>>32400
Типы с нулевым размером вроде как обещали к C++20 сделать.
115 1232451
>>32418
скрин из вот этой книги
https://books.goalkicker.com/CPlusPlusBook/
116 1232453
>>32418
Чтобы разные объекты имели разные адреса в памяти. Размер же равен 1 байту, потому что байт это минимальный независимо адресуемый набор данных (для большинства систем).

Вроде в стандарте так написано. Хотя я уже точно не помню.
117 1232456
Анонусы, кто-нибудь сдавал BrainBench на си++, есть у кого-нибудь примерные вопросы, слышал, что когда в касперского устраиваешься их на собесе дают.
118 1232491
>>32398
G C C
C
C
119 1232499
>>32137
Смотря сколько ты готов заплатить.

Мимо-сениор-из-топовой-конторы
120 1232512
>>32499
могу орально тебя ублажить если поможешь вкатиться кун-пассив
121 1232535
>>32512
я сам себя могу так ублажить, не канает
122 1232549
>>32398
Несмотря на то что класс пустой, ты все еще можешь создать его объект. И у этого объекта обязан быть адрес в памяти и чтобы адрес оставался валидным хоть какое-то место в памяти этот объект занимать должен.
123 1232578
>>32370

> объясните мне пожалуйста, почему 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.
124 1232587
>>32578

>> 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.
125 1232625
>>32408
а что конкретно скрыто за "привести указатель" ?
вот есть указатель и есть его адрес
после
A a = static_cast(A)C
ведь адрес его не измениться, так?
Я так понимаю при вызове метода в метод передается адрес объекта(this) и соответственно доступ к данным организован через смещение от этого this. Как это в памяти выглядит?
126 1232864
>>32254

>сайт ты не сделаешь


-

>парсер не сделаешь


-

>брутфорс не сделаешь


- Причем на плюсиках ты можешь не только веб, но и железки брутфорсить, каково, а?

Ясно что плюсы не для этого и перечисленные тобой вещи на них не делают. Но это не значит будто сделать их нельзя. Просто учебного материала скажем будет мало, а на пыхе под аналогичные задачи очень много всяких туторов-гайдов.
127 1232969
>>32255

>ИИ сделаю.


>Еще вопросы?


Вопросов больше нет, так бы сразу и сказал что в AI хочешь. про питон не забудь
128 1233033
>>32969
Питон в контексте AI лишь костыль для тех, кто не может перемножить две матрицы на С.
129 1233039
>>33033
Вот этот вроде не совсем дебил.
130 1233051
>>33033
Ну и нахуй тебе перемножать матрицы на си? Причем матрицы на си ты можешь перемножить и в питоне. Си надо изучить, написать пару десятков лаба.с, запилить какой-нибудь метод Гаусса, сортировки, вектор и дерево. А дальше надо нормальный язык брать.
131 1233056
>>33051

>маняматика нинужна врети


Ясно.
Понятно.
132 1233059
>>33051

>Надо написать софт с жёсткими требованиями по производительности и ресурсам. Ок, возьму java/python/c#, потому что это нормальные языки для серьёзных задач.



Всегда с таких даунов проигрываю.
133 1233061
>>33059

>2к!8


>по производительности и ресурсам.


Просто купи нормальное железо.
134 1233064
>>33061
На определенном масштабе развертки софта выгоднее нанять целый отдел крестобогов и все переписать с джавапараши на кресты. Т.к. это будет меньше по затратам, чем затраты на железо.
135 1233070
>>33056
Блять, а кто тебе мешает выч. методы и алгоритмы на питоне писать? Для этого тебе си нужен?
Я всегда думал его в вузах учат на 1 курсе, чтобы объяснить, что такое ячейка памяти, указатель, стек, куча, зачем мусор собирать и прочее машинозависимое говнецо. Алгоритмы можно на чем угодно изучать.
136 1233071
>>33061

> 2!!8


> Сортировка пузырьком такая удобная. Просто купим железо помощнее.

137 1233073
>>33059
Это другой вопрос. Парень хочет в ИТ вкатиться через си.
138 1233076
>>33070

>Блять, а кто тебе мешает выч. методы и алгоритмы на питоне писать?


Святая толстота (или тупость?). Ну возьми ты тот же OpenCV и посмотри для чего там используется c++, java и python. Сразу поймёшь с каким языком место у параши, когда дело касается вычислений.
139 1233077
>>33059
Numpy написан на си, и с его помощью можно перемножать матрицы на си в питоне.
140 1233079
>>33061
Боже ебаный ты шизойд.
Я посмотрю на тебя макака тупая, как ты напишешь какую-нибудь real-time хуйню на своей ЖАВЕ или ПИТУХОНЕ, с недетерменированными задержками со всякими их GC и прочей хуитой.

Откуда же такие дауны берутся я хуею.
141 1233080
>>33056
Как связаны си и математика?
142 1233083
>>33079
Из питона и джавы можно вызвать программу на си. Например можно разделить проект на две части - та, которая не треубет производителности будет написана на джаве питоне, а производтиелньная на си крестах
143 1233085
>>33080
Ну если уж на то пошло, то тогда надо Fortran брать. Он как раз для математиков был спроектирован. Там, кстати, многое заточено под работу с матрицами и векторами.
144 1233086
>>33083
И нахуя этот гемор нужен? Джава - это язык для других задач.
Если ты какой-то неосилятор, то действительно можешь юзать NumPy и хуячить на питончике, те части, которые не требуют производительности. Так кстати и делают многие.
145 1233087
>>33076
Ну и что ты уже написал свою либу для выч методов, сука? Я еще раз говорю, для вката си не очень, если ты не из вуза начинаешь в работать.
146 1233091
>>33087
Да, я писал вычметоды на плюсах в коммерческом проекте. А что касается войтивойти, то тут уж кто на что способен и куда вкатывается. На чём ты будешь вкатываться в те же embedded systems?
147 1233093
>>33077
Странно, что не на питоне, да?
148 1233123
>>33061
Это прокатывает, пока на одной машине помещается. А они знаешь ли не резиновые.
Поставить несколько машин рядом? Ок, добро пожаловать в мир распределенных транзакций. Правда думаешь это легче, чем на C++ переписать?
Boost.png58 Кб, 1044x784
149 1233124
>>30856
Пробую поставить этот boost.
Вначале он доёбывал какими-то придирками к аргументу --prefix="C:/Program Files/boost/installed" (Я пробовал писать и с одинарными кавычками и с двойными и с обычным слешем и с обратным и с двойным обратным — результат один ошибка и несколько строк с моим путем, где каждый раз слеши в разную сторону) психанул и без аргументов вызвал этот бутстрап, а потом сразу ./b2 install

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

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

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

Что делать?
150 1233140
Аноны,
ko - указательна на функцию.
ko++ на какой адрес будет указывать?
151 1233141
Несколько лет назад я писал TCP/IP сервер на си, затем как-то проебал эту парашу сетевую, не крутился в этих областях, а теперь куда ни плюнь все на буст asio ебенят, а на сях ща вообще чего-нибудь пишут под сеть или это уже навроде ассемблера?
152 1233144
>>33140
Не скомпилируется.
153 1233150
>>33124
Дописать в свойствах проекта путь бустовским библиотекам. В C:/Program Files/boost/ уточни, где они конкретно лежат. Если буст собран динамически, то еще и в переменную PATH добавить путь к его dll (или ручками скопировать в папочку, куда итоговый исполняемый бинарник твоего проекта выкладывается).

А вообще почитать нужно, как приложение компилируется и линкуется. Именно как происходит запуск cl.exe и link.exe. И с какими параметрами. А то привыкнут в этой вашей винде мышкой тыкать, а как чуть что по другому, так в лужу садятся))
154 1233151
>>33141
Nginx
155 1233153
>>33150

> А то привыкнут в этой вашей винде мышкой тыкать, а как чуть что по другому, так в лужу садятся))


Если на винде, то можно всё это сделать (почти) двумя тычками мышки. Буст элементарно ставится через vcpkg и его можно поставить с глобальной видимостью, что значит все его хедеры автоматом станут доступны во всех проектах вижуал студии.
156 1233156
>>33150

> дед мой в гараже с шохой пердолился, батя пердолился и я тоже буду.

157 1233203
>>33093
Питон медленный для сверхбыстрого перемножения матриц
158 1233209
>>33203

>Питон медленный


Во всём.
159 1233231
>>33156
Ты о чем? Я разве предлагал ручками в консольке набирать команды по-пол экрана?
Иметь представление о том, что происходит под капотом один фиг нужно. Хотя бы потому, что мир на VS и Windows не заканчивается.
>>33153
Вариант. Еще и Nuget для этого есть.
Лично я использую Conan с автозапуском из CMake, ибо кросплатформеность нужна.
160 1233241
>>33150
Я очень проебываюсь по этой теме и вот сейчас хочу наверстать. Собственно, поэтому и буст через консольку запустил ставиться.

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

И почему он до сих пор мне показывает черный экран с надписями, он реально так долго ставится или пора отменять установку? (Он вообще на винду ставится или нет?)
161 1233245
>>33241
Заранее прошу прощения, если вопрос мой дурацкий. Читал FAQ и Tutorial заметки от буста и нихрена из них не понял. То, что он выдавал по запросу --показать-библы вообще не содержало пункта asio, да и на сайте там его в списке нет. Если есть какой-то нормальный материал с ответами на мои вопросы, ткните в него носом.
162 1233255
>>33124
V C P K G
C
P
K
G
163 1233285
>>33245
asio header-only библиотека, ее не нужно компилировать (а вот ее зависимости нужно).
https://www.boost.org/doc/libs/1_67_0/doc/html/boost_asio/using.html
Снимок экрана от 2018-07-23 00-01-02.png95 Кб, 1920x1080
164 1233289
>>33241

>Он вообще на винду ставится или нет?


Ставиться, ставиться. Разве что под WinXP не все части собираются.

>он реально так долго ставится


У него дофига заголовочных файлов. Если винт тормозной, то не удивительно.
165 1233316
>>33255
Спасибо, собралось 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 попробовал, заругало)
Что это он хочет?

>>33289
Таки-да, 10246 какой-то херни установило, когда Я Ctrl+C нажал, 102 не успело установить. Брюс Уиллис, ёба. Пофиг, удалил.
166 1233320
>>33316
Теперь тебе нужно разбираться с cmake хе-хе. Если ты работаешь в vs погугли как создавать cmake-проекты в вижуал студии.
167 1233321
>>33320
О, господи, нахера?
Я зазубрил 1.5 команды написания CMakefile как раз чтобы ни с чем не разбираться да, зря, видимо, получается, vcpkg мне что-то там на тему симейка предлагает только на случай, если мне захочется в симейке делать, на остальные случаи это не повлияет?

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

Если твой проект - студийный солюшен, то все автоматом подсосется. Ты же сделал vcpkg integrate, как на гитхабе написано, да?
169 1233332
>>33321

>А зачем мне вообще может понадобиться симейк в MVS?


Ну типа писать портируемый проект в mvs со всеми удобствами ide. Под невиндой ты его открываешь в каком-нибудь QtCreator и также уютненько продолжаешь писать.
170 1233336
>>33327
Конечно сделал, сейчас результаты такие же, как в самом начале: autocomplete видит boost/asio.hpp, но собираться проект с ним не хочет. Если поменять на какой-то boost/regex.hpp как в примере Getting Started, то всё нормально собирается. В чём дело?
Из командной строки тоже не видит, может чего дописать надо или еще доинсталлировать?
171 1233337
>>33336
Пересоздал новый проект, та же херня.
1> ... error MSB3030: не удалось скопировать файл ...\boost_system-vc141-mt-gd-x32-1_67.dll - файл не найден.
1>Сборка проекта "Boost — still does not work.vcxproj" завершена с ошибкой.
172 1233338
Я уже психанул и стал копировать вручную эту сраную дллку, нашел ее в папках VCPKG, скопировал, захожу туда, где MVS ее „не видит“ — и что же оказывается? Да она там есть и так.
boost_system-vc141-mt-gd-x32-1_67.dll

Какого хера он ее в упор не видит?
173 1233341
>>33338
Не знаю, что ты делаешь, но проверь разрядность и debug/release, а также попробуй прописать путь к используемой dll через настройки проекта. Может она тянет за собой соседей и её просто так нельзя копировать.
174 1233344
>>33341
Ещё vcpkg по-умолчанию компилирует 32-битные библиотеки, может он пытается использовать их с 64-битным приложением?
175 1233345
>>33341
Спасибо за идею, проверил. Подобавлял везде папку с vcpkg (корень ведь, правильно?). Но не помогло ни хрена.
Вручную покопировал это boost_system-vc141-mt-gd-x32-1_67.dll во все внутренние папки решения, похуй, не видит в упор.
В файлы ресурсов в солюшнэкспройлере добавил уже зачем-то, один и тот же результат.

Я сдаюсь. В пдзу пргармирвоне
176 1233346
>>33345
Лучше перекатывайся в C#. Там в .NET-мирке нет подобной ёбли со сборкой проекта в отличии от плюсов.
177 1233347
>>33345
Пути к dll сразу для всех студийных проектов указываются в project->properties->vc++ directories->Library Directories. Для отдельных проектов Linker/Librarian->general->additioanl library directories.
Cам путь можно вбить туда абсолютный (ну типа c:\vcpkg\ или где там dll лежит). Если заработает, то потом запилишь константы и через $() переделаешь.
178 1233348
>>33346
Это да. И цепляние сторонних либ через InteropServices там комфортное.
179 1233350
>>33345
Да ладно тебе, ты ж только начал. Впереди не менее увлекательные задачи портирования и развёртки твоей laba2.cxx.

Кстати, в крупных конторах обычно есть макаки-инструментальщики, которые отдельно и целенаправленно ебутся со сборкой, портированием и развёрткой проектов. Ибо даже бывалые красноглазики не в состоянии с этим справиться.
180 1233377
>>33350
ох бля, писал программу две недели и еще две недели писал под нее инсталлятор, проверяя ее на различном оборудовании, пиздец, из ldd просто не вылезал, весь по уши в bash и pituhon, ебля нон стопом, рили хард!
181 1233401
>>31810
Спасибо.
182 1233449
Кто-нибудь сейчас пилит что-нибудь на гите? Или где искать интересные упражнения по С++? Именно со всеми спецификами языка
183 1233541
>>33449

> Кто-нибудь сейчас пилит что-нибудь на гите?


Штоу?
184 1233542
>>33541
Упражнения дай, ёпта.
Сайтики с упражнениями, я знаю, они есть.
186 1233545
>>33544
Спасибо
187 1233604
>>33209
Ну не скажи, для простого вебговна скорости хватает, для парсеров/брутфорсов тоже. А больше на питоне ничего и не пишут
188 1233615
Ребят, где практики набраться , типо как стажером, но даже не за еду, ради скиллов и информации только бы. Сам студент.
189 1233616
Ребята, как мне в методе класса сделать вывод инстанса класса? Чтобы получать имя переменной по указателю this?
190 1233618
>>33615
Если ты знаешь стл буст алгоритмы потоки и tcp то можно идти юниором за нихуя.
191 1233623
>>33616
чо?
192 1233627
>>33616
Если я тебя правильно понял, то что-то типа
std::string typename = typeid.name(*this);
193 1233630
>>33615

>Ребят, где практики набраться , типо как стажером, но даже не за еду, ради скиллов и информации только бы. Сам студент.


>


всякие крупные компании предлагают позиции именно стажёров на неполную занятость. либо они организуют различные курсы для студентов на лето.
194 1233632
>>33623
Блять, торопился, соре. как мне в методе класса сделать вывод имени инстанса класса?
195 1233641
>>33632
class Ass {
public:
std::string name;
void println_name() { std::cout << name << '\n'; };

int main()
{
Ass ass { "ass" };
ass1.println_name();
}
196 1233642
>>33641
Проебаал скобку после определения класса...
197 1233644
>>33641
А без задания имени в конструкторе? С простой переменной можно это через макросы сделать,
#define GET_VARIABLE_NAME(Variable) (#Variable)
но как с указателем this я не знаю.
15150943086020.gif564 Кб, 800x430
198 1233649
>>33644
Лол, а что ты хотел? Чтоб компилятор каждому инстансу класса придумывал своё имя?
И фамилию (от базовых классов), и историю с неожиданной развязкой: Светила полная луна, итератор инвалидировался после реаллокации контейнера...

Используй cout << this, указатель у каждого уникальный
199 1233655
>>33347
Всё проверил, везде абсолютный путь на папку vcpkg.
Проблема в другом: когда нажимаю собрать проект, в папочку с Debug подтягивается boost_system-vc141-mt-gd-x32-1_67.dll, но сам линковщик при этом ничего не собирает и кричит, что boost_system-vc141-mt-gd-x32-1_67.dll в этой самой папке не найден.
В чем проблема? в MVS? в VCPKG? в Boost? в прокладке между табуреткой и компом?
200 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. Но я не уверен.
201 1233679
>>33666
На задаче проебался, зато в треде трипл выбил.

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

Вставка в конец вектора в среднем О(1). Хотя размер реаллокаций растет экспоненциально, они происходят во столько же раз реже.
202 1233681
>>33679

>max(a, max(b, c))


фикс
203 1233682
>>33679
я так и не понял, что такое медиана. Но про вектор худшее время вставки это N, т.к. в зависимости от выбранного аллокатора - реаллокация может идти каждый раз. О - худшее время
204 1233684
>>33679
Будет UB при переполнении в сложении.
Вряд ли это ожидается от функции.
205 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 пакетов
206 1233692
>>33682
есть мода - самое частое значение и медиана, такая хуета которая делит выборку пополам (но вообще я уже все забыл на хуй
14164039715940.jpg112 Кб, 736x736
207 1233699
>>33679
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;
}
208 1233703
>>33686
Вот держи: ((((int)размер_массива / размер_пакета) + 1) * размер_пакета)
209 1233706
>>33666
отсорировать значения и взять второе
как-то так:
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];
210 1233710
>>33699
Ах тыж шустрая жопа.
>>33706
211 1233711
>>33706
Чо, бывают массивы ссылок?
212 1233712
>>33682
С помощью достаточно мудацкого аллокатора можно и O(N) получить и мамку твою выебать, кто ж спорит.
Вопрос-то наверно был не про параллельные вселенные, а про стандартный вектор. На cppreference для push_back написано amortized constant.
213 1233718
>>33703
чет как-то непонятно
размер пакета 5 байт
размер массива 10 байт
((int)10 / 5 ) + 1) * 5
мы вам перезвоним...
214 1233720
>>33711
Ну тогды просто массив интов.
215 1233724
Я охуеваю чета от местных. Тока работы у меня все равно нет.
216 1233744
помню меня спросили прям по телефону про размер вектора при аллокации или размер аллокатора вектора, в общем я до сих пор ответа не знаю (хотя размер вектора вроде 0) кто такой этот аллокатор?
218 1233764
>>33758

>ru


в выделенных неинициализированные хранения объект создать
219 1233766
>>33764

>ru


Первое, что в гугле открылось. Самого бесит, что нужно вручную юрл поправлять.
220 1233773
>>33766
Просто ты не смог в настройку хрома.
Settings->Languages
Order languages based on your preference -> English
221 1233784
Определить, является ли целое число степенью двойки.
bool isPow2(int v) { / code / };
222 1233793
>>33784
https://ideone.com/gDWSDK
Вместо ctz(v) можно написать (31 - clz(v))

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

Хотя хуй его знает насколько это оптимально. Возможно сейчас байтоёбы придумают что-нибудь попирформансней.
223 1233799
>>33793
И, кстати, мой вариант для отрицательных чисел работать не будет. Пичаль, беда.
Безымянный.png16 Кб, 612x517
224 1233804
>>33773
Как-бы у меня фирефокс, и как бы всё настроено. Просто сам гугл выдаёт результат уже с ru.

>inb4 почему гугл, а не DuckDuckGo


Не знаю
225 1233807
>>33804
about:config
покажи
browser.search.region
browser.search.countryCode
226 1233834
>>33799
Отрицательные степенью двойки быть не могут, так что можно заменить v!=0 на v>0. А без ынтрынсыков решение выглядит так:
bool isPow2(int v) {
return v > 0 && (v & (v - 1)) == 0;
}
227 1233836
>>33807
US стоит
228 1233843
>>33836
Используй DuckDuckGo.
230 1233860
>>33718
У меня округление с шагом в большую сторону, если рамерности вот уже хватет впритык все равно делается +1 шаг. Чтоб пофиксить въеби проверку размера буфера под размер пакетов.
231 1233900
>>33666
Люблю задачки.
Медиана:
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), т. е. сложность вставки
кол-во элементов, ясен фалос берем амортизированную. Про мультипликативную реаллокацию ты был прав, хотя оптимально и не ровно вдвое, но это очень близко и на практическом уровне точнее значение не нужно.
(Положим, пи равно трём. Инженерная поговорка)
232 1233902
>>33684
Почему переполнение? Разве внутри выражения в скобках эта байда не приведется к unsigned --> unsigned long --> long long --> unsigned long long по неявному приведению?
233 1233905
>>33902

>Почему переполнение?


Потому что оно может быть при определённых значениях параметров.

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



С чего оно будет приводиться так?
234 1233907
>>33900
Ну чо ты STL'ем то по воробьям. Срамота то какая.
235 1233909
>>33900
Зачем вектор для статически известного числа элементов?
236 1234035
Аноны, стоит ли K&R изучить что бы ловчей по си++ собесы проходить, глупо конечно звучит, но на сях программил 10 лет назад где-то полгода, в то время даже особой разницы между си и си++ не видел.
237 1234037
>>34035
А зачем тебе для плюсов книга, предназначенная для обучения сям?
238 1234088
>>30544
До сих пор в ахуе, и что самое хреновое свой тред репортнуть нельзя
239 1234098
>>33860
обоснуй за округление в большую сторону? Кроме того вообще формула неверное, так-то получается по твоему алгоритму 15. Я вот такую хуету накодил пока
[code]
auto res = std::div(mBody.size(), PACKET_SIZE);
int packets_number = res.rem ? res.quot + 1 : res.quot;
[/code]
240 1234099
>>33909
что бы мудаки-говноеды за его размер не вышли, в векторе есть проверка за выход за индекс, а в массиве нет. Смысл программирования - не задумываться, что бы не тратить время на такую хуйню, человек должен везде вектор на автомате использовать, за исключением байтоебщины и прочего казуала. Чем меньше мозг хуйней нагружаешь тем лучше.
241 1234100
Есть ли какая-нибудь книга, где описывается работа с памятью?(то есть фрагментация, стратегии аллокации итд).
242 1234103
>>34100
(((( бля где-то прям здесь статью видел про это дело
243 1234114
>>34099

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


??????
А это что https://en.cppreference.com/w/cpp/container/array/at ?
244 1234118
>>34099

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



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

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

Кстати, ты узнавал, можно ли функции median кидать исключения? Вектор может кидать исключения. Так что ты, как ананас с UB >>33679 , нарушаешь контракты своим решением с вектором.
245 1234142
>>34118
я наверное другой анон, ну я свое мнение высказал т.к. тут критерии не указаны, то оно тоже верно, если в контексте задачи, собеседующий может порадоваться.
246 1234144
>>34142

>тут критерии не указаны


Указаны критерии (требования) "найти медиану".
Вылетевший bad_alloc — это не найденная медиана.
Это сложно понять?
247 1234147
Пачаны, скоро иду на собес. Что надо знать про сокеты и всё такое?
248 1234150
>>34147

>Что надо знать про сокеты и всё такое?



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

TCP/IP сокеты?

Unix Domain сокеты?

Сокеты беркли?
249 1234159
>>34150
Сокеты Добрый и сокеты Я. Собес на программиста Агушу.
250 1234162
>>34150
Да-да, вот про это всё говно. Что об этом нужно знать приличному программеру и где можно прочесть джентльменский минимум в максимально сжатом виде? Я хочу самую общую картину схватить, совсем незнаком с вопросом.
251 1234165
>>34162
Ричард Стивенс, "TCP/IP в подлиннике".
252 1234172
>>34144
вот тебя и пидорнули, т.к. ты даже тут понять не можешь, что найти медиану означает написать программу где ты уже все исключительные ситуации предусмотрел
253 1234174
>>34147
Нахуя? Иди в веб
254 1234202
>>33679
Да решением с мин макс функциями не плохое, но я нашел получше решение через сортировочные сети, странно, что я не додумался об этом на собесе, но тот долбоеб меня сбил с толку, я сразу сказал типа отсортировать и выбрать 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.

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

>>33666 - анон
254 1234202
>>33679
Да решением с мин макс функциями не плохое, но я нашел получше решение через сортировочные сети, странно, что я не додумался об этом на собесе, но тот долбоеб меня сбил с толку, я сразу сказал типа отсортировать и выбрать 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.

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

>>33666 - анон
255 1234211
>>34174
Так а это что, не веб?
>>34202
Я могу лучше: то же самое, только с forward_list и еще в шаблон обернуть, добавить там проверок всяких на is_integral, проверить отдельно лидирующий ноль, можно еще шизонуться и написать многоэтажный свич или иф, можно стать воздушным асом, можно Можно стать воздушной планетой. И будешь уверен, что эту планету примут по учебнику. Значит, на пользу физики пойдет одна планета. Величина — оторванная в область медианы — дает свои колебания на всю медиану.
256 1234212
>>34202

>cmp_swap(b,c);


return (b < c) ? b : c;
257 1234218
>>34211
Ты какой-то поехавший.

>>34212
Так твое возвращает значение, а мое меняет.
Я просто еще смотрел на выход отсортированного массива с разных комбинаций.
258 1234223
>>34218

>Так твое возвращает значение, а мое меняет.


Третий свап не нужен. Первые два записывают в a минимальный элемент. Значит медиана это минимум из b и c.
259 1234225
>>34218
Кстати, передавая всё по ссылке, ты портишь входные данные.
260 1234227
>>33666
Вот вам ответ:
return std::max(std::min(a,b), std::min(a,b))
При желании max и min поменять местами.
Вообще же задача простая, кто хочет посложнее — возвращайте не медиану, а моду
261 1234229
>>34227

>std::min(a,b)


std::min(b,c)
поспешишь - проиграешь
262 1234231
>>34172
Ты дебил? Вообще понял кому и на что отвечаешь?
263 1234233
>>34229
Конечно, тут опечатка. Идея-то очевидная. Сработает даже на 4 аргументах.
264 1234236
>>34233

>на 4 аргументах


На 4 аргумента обычно дают задачку о пересекающихся интервалах (найти общую часть).
265 1234238
>>34236
А есть где-то запротоколированный пак моднейших задачек?
266 1234241
>>34238
Любой сборник задач по олимпиадной математике для школьников.
267 1234243
>>34238
leetcode.com
268 1234262
Чуваки, что нужно знать, чтобы попасть на стажировку куда-нибудь? А то я читаю вот такую хуйню:
https://career.ru/vacancy/25924198

>Опыт объектно-ориентированного программирования


А придешь, окажется, что надо иметь опыт минимум 10 коммерческих проектов, гитхаб с >1000 фоловеров, написать по памяти реализацию вектора а стл, иметь мягкий анус и глубокую глотку.
Что точно надо иметь в портфолио?
269 1234268
>>34262
Так там же на 1С придётся "программировать".
Что касается опыта для стажёра - обычно достаточно рассказать про курсовую или лабу в которой ты использовал ооп. Потом тебя поспрашивают про основы языка и дадут задачку на смекалку. Всякую еботень типа написания своего sqrt или потокобезопасного контейнера с тебя не спросят.
270 1234270
>>34227
>>34229
Че-то нихуя твой способ не работает.

[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
271 1234277
>>34223
В общем, да, но (b < c) ? b : c; это один хуй операция сравнения, единственное, что на 1 копирование меньше.
272 1234282
>>34277
На 3 копирования и вызов функции, если компилятор не сделает её inline.
273 1234284
>>34270
Ну так и требуется.
274 1234285
>>34270
А вижу, в трех случаях пососал.
275 1234288
>>34282
Ясен хуй он сделает ее inline она в 1 строчку. Более того, он скорее всего даже заоптимизирует и уберет лишнее копирование.
276 1234292
>>34270
Ты код вместе с моей опечаткой перепечатывал?
277 1234322
>>34292
Нет конечно, я исправил.
Вот, я даже написал тест кейс для этой задачи.

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
277 1234322
>>34292
Нет конечно, я исправил.
Вот, я даже написал тест кейс для этой задачи.

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
278 1234323
>>34322
Кстати еще, на выходах типа 1 1 2, функция должна возвращать 2, а не 1.
279 1234369
>>34322
Если в median написать std::min(a, std::max(b,c))?
280 1234379
>>34369
то это будет TDD
281 1234485
>>34322

>[1 1 1] median = 1 WRONG!


У тебя в проверке ошибка. Проверяет на 2 и пишет WRONG когда 1!=2 (почему не 3, не 265, не 1812, например?)
282 1234553
>>34369
Окей. Сейчас попробовал
return std::min(std::max(a,с), std::max(b,c));
283 1234554
284 1234561
тупой вопрос наверное, но как получается что используя стандартную библиотеку мы в начале своего цпп файла пишем инклуд необходимый h файл, в котором по идее содержатся только объявления, компилируем свой цпп, запускаем экзешник и все работает? откуда прога знает определения используемых функций, переменных из стандартной библиотеки, если мы скомпилировали свой цпп и препроцессор только подставил в цппшку из h файла объявления?
285 1234563
>>34553
Нет, все равно не работает. Самое лучшее решение(оно не работает при 1 1 2 и других подобных сочетаниях )это
if(a < b)
swap(a,b);
return std::min(a, std::max(b,c));
286 1234564
>>34561

>откуда прога знает определения используемых функций


Стандартные библиотеки по умолчанию линкуются. Можешь отключить флагами как libstdc++, так и libc.
Аноним 287 1234638
>>30522 (OP)

>Эта книга предназначена для тех. кто еще никогда не программировал


первая страница книги Страуструпа, а уже разочарование
Двач, если я знаю си и питон, то какую книгу мне читать ? В шапке такого нет вроде практизы читать нет смысла, так как ц++ довольно сильно отличается от питона и си, но читать что такое переменная мне не оч хочется
288 1234641
>>34638
Так читай сразу про классы да шаблоны. и пили задачи.
Аноним 289 1234644
>>34641
Есть название книги ? Best practices с шапки ?
290 1234652
291 1234735
>>34485
Я знаю, что ошибка, просто лень было допиливать.
Проверяет на 2, т.к. из из набора 1 2 и 1 2 3, должна быть 2ка на выходе. надо пофиксить, чтоб из набора 1 была единица.
292 1234811
>>34638
Как ни странно, TCPL
293 1235066
Сап, ананасы.

Мимо-джун.

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

Как думаете, взлетит?
294 1235082
>>35066
Уже есть vk messeger
295 1235129
>>35066
делай что угодно, главное делай
296 1235375
>>35066
Лучше клиент к дваче сделай.
Года 2-3 назад один анон делал в /s/
297 1235502
Сегодня проходил собес в яндекс, обосрался на элементарнейшем вопросе про указатель и стек, хотя ответ знал, бес нашел на меня. Посоветуйте литры по указателям, чтобы идеально все аспекты понимать.
298 1235508
>>35502
1. Understanding and Using C Pointers: Core techniques for memory management
2. http://alumni.cs.ucr.edu/~pdiloren/C++_Pointers/
299 1235530
>>35502
Может лучше личностные тренинги на тему "Как не обосраться от волнения"?
300 1235542
Делаю алгоритм Ахо Корасика.
Не понимаю, чому не работает первый тест не находит "pen" и по 2 раза находит строки?

https://ideone.com/t0ynyV
301 1235543
>>35508
Прочитал первое, вроде все знаю.
302 1235557
Аноны. Есть буфер с путем винды "C:\some.exe"
Бывает что там и дохуя слешей.
Скармливаю этот путь WinExec. Он ничего не делает. Методом проб и ошибок я установил, что проблема в том, что надо удвоить слэши.
Собственно сабж, как сделать это более мудро?
303 1235559
>>35557
s/\//\/\//g
304 1235561
>>35559
Чет твой вариант не оч.
Ну просто городить несколько циклов по-моему пиздец.
305 1235563
>>35561
Почему не очень?
Кстати там ошибка, я по привычки юниксовые слеши написал, а тебе надо другие, тогда будет так: s/\\/\\\\/g
306 1235565
>>35563
Окей. Скажем так, у меня VS2010 . регялрочки как ты знаешь подвезти успели в с++11
307 1235567
>>35565
Ставь буст, ёпта.
308 1235570
>>35066
Делай лучше клиент двача на qt, что-то вроде dashchan, только на пеку.
Думаю, взлетит
309 1235576
>>35565
Тогда
echo "C:\\path\\prog.exe" | sed -e "s/\\\/\\\\\\\/g"
или
echo "C:\\path\\prog.exe" | perl -pe "s/\\\/\\\\\\\/g"
310 1235577
>>35557
Друг, я искренне сомневаюсь, что проблема в этом.

Может ты путаешь экранирование слэшей с чем-то другим? Или строку изначально неправильно задаешь?
311 1235583
>>35577
Смотри. Я подаю tchar который я получил из GetModuleFileNameW, обрезал до слэша и добавив нужный мне .exe, скармливаю строку WinExec с (LPCSTR)(path), SW_SHOW ничего не происходит. Кормлю строкой с одинарными слэшами - пусто, даю с двойными - все норм. Хотя возможно проблема с приведением типа.
image.png48 Кб, 552x539
312 1235605
Сап, антоны.
Подскажите в чем проблема.
Накатил Qt Creator. Поставил Qt, к нему Qt Web Engine, Qt стоит версии 5.9.2.
Для Web Engine нужен компилер MSVS 2017, оке. Поставил. Сажусь ваять свои нетленочки - и вот какую хуйню выдаеи компилятор в ошибках.

Собственно, как починить эти ебучие кракозябры?
313 1235614
>>35605
Извечная проблемма. Компилер выдаёт текст в 866 кодировке по умолчанию в консоли стоит, а креатор воспринимает ее как 1251. Попробуй в китах поставить галку для вывода в utf-8.
314 1235622
>>35614
Посмотрел где эта галка находится. А у меня ее там нет. Лол
315 1235628
Нахуя плюсам нужно два файла чтобы запустить один класс?
316 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
317 1235643
>>35614
Анон помоги
http://doc.qt.io/qtcreator/creator-targets.html
тут у этих пидоров есть галка
у меня этой галки нет

как же заебало блять
хочешь сесть уютно покодить, а занимаешься какой-то хуйней
318 1235645
>>35628
ты про интерфейс и реализацию чтоли?
319 1235647
Госпаде, вкатач, с какими же хуесосами приходится собеседоваться.

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

Какие уебки, блядь.
7dbffb772e1729f5049b8a1e7d83b7db.jpg100 Кб, 2048x1024
320 1235650
Пиздец я ахуеваю с треда.
Задал вопрос по алгоритмам - хуй кто ответил.
Зато блять полный тред даунов-вкатывальщиков типа этих:
>>35557
>>35605
>>35628
>>35630
>>35643
>>35647
321 1235659
>>35650
Пошел на хуй
322 1235662
>>35650
А чё ты ожидал? Схуяли кто-то должен знать ответ на твой вопрос и расписывать решение? Гораздо очевиднее что отвечать будут на то, что лучше понимают и что знает множество людей.
323 1235666
>>35645
Да. Почему .h и .cpp, а не просто .cpp ?
324 1235678
>>35662
Потому что это блять С++ тред, в котором по идее должны сидеть умные люди с образованием и пониманием CS, а не горстка выблядков "ВОЙТИВАЙТИ", засирающих тред своими тупорылыми вопросами, на которые сука в гугле находятся ответы за 2 секунды.

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

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

Вот этот >>35666 даун меня вообще выстегивает, сука ну почему ты настолько имбецил, что тебе блять в падлу загуглить вопрос, я даже не говорю о том, чтоб ты почитал книжку и нашел там ответ, т.к. заранее знаю, с твоим уровнем развития ты там большую часть слов не поймешь и не пройдешь дальше предисловия, но сука загуглить то можно, уебище? И так без тебя этот вопрос тут постоянно задают бесчисленные орды макак вкатывальщиков, которые думают щас они хело ворд из инета скапипастят и сразу пойдут устроятся Сеньором в яндекс на ЗП 400к в сек.
Просто блять эпик дауны.
325 1235688
>>35650
Ну ладно, ладно. Вот решение на коленке.
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;
}
326 1235689
>>35688
Нахуй ты мне это говно высрал?

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

>даунов



Один ты у мамы умный.
А знаешь что. Иди-ка ты на хуй отсюда. Со своими алгоритмами. В очко их себе загони петущара :3
328 1235697
>>35630
это троллинг
329 1235699
>>35678

>засирающих тред своими тупорылыми вопросами, на которые сука в гугле находятся ответы за 2 секунды.



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

Спасибо.
330 1235700
>>35689
Ты тут настолько воду замутил, что я не туда ответ влепил. Тебе, гондон, следует пройти нахуй, потому что ты предлагаешь дебажить твой сраный говнокод, да ещё в залупу лезешь.
331 1235703
332 1235705
>>35643
Бля, ну не знаю, может кретор древний. И зачем юзать GDB если есть нативный виндовый дебагер?
333 1235706
>>35705

>древний.



Криейтор как раз последний
334 1235707
>>35699
Всем похуй на твой сраный креатор. Это не относится к сабжу треда.

>>35700

>дебажить


Нахуй его дебажить? Тут проблема не в каком-то баге в коде, а в самом алгоритме. Если ты знаешь этот алгоритм, то возможно знаешь в чем проблема.
335 1235711
>>35707
В книжке алгоритм посмотри. Ебанашка
336 1235715
>>35711
Я уже дохуя где посмотрел, прежде чем написать тут.
Я же не еблан, спрашивающий каждый пук на форумах.
337 1235719
>>35715
Что-то тебе не сильно-то это помогло, читатель залупный :3.

Пиздуй отсюда, чорт ебаный.
338 1235725
>>35707
Начни с мнемонического названия переменных (v,c,t,i,k,u - вот это вот всё говно что у тебя там), затем перейди к инициализации агрегатов (строки 39-46), потом почитай про чистый код (таб = 4 символа, мусор 136-144 нахуй). Тогда можно будет прочитать, где ты обосрался с реализацией алгоритма.
339 1235726
>>35583
чёт вообще срал и ебал этот виндоуз, ещё раз этот чувак подойдёт, чтоб я его прого доделал, то я ему щи переломаю.
https://pastebin.com/pS09B68q
Вот куски кода, что отвечают у него за функцию.

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

В общем, какая тут может быть проблема? Я так понимаю, либо в приведении к LPCSTR, либо таки в слэшах, так как буфер получает их одиночными.
340 1235729
>>35678
чёт ты токсичный, может ты школьник, который тоже хочет быть воннаби нормис? Алгоритм же книжный, вот и подгляди в книгах, подумай что у тебя не так? Книги по чистому коду читал? про рефакторинг знаешь? А стандарты кода читал?
341 1235731
>>35719
Ты реально аутист или тролишь тупостью?
Хотя что тебе остается, ведь ты очередная манюнька мечтающая вкатиться в ойти и получать 200к/нс, ты стал изучать С++ т.к. слышал, что все крутые дядки и хакеры используют его и решил, что ты тоже станешь таким с твоей нулевой базовой подготовкой и ты реально думаешь, что алгоритмы и прочий матан вовсе не нужен сейчас, когда все можно спрашивать на форумах и копипастить со стековерфлоу. Ты думаешь, как только ты изучишь как работают циклы и условные переходы, ты сразу сможешь устроиться на высокооплачиваемую работу в ДС, ходить с важным видом по офису, потягивать смуззи, громко обсуждать различные модные айтишные темы используя максимальное количество заумных слов, чтоб все слышали какой ты умный.
Но спешу тебя разочаровать: всего этого не будет и твой максимальный уровень это laba1.cpp.

Так что пошел нахуй с моего треда, где должны сидеть только истинные задроты.
342 1235733
>>35725
Нахуй иди со своими пидорскими названиями переменных и чистым кодом.
Там и так все понятно.

Цитата одного известного человека:

>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.

343 1235737
>>35733
Ты тредом ошибся. Это CPP тред, да и стандарты кода, а так науки о коде не просто так высирали, а чтобы за тобой кто-то что-то мог прочитать, а главное ты.
344 1235738
>>35726
А там нечего приводить:
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;

Просто замени слэши.
>>35688
345 1235741
>>35729
Бля, ты тупая обезьянка, еще раз говорю я прочитал дохуя книг и статей по этому алгоритму и не могу понять ошибку. Короче, нахуя я в сотый раз распинаюсь тут перед тупорылым дауном?

>чистый код


>рефакторинг


>стандарты кода


Вот это все выдает в тебе макакена.
Я знаю про все это, но при прототипировании это обычно не используется.
346 1235743
>>35741

>при прототипировании это обычно не используется


При прототипировании говном мажут экран и улюлюкают?
347 1235745
>>35737
А ничего что ЦПП и Си очень близкие друг другу языки с многими общими областями применения.
А ты в курсе, что можно писать на ЦПП как на Си?
Это первое.

Второе:
>>35741

>>чистый код


>>рефакторинг


>>стандарты кода


>Вот это все выдает в тебе макакена.


>Я знаю про все это, но при прототипировании это обычно не используется.



Но типичный макакен даже не знает о прототипировнии и его главная цель в написании программки красивенько все оформить, чтобы тимлид хуем по губам провел и сказал маладец.
348 1235747
>>35726

>WinExec


Смотрим мсдн:
Note: This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

Нахуя ты юзаешь этого динозавра? Под виндовс 3 пишешь?
349 1235748
>>35743
Если для тебя тот код кажется чем-то совсем непонятным, то у меня для тебя плохие новости.
350 1235751
>>35747
ты не поверишь, но там WinExec с этой программой, что он использует запускает какую-то утилиту Windows, которая работает из консоли. Как я понимаю, ему важно, чтобы когда он её врубает, то у него было SW_HIDE. SW_SHOW уже поставил я.
351 1235755
>>35741
ты после прототипирования сделал одну хуйню, знаешь какую? Показал код другим.
352 1235759
>>35755
И что?
Ты зайти на любой сайт по алгоритмам, такой спартанский стиль это обычная практика.
353 1235765
>>35759
https://github.com/heineman/ algorithms-nutshell-2ed

зашёл, где?
354 1235766
>>35738
так, оба.
Ты же видешь, что у него там наверху ifdef с юникодом?
потом он эту строку приводит к c_str()
а потом указывает пойнтер на ANSI?

Это точно нормальная практика программировать окна?
355 1235769
>>35765

>Java


Ты реально дебил?

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

>inb4: ПИДАРАШИЙ ГОВНОКОД РЯЯЯЯ


Ладно вот держи расово верный англосаксонский вариант:
https://www.geeksforgeeks.org/aho-corasick-algorithm-pattern-searching/
356 1235772
>>35769
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.

Во всей книге си, а ты нашёл там в директории ПИТОН ДЖАВА и закукарекал
357 1235775
>>35731
Опять портянку высрала порватка.
Ну хватит :3.

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

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

Более того, глупо вообще сравнивать код из книги с кодом из реальной жизни.
359 1235780
>>35777
похоже у тебя реально проблемы.
Там таки понятный код, потому что переменный не похожи друг на друга, а книги по рефакторингу или стандарты ты не читал.

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

Если тем более у тебя реально пробела в алгоритме, то это ещё большая проблема, для тебя, так как ты не можешь его выразить на псевдокоде, чтобы найти ошибку. Так что тестируй.
360 1235781
И всё-таки какого хуя я не могу написать всё в .cpp файле? Зачем нужен этот сраный .h?
361 1235783
>>35781
ускоряет процесс компиляции
362 1235785
>>35783
Проиграл
363 1235787
>>35783
Блять, когда уже кто-нибудь запилит современный язык с функционалом си?
364 1235797
>>35766
с_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", ...)
365 1235809
>>35780
Боже, что за поток создания ты высрал?
Боже, как таким идиотом вообще возможно быть?

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

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

3. Я сразу сказал, что проблема в алгоритме. Алгоритм выражен абсолютно правильно, дело в том, что есть его вариации специально заточенные под конкретные специфические случаи, детали этих реализаций четко особо нигде не описаны.
366 1235815
>>35781
Скоро сможешь. К 23 году (если повезёт в 2020) обещают добавить модули.
367 1235828

>>123580


Я тебе сказал, у тебя не та вариация. Такой алгоритм какой тебе нужен называется по другому. И ты даун, чтобы в банках делали поиск по списку? Там паттерн матчинг
368 1235864
>>35828
Ты же даже не знаешь задачу которую я хочу решить им и уже говоришь, что мне нужен другой алгоритм.

Я просто в ахуе с тебя.
369 1235877
>>35864
Ты заебал.
У тебя косяк в методе check. Это к вопросу об однобуквенных именах.
370 1235878
>>35787
Rust?
371 1235879
>>35877
Бля точняк, спасибо бро.
372 1235931
Пацаны, вот скажите. Допустим я хочу написать модульное приложение, которое состоит из .exe файла и dll-ек(абстрактно, оно кроссплатформенное) под qt и я хочу чтобы в exe рисовалось основное окно, а каждая dll отвечала за вкладку. Как я это сделаю?

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

> я хочу чтобы в exe рисовалось основное окно, а каждая dll отвечала за вкладку. Как я это сделаю?


Главный вопрос.
Зачем?
374 1235940
>>35939
Интересно. Вот допустим я хочу чтобы каждый новый модуль был самостоятельным и мог отвечать за свой интерфейс и чтобы добавить в програму новый функционал можно было просто создать новый модуль и не трогать старые вообще никак
375 1235941
>>35931

> Но это плохая идея.


Чем она плохая? Qt так и делает, только сначала достаёт строку из ресурсов, а потом передаёт парсеру.
376 1235943
>>35941

Ну, для этого нужен таки парсер qml. А как парсить qml?
378 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]

Как сделать лучше?
379 1235957
>>35947
У тебя во 2 и 3 комбинациях есть пересечения. Напиши полный вывод для данного примера.
380 1236055
>>30522 (OP)
Есть ли вообще смысл использовать new вместо new [1]?
Зачем было так делить операции? Чтобы потом кто-то пердолился, думая, есть там [] или нет?
Да ещё и результат не определён в случае ошибки.
Каков здравый смысл?
381 1236057
>>36055
Впрочем, понял, можно же конструктор не по умолчанию юзать для не-[]
382 1236060
мне SIZE_MAX и и функуция max_size вектора charов выдают одно и то же число, 18446744073709551615. Что оно значит и откуда берется? Я прочитал что это максимальное значение объекта типа size_t и соответственно максимальное количество элементов которое может хранить вектор чаров. Но ведь даже если разделить это число на 1024^3 останется число с 11 цифрами, какое то невероятное количество гигабайт, откуда оно берется?
383 1236063
>>36060
а ясно, это просто 2^64-1. Зависит от разрядности ос
384 1236138
>>35957
Ну короче чтоб из входного ренджа сделать список всех возможных комбинаций с непересекающимися ренджами.

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]

Типа как-то так.
385 1236173
>>35797
Дело было в том, что он не тот метод юзал. У него ничего не вызывалось изначально ( а приложение которое он мне дал реально было 16-бит), и оно вызывалось, поэтому я отловить не мог( особенно когда я переключал сборку на юникод). Переделал код под криэйтпроцесс и тепеоь работает все.

Пойду дальше писать свои драйвера.
386 1236232
>>30522 (OP)
Порекомендуйте сборник задач/задачник по программированию.
387 1236361
>>36232
Посмотри на какие-нибудь online judges, вроде https://codesignal.com/ и https://codewars.com.
backtrackingrange.png46 Кб, 1850x480
388 1236432
>>36138
Короче решил делать бектрекингом, но я настолько туп, что не смог это в голове реализовать без графа.
389 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;
}
390 1236443
>>36432
Только теперь проблема, найти максимальные уникальные последовательности. То есть чтоб на последнем выходе не было 1 элемент (12-16). Может я граф не правильно построил?
391 1236458
>>36432
Тоесть по твойму последовательности типа:
Root -> (0-8) -> (4-8) -> (4-11) -> (9-11) -> (12-16)
это нормальные непересекающиеся интервалы?
392 1236467
>>36458
Нет, это дерево для бектрейса, то есть мы идем от root -> (0-3) x-> (0-8) ->x, на (0-3) мы смотрим что (0-8) пересекается и уже не идем дальше отбрасывая все поддеревья с (0-8) и переходим в root -> (0-3) -> (4-8) -> ...
и так далее.
393 1236517
Увидел тут ссылку на этот сайт. Начал там делать задачи, щас пришло уведомление что скоро начинается еженедельный контест. Планирую поучаствовать.
Есть еще тут народ участвующий там?

Вот ссылка
https://leetcode.com/contest/weekly-contest-95/
394 1236529
Ку, поясните дорогие, что значит выучить STL, как определить степень своих знаний, типо читал-видел достаточно, или надо как то обширно наизусть все знать вот это вот все, благодарен
395 1236536
Олимпиадного говнопогромирования пост.
В условиях написано, что надо вывести число с точностью до 6 цифр после запятой, но при юзании дабла только 5, чяднт?
396 1236575
>>36529
Да сделай свой список или вектор с
блекджекомитератором и мемным аллокатором, почитай про мапы, хеш мапы, сеты и прочую поебень, изучи std algorithms, хули там.
>>36536
Есть же такая хрень, как std::setprecision(определена в iomanip), которая позволяет задать произвольную точность вывода чисел с плавающей запятой.
397 1236576
>>35947
Само заебато такие вещи делать при помощи префиксного дерева(trie).
398 1236599
>>36576
Что трай-то даст?

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

Кто знает как ускорить можно?
399 1236602
>>36599
Я бы это задание делал через матрицы смежности. Над алгоритмом думай сам.
400 1236605
>>36138
В чем проблема отсортировать отрезки а потом перебрать?https://ideone.com/BFrMSU
Тут все равно лучше чем 2N не получится, если конечно надо выписывать все непересекающиеся множества.
401 1236655
>>36575
Спасибо
402 1236662
>>35947
Система непересекающихся множеств поможет тебе.
403 1236830
аноны, подскажите, какой геометрический смысл данного кода?
https://acmp.ru/article.asp?id_text=170
404 1236848
Хотелось бы запилить серверное и клиентское приложение, ну и реквестирую библиотеки для подобного.
405 1236853
>>36848
boost asio
406 1236858
>>36830
бамп
407 1236859
>>36858
ты тредом ошибся, паскаледед
408 1236872
>>36853
Какой же я даун нихера не понимаю, как вообще вкатываться в сетевое программирование?
409 1236891
>>36872
Читаешь таненбаума и вперед
410 1236900
>>36830
Ну тип классическая задача и классическое решение. Два отрезка пересекаются, если их концы лежат по разные стороны от линий, которые они задают.
411 1236944
>>36830
Там векторные произведения: v1 = B1B2 x B1A1, v2 = B1B2 x B1A2 - если точки A1 и A2 лежат по разные стороны от отрезка B1B2, то векторные произведения будут иметь разный знак, соответственно их произведение v1*v2 будет отрицательным. Потом то же самое проверяется для отрезка A1A2.
412 1237241
Посоветуйте материал по оценке алгоритмов (выч. сложность/расход памяти/сходимость). Вот эти вот все o(n), O(n), амортизированные константы и проч. Желательно книжечку или какой-то бложик с последовательным изложением.
413 1237245
>>36232
codeforces.com
414 1237288
>>34035
Нет. Нет, блядь, нет!!!111

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

Короче K&R это вредный совет в 2018 году, честное слово.
415 1237312
Как сделать аллокатор с несколькими шаблонными параметрами? Чтоб соответствовал концепту Allocator.
Для allocator_traits написано, что "rebind_alloc = Alloc::rebind<T>::other or if Alloc is A<X,...> then A<T,...>" Но я где-то проебался и оно не хочет компилироваться именно на том месте.
https://ideone.com/evpXbL
Полдня сижу над этой пиздой.
416 1237313
>>37288
Бля, я зря что ли из шапки книги читаю?
417 1237361
>>37313
Читай ассемблер абеля для общего развития. Остальное приложится.
418 1237517
Суп, двуч. Вопрос по qt. Пишу на qml окно, есть объект

ApplicationWindow
{
//
//

Grid {
//
}

}

Каким образом я могу описать grid в другом файле qml и заинклюдить чтобы было типа Grid : myGrid? А то сам грид большой и отдельнго файла требует
419 1237532
>>37241
Ну же, ну, где советы?
420 1237536
>>37241
Седжевика почитай. Можно Кормена, но это оверкил.
1516036901236.jpg132 Кб, 1280x853
421 1237538
Решил написать вектор который работает не через ебучие аллокаторы, которые не умеют в realloc и не умеет быстро копировать через memcpy.
Особо не тестил, только вот написал.
Можете постестить, буду признателен за выявленные баги.
А я пока пойду спать.

https://ideone.com/MAuUis

Дают немного нефти заранее.
422 1237542
>>37538
откуда у тебя такие охуенные картинки бро? Поделись плс соусом и паком!!!
423 1237651
Где стихи в шапке? 2 года назад они были, а сейчас где?
424 1237652
Аноны кто что скажет за Codelite + mingw?
Стоит ли юзать? подводные камни?
425 1237655
>>37652

>mingw


Под виндой есть смысл только в CLion + mingw, либо vs community ну и qt creator. Остальное ненужно и почти не развивается
426 1237661
>>37655
Первый платный, второе говно.
А я задал ведь конкретный вопрос)
427 1237665
>>37661
Хорошо, отвечу. Codelite - что-то вроде текстового редактора с подсветкой синтаксиса и глуповатым автокомплитом. Примерно на уровне vim/emacs с парой плагинов. Лучше уж взять codeblocks. Он тоже говно, но умеет гораздо больше чем codelite.
Можешь посмотреть на vs code, может понравится.
Но вообще везде используют студию или clion, может еще qt creator. Это единственные 3 человеческие ide для крестов.
428 1237668
>>37661
Почему второе говно, гений?
429 1237682
>>37665
Во, спасибо тебе
430 1237683
>>37668
Потому что пока не поставишь 100500 ненужных библиотек, хуй он будет нормально работать. И он исключительно виндусовский, что автоматически его переводит в уровень рабов.
431 1237686
>>37683
Нормально работает, все изкоробки.
Ну если не нравится, на торрентах clion ищи.
432 1237687
>>37683

>Потому что пока не поставишь 100500 ненужных библиотек


Что ты несешь вообще?
433 1237693
>>37687
Давай считать:
1. Kernel.dll
2. .net
3. Обязательный пакет расширения для винды, обязательные компилы для линуховых
4. Для эмуляции, обязательно поддержка гипервизора
5. Powershell если пишешь под мобильники
6. Еще 10 штук пакетов Visual C++ от времен бородино до 2018.

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

Нахуй?
434 1237696
>>37693
1. Что это вообще такое?
2. Установлен
3. Это нормально. В линуксах кернел-хедеры.
4. Не обязательно
5. Может быть
6. ставится один, текущий. Тем не менее - если ты пекой пользуешься, они уже стоят.

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

Ну и да, ИДЕ не сраная, а де-факто стандарт индустрии.
435 1237704
>>37693
Что ты несешь?
1. Это и так в винде есть, дебич
2. .net - по дефолту в 10 винде уже он есть
3. Для линукса - да. Про пакет расширения никогда не слышал.
4. Не обязательно
5. По дефолту есть в 10 винде
6. Ставится 2017, никаких других не надо
436 1237705
>>37696
Нормальная аргументация. Хотя судя по первому пункту с тобой даже говорить не о чем. Максимум с чем ты работал это очередной форк или hw.
437 1237706
>>37704

> 10 винда


Спасибо блеванул
438 1237708
>>37705
Не проецируй, гений доморощеный.
439 1237736
>>31748
Какая версия?
440 1237781
>>31748
Я не уверен на все сто(компилятора под рукой нет проверить), но есть вот такая штука: https://en.cppreference.com/w/cpp/iterator/data
Могут перекрываться области видимости, из-за чего твой массив видится как эта функция.
Хотя чуйка мне подсказывает, что дело не в этом
441 1237835
>>37651
Чулочника заебал сосач. Оно и к лучшему, тут и так клоунов хватает.
442 1237842
Подскажите детские книжки по C++, которые интерактивные и прикольные, для таких даунов как я.
Есть такая по руби и js, есть ли аналог для спп?
443 1237845
>>37842

>Есть такая по руби и js


Я почему-то не удивлен, особенно по JS. Во истину язык для даунов.

Захуй те ЦПП, если ты даун? Один хуй либо не осилишь, либо останешься на уровне хелоу вордов.
444 1237867
>>37842
книги уровня "С++ для даунов" не существует
445 1237868
>>37867
Уже нашёл несколько. лел
446 1237985
Есть у кого впечатления от средства C++11 <threads>?
Перескакиваю, по сути, с pthreads на него. Говорят, что функционала меньше, но зато кроссплатформенность. Да и нативные средства по-прежнему можно вызывать.
С вас по сути только "отзыв", особенно если с другого API вкатились, как в сравнении оно...
447 1238010
Господа, помогите разобраться. То ли у меня мозги стухлись на ночь глядя, то ли я нифига не понимаю.
На 1.png код при n = 10000000 выполняется за 470 мс. Ключи, как видно, предварительно запихнуты в вектор(или в массив, не важно, пробовал и так и так).
На 2.png код при таком же n выполняется за 1991 мс. Здесь вектор не используется, а ключи берутся непосредственно из счетчика цикла for.
В чем подвох?
448 1238011
>>38010

>В чем подвох?


Индирект, лишнее обращение к памяти.
449 1238015
>>37665

>Примерно на уровне vim/emacs


Сейчас во всех редакторах LSP для автокомплита. Тот же самый, что в VS Code.
image.png249 Кб, 1278x1082
450 1238019
Ваши оправдания.
451 1238020
>>38011
Прости, можешь объяснить поподробнее?
Я так понимаю, ключ все равно передается по ссылке и unordered_map использует его только для вычисления хеша. Так какая разница откуда мы передадим значение по ссылке?
452 1238022
>>37538
Будет работать только с POD типами. Если у объектов есть конструкторы-деструкторы, то твой вектор устроит тебе большой и неприятный сюрприз.
453 1238024
>>38020
um[v] - тут непрямое чтение из памяти пидорасит кэш процессора, из-за чего падает производительность.
454 1238032
>>38020

>Так какая разница откуда мы передадим значение по ссылке?


При линейном обращении к um шанс, что нужное значение лежит в кэше гораздо выше. С массивом у тебя мало того, что обращение к памяти рандомное, так еще и опосредованное, в два приема. То есть процу сначала надо дождаться, пока придет значение из вектора, а потом еще пидорасить бинарный поиск в um.
455 1238042
>>38032
Ну, вообще по логике так, да. Только, во-первых, в массиве и векторе соседние элементы лежат рядом, то есть вероятность того, что соседние элементы вектора есть где-то в кеше, тоже довольно большая. А во-вторых, что самое интересное, все с точностью наоборот к твоим словам. Ты перепутал скриншоты. По ним видно, что в случае вектора(скрин 1) доступ быстрее, чем линейный(скрин 2).
И, если подумать, последовательные ключи 1,2,3... будут иметь совсем разные хеши, т.е. могут лежать далеко друг от друга и попадание одного элемента в кеш не означает попадание туда соседа. Но все равно какая-то хуйня, я запутался.
456 1238043
>>38032

>бинарный поиск в um


Но это же хэштэйбл. Доступ по ключу за константное время.
457 1238056
>>38043

>Доступ по ключу за константное время.


"Константное" время на практике очень сильно зависит от того, как идет обращение к памяти. Вплоть до того, что для небольших массивов линейный поиск может быть быстрее, чем хэш таблица.
458 1238059
>>38056

>для небольших массивов


>>38010

>n = 10000000


Плез. Тут происходит амортизация того, о чём ты говоришь. Иди баиньки уже.
459 1238060
>>38042

>Ты перепутал скриншоты


Тогда странно получается, да. Запости целиком прогу.
460 1238416
Аноны, такая проблема:
Работал в визуалке 2017 года, работал с символьными динамическими массивами. На визуалке "программа" работает некорректно. Выводятся вообще рандомные символы. Как я понял, неправильный адрес берется компилятором. Скопировал код в Dev C++ и C++ Builder - все нормально. Как фиксить парашу от микрософта?
461 1238427
>>38416
Вангую дело в кодировке
462 1238430
>>38416
Как фиксить свои кривые руки от андифайнед бихевиора, ты хотел сказать?
463 1238536
Доброй ночи. Я тут сходил на собес, паттерны по банде четырех вроде нормально знаю, но теперь спрашивают, а скажи мол, дорогой, по GRASP паттернам. Я же вообще ни в зуб ногой, че это за хрень такая. Домой как вернулся, гуглить — только статьи в хабровикипедиях понаходил. А литература какая-то есть на эту тему, что посоветуете?
14592143271900.jpg59 Кб, 540x643
464 1238565
>>38536

>Паттерны


>C++


Ты кем устраиваешься? Формошлепом каким-то что ли?
465 1238570
>>38536
А есть ещё вот такие:
https://books.google.ru/books/about/Patterns_for_Parallel_Programming.html?id=LNcFvN5Z4RMC&redir_esc=y&hl=en
Этих паттернов понапридумывали ояебу сколько. Если ты на кодера собираешь устраиваться, то просто забей. На практике ты их все увидишь не раз, только названия знать не будешь.
466 1238571
>>38565
Всем без разбору, где требования к языкам только C++. Я даже C знаю очень неуверенно, а о питонах всяких и речи не идет. Хочу уже куда-то устроиться, а не все сидеть и „вкатываться“. Так что с ГРАСПом-то?
467 1238573
>>38570
Спасибо, буду хоть морально готов, что на ГРАСПЕ оно не заканчивается.
1514386630141.jpg40 Кб, 273x398
468 1238634
8 лет прогал под линукс, дома последние лет 5 тоже линукс стоял как основная система + винда для игорь на другом диске.
Теперь появилось такое желание попрогать под виндой.
Раньше сказать, я ненавидел С++ под виндой, ибо WinApi это просто пиздец, корявое уебище по сравнению с красивым и удобненьким linux api + Студия говно, но я нашел Resharper C++ попробовал его вроде годно.
Единственное, что до сих пор смущает - это отсталый компилятор у студии, в котором мало того, что много чего из новых стандартов не реализованно, так еще и нету всяких санитайзеров, что просто киллер-фитча, который я постоянно пользуюсь в gcc, которая позволяет находить различные сложные баги. Плюс вывод ошибок у студии уебищный и не понятный по сравнению с gcc который прямо очень точно указывает, что не так да еще и цветом выделяет, студия выплевывает какую-то несуразную хуиту по которой вообще не понятно в чем проблема.
Зато у студиии дебагер вроде как получше.
Еще бесит у студии флаги компилятора уебанские и совсем другие, чем у gcc, clang, intel и проч.
Еще не понятно, что у студии с CMake'ом.

Так вот что скажите, если ли какие-то обходные пути?
469 1238640
>>38634

> отсталый компилятор у студии


Полная поддержка С++17 завезена уже
470 1238643
>>38634
Ты делать то что собрался, болезный?
471 1238649
>>38634
Я бы посоветовал тебе Eclipse вместо VS. В нём сбываются все красноглазые мечты.
472 1238656
>>38640
А что на счет санитайзеров, адекватного вывода компилятора, CMake, и прочего?

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

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

На gcc под виндой, половина фишек типа санитайзеров не работает.
473 1238667
>>38656

>На работу щас устраиваюсь


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.
474 1238670
>>38667

>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.


Лол. Это паста или нахуя ты на англ. написал?
Вообще по линуксу дохуя всего, просто так попалось, что мне понравился проект, платят норм, и есть перспективы съеба с пидарахи.
А так на линуксе намного больше по плюсам вакансий, чем на винду.
475 1238676
>>38670
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?
476 1238691
>>38430

>андифайнед бихевиора


Ты о чем?
мимо закончил первый курс
477 1238694
>>38691
Да.
478 1238696
>>38694
Ааа
479 1238888
>>38676

>being a pretentious cunt wallowing in his basic ability to write English


Seems ta me yer peen is hoora wee, innit?
480 1238895
>>38676

>operation systems


o, vy iz anglii?

>against 3k positions marked with "c++" in total.


И где доказательства, что из этих 2к на винду больше тысячи?
481 1238963
>>38888

>to write English


"in English" actually

>>38895

>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.
DpQ9YJl.png20 Кб, 700x700
482 1238970
>>38963

>"in English" actually


Не обязательно.
CNEgEeWO88I.jpg32 Кб, 521x400
483 1238999
>>38634
QtCreator + MSVC компилятор, ежжи.
З.Ы. Только креатор предпоследний бери. Из ГУИ на выбор как с++ Qt виджеты, так и QML JS фигня с пробросом с++ функционала, забавная вещь.
484 1239009
>>38970
Maybe somewhere in India it is.
485 1239036
>>38649
ты совсем сумасшедший? Эклипс это худшее, что существует в мире IDE
486 1239039
>>39036
Чем оно худшее, дебич? В разы проще и интуитивнее, чем MS VS.
Выведено всё, всё, блядь, что можно.
487 1239088
>>39039
Земля тебе пухом
34144.jpg9 Кб, 480x360
488 1239094
Решил собрать свой "кроссплатформенный" проект, который я писал и тестил под линуксом, в студии.

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

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

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

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

В-пятых, Ебучее WinAPI, сегодня час потратил пока искал в инете как превратить код возврата ошибки в строку, там пиздец.
489 1239096
>>39094
Пиздос, иде для пидоров как и смейк, но похоже ты уже начинаешь понимать
490 1239105
>>39094

>решил использовать плюсовые стримы, хотя знал что это кусок говна



почему это кусок говна?
491 1239107
>>39105
Потому что медленные как пиздец.
492 1239130
>>39094
Для винды по опыту считывание около мб оптимально. Больше или меньше медленнее. И при чем тут плюсы, если за стрим ОС отвечает?
493 1239141
>>39094
1. Да
2. Делает хуйню
3. Неосилятор
4. Неосилятор
5. Неосилятор

> РРРРРРРРРРРЯЯЯЯЯЯЯЯЯЯЯЯЯЯ СТУДИЯ ГАВНО МАМ

Вопрос на миллион Аутист 494 1239142
Зачем C++ ввёл ссылки? ну правда, были указатели, они могут быть шаблонными типами, с ними не возникнет этих сраных ссылочных проблем, которые ещё и варьируются со стандартами.
"Ссылка просто предоставляет нам более простой интерфейс по сравнению с указателями. Теперь не надо постоянно разыменовывать." - Примерно так пишут в учебниках.
На деле:

> семантика переноса


> ссылки rvalue, lvalue, универсальные ссылки


> Ой, у вас тут std::move отваливается, замените на std::forward


> Ой, вы думали, что тут rvalue, но он как аргумент, конечно, rvalue, но формальный параметр есть lvalue по природе своей. Не ешь, подумой


> Здесь у вас кусок говна получился с копированием, мы же хотели прямую передачу


> Вы что, не знаете, как сворачиваются ссылочки?


И это притом, что:

> Указатели неплохо смотрятся в шаблонах.


> Указатели прозрачны в плане модели памяти и вообще довольно наивны. Ни у кого в голове не будет сомнений по поводу природы указателя, в то время как изучающие C++ без С могут спустя года не понимать, что компилятор все ссылки в конечном счёте сводит к указателям как естественным носителям информации "где".

495 1239145
>>39094
Добро пожаловать в мир разработки по, клован. Нехуй было 8 лет сычевать под одной осью и дрочить в один и тот же инструментарий.
496 1239150
>>39130
Я вроде ясно написал, что СИшные стримы работают нормально, когда я ими заменил плюсовые. При чем тут ОС?

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

>>39145

>"Мир разработки ПО"


Лел.
Вообще я думал ваш мир намного более продвинутый, но сейчас понимаю, что линукс в этом плане идет впереди лет на 20.
497 1239151
>>39150
Попробуй сменить компилятор. По сути из твоего жирного поста проблема-то только в медленной работе. Серьёзная.
498 1239155
>>39150

>СИшные стримы


наркоман?
499 1239157
>>39155
stdio.h
Слышал о таком?
500 1239159
>>39151
Серьезная да, но остальные мелочи тоже выводя из себя спустя некоторые время.

>Попробуй сменить компилятор.


Так смысл, если программа должна быть кроссплатформенная? Под студией она уже хуево работает, значит под нее уже надо менять решение.
501 1239161
>>39094
Да, тебе один намекнул, но зачем ты полез КАЧАТЬ ВИЗУАЛ СТУДИО ПОСЛЕ МНОГИХ ЛЕТ ОБЖИМАНИЯ/ПИНУСА?
Есть mingw, MSYS, pacman доставит утилиты!
502 1239163
>>39159

> кроссплатформенная


Не кросскомпиляторная. Вообще, если ты нигде не обосрался и не написал какой-то код с undefined behaviour в редких ситуациях, то тебя долбать судьба твоей обёртки системных вызовов волновать не должна.
Не нравится - пиши ifdef'ы и разные вызовы для разных осей, лул.
503 1239166
>>39157

>Слышал о таком?


Слышал, причем здесь стримы?
504 1239170
>>39166
FILE * это указатель на стрим, если что.

> The fopen() function opens the file whose name is the string pointed


to by pathname and associates a stream with it.
Вы уже забываете свои корни
505 1239173
>>39161
Да я пару постов назад писал, что хочу попробовать на студии пописать. Тем более я там же писал, что у всяких gcc под виндой половина фитч не работает, типа санитайзеров.

>>39163
В том-то и дело, я кроме 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().



Короче стримы сами по себе медленное говно.
Жаль в плюсы не завезли мемори мапинг.
506 1239181
>>39170

>это указатель на стрим


У тебя кресты головного мозга
508 1239183
>>39181
Чего?
509 1239185
>>39155
>>39166
>>39181
Вкатывальщик не палится.
510 1239188
>>39185
Вообще, да.
Он упоротый какой-то.
511 1239190
>>39142
Bump, ваши идеи.
Оправдывайтесь, крестодауны
512 1239191
>>39182
Чем выше уровень абстракции, тем меньше производительность. Очевидно же. Ты бы ещё производительность raw и smart указателей сравнил.
513 1239198
>>30522 (OP)

> CPP тред


Зачем вам отдельный тред для препроцессора языка C?
514 1239199
>>39191
Абстракции абстракциями, но если бы ты почитал тот тред дальше, то увидел бы, что разработчики gcc почему-то позаботились о быстрой реализации этих стримов для больших блоков данных, а в студии похуй. Хотя это даже хорошо, а вообще лучше бы из С++ удалили файловые стримы, и оставили бы только стринг стримы, для удобного форматирования.
Ну или хотя бы завезли какие-нибудь классы для работы с большими бинарными файлами.
515 1239200
>>39198

>Зачем вам отдельный тред для препроцессора языка C?


Что бы поток байтов называть стримом
516 1239201
>>39190
Ну что ты пристал? Никто уже не помнит зачем ссылки ввели. А && ввели, потому что хомяки новый функционал клянчили. Мол вон в питухоне ещё инструментария навалили и какие там всякие приколюхи - нам это тоже пиздец как надо.
517 1239202
>>39199
Ебать, ты помимо того что нытик, так еще и ни хуя не понимаешь
518 1239203
>>39201

>Ну что ты пристал?


Я просто представил, как на меня будут смотреть, если я не буду их в коде юзать вообще.
И есть дикое желание, если честно...
519 1239204
>>39201

>А && ввели


Чем крестодибилам указатели помешали?
520 1239205
>>39202
Так и что не понимаю и где я не прав или обосновывай или иди нахуй со своими вскукареками.
521 1239206
>>39204
>>39200
Хватит уже толстить
522 1239207
>>39205

>где я не прав


В стримах
523 1239209
>>39207
Все пошел на хуй, не беси меня.
524 1239211
>>39209

>Я в скинни джинсах, и я прыгаю на сцене


ясно
525 1239216
>>39203
Да всем пофиг на самом деле. Писать на c++ это как жить в Китае или Индии - вроде язык общий и традиции, однако отдельные этносы друг друга нихуя не понимат.
Вот как у нас тут челик из Южной Индии мира линухов не может найти себя - так и по всей отрасли.
526 1239219
>>39204

>Чем крестодибилам указатели помешали?



А их никто и не трогал. Оставили как есть. Хочешь использовать && - используй. Не хочешь - можешь написать то же самое на указателях как в бородатом 98м.
527 1239220
>>39216

>Писать на c++ это как жить в Китае или Индии - вроде язык общий и традиции


У крестоблядков ООП головного мозга, что и порождает проблемы, можно так же посмотреть питухонщиков.
528 1239221
>>39219

> Хочешь использовать && - используй. Не хочешь


Но зачем? Зачем это говно нужно?

>как в бородатом 98м.


Я уже школу закончил как два года.
529 1239225
>>39220
Эффективные менеджеры требуют многа и за быстро и чтоб вчера и чтоб сразу в продакшн. Отсюда ооп, питухон, аджаил и прочее говно.
530 1239232
>>39221

>Но зачем? Зачем это говно нужно?


Это костыль для случаев, когда можно избежать глубокого копирования.
531 1239237
Сейчас подключил SFML и открыл дефолтный пустой проэкт в Code:Blocks. Всё делал по ультрапростому туториалу, и врятли мог ошибиться. Но выдаёт кучу ошибок будто не подключена вообще SFML, ide тем не менее видит классы, хотя не знаю смотрит ли она в хэадере или это встроеное.
532 1239239
>>39232

>глубокого копирования


Копирования чего?
533 1239242
>>39239
Например данных, которые хранятся в объекте по указателю и подразумевают единоличное владение.
534 1239246
>>39242

>Например данных


Ну я же знаю их формат и могу их скопировать от руки, зачем это все переносить в язык?
535 1239329
>>39246
Ну любители c, например, пердолятся с хранением указателей на функции в структурах, чтобы имитировать объект с методами. В c++ это встроено в язык, хотя в большинстве случаев это не нужно.

Попробуй написать код для вот такой ситуации без &&.
class A {B* m_p;};
A f();
A a1 = f();
A a2 = a1;
536 1239335
>>39237

> Code:Blocks


Почему. Почему. Почему постоянно ньюфаги упоминают этот кусок дерьма. ЗАЧЕМ? Почему нельзя поставить Студию\Шлион\Культикреатор. Почему ставить этот высер сифозной макаки?
537 1239337
>>39335

>Студию\Шлион\Культикреатор

538 1239341
>>39337

>тормозноеговно\Шлион\анальныйзонд

539 1239355
>>39341
Обнови свой Пентиум 4 уже, не позорься. Тормозное говно у него
540 1239356
>>39355
Тормозное блять. В игры играю а студия вылетает и грузит две буквы 10 секунд.
541 1239358
>>39356
Thief и квака уже не стоят на грани компьютерной графики, анон.
542 1239359
>>39355
Так у него ЛевЪ на Java писанный работает. Пациент просто копротивляется. А может это дистрибьютер JetBrains свои копеечки отрабатывает.
543 1239361
Блять, да VS глючная что пиздец. Я такого никогда не видел, чтоб текстовый редактор виснул настолько часто и долго.
544 1239396
VS говно, его пользователи дауны.
545 1239442
Двач, почему в C++ компиляторы обнуляют указатели в структурах?
Можно ли это отключить как-то?
В c они это тоже делают, причём везде, но только с включением оптимизации.
546 1239459
>>38963

>In my experience


But you have no experience.

>Mistakes are made.


>get the certain numbers


Ви продолжаете, может таки лучше остановиться?

>>39200

>поток байтов


Но ведь стрим это и есть поток. В чём шутка?
547 1239489
Могучие местные крестовики не знают, что плюсовые стримы могут иметь такую-же или большую скорость, если отключать проверки.
Виндовый компилятор медленее в дебаге, т.к. имеет 100500 проверок на безопасность, многие вещи пролетающие в гцц как по маслу, в винде падают с абортом, т.к. код ансейф. Попробуй с -Ox на винде, и каким-то -Ofast на гцц.
Плюс в винде многие небезопасные оптимизации выключены вообще и нужно ручками все указывать, тот же strict_aliasing например.
Вообще в современном мире компилировать код чем-то кроме clang+llvm моветон
548 1239498
>>30522 (OP)

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

https://github.com/CRYTEK/CRYENGINE/tree/release/Code/CryEngine
549 1239505
>>39459

>But you have no experience.


Everyone who have ever applied for a job has such experience.

>Ви продолжаете, может таки лучше остановиться?


Any explanations are welcome.
550 1239544
>>39489
Слушай, я сегодня напишу специально тест для стримов С++ и сишных, нативных ОС файловых функциях и мемори маппед файлов.
Так вот ясен хуй я компилировал с максимальными оптимизациями при проверке. Просто сами плюсовые стримы так сделаны хуево по крайней мере в студии.
551 1239551
Объясните как подключать библиотеки. У меня MinGW. Засунул .a файлы в \lib, хэдеры в \include. Ещё есть dll, куда его? Почему не подключается библиотека?
552 1239560
>>39505

>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.
553 1239592
>>39544
Выключи там синхронизацию, убери проверки локалей, добавь буфферинг и увидишь, что цпп даже быстрее быть может.
554 1239647
Посоны! А у меня тут такой тупой вопросик.
А какая особая разница между функцией и классом с оператором()? Ну помоимо того что класс это ещё и всякие хуйни там можно понавешивать.
Нахуярить вместо функций классов и использовать безымянные объекты как функцию.
15241865960790.jpg3 Кб, 170x127
555 1239648
>>39361
>>39396
Дурень, ты VS Code скачал?
556 1239656
>>39551
Бамп епт.
557 1239657
>>39648
Нет, дефолтную студию. Она не синяя она фиолетовая и виснет что пиздец.
558 1239683
Должен ли я указывать при компиляции все файлы .h которые я подключаю вне главного компилируемого файла? Или только то, что подключаю в главном?
559 1239692
Visual studio на самом деле это лучшее IDE.
Правда ещё есть Clion, он даже получше будет чем Visual studio, более того он кросплатформенный, но он стоит дохуища денег, 12000 в год.
Мне на линухе так вообще приходиться пользоваться "qtcreator", параша полная, но даже это лучшее из того что представлено на линухе из IDE (помимо вышеупомянутого Clion'a).
560 1239698
>>39692
А нет, Clion стоит 90$ в год (что собственно тоже не подъёмная сумма (для большинства русских))
image.png196 Кб, 480x360
561 1239714
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
562 1239740
Ну почему у меня никогда ничего не работает?
563 1239791
Помогите написать Hello World. Это вообще возможно?
564 1239811
>>39791
Да, записывай:
#include <iostream>
int main(){std::cout << "Hello faggot" << std::endl;}
Компилируй: g++ main.cpp
565 1239813
>>39692

>Платить самому за софт


Орнул с тебя.
566 1239815
>>39813
Хули ты орёшь дебил? Тебе дурку вызвать?
567 1239817
>>39815
Пернул тебе в глаз, омеганище.
image.png200 Кб, 416x400
568 1239819
>>39811
Не получилось. Укатился обратно в питон.
569 1239820
>>39819
Туда тебе и дорога.
570 1239821
>>39817
Ты в монитор пёрнул чмошник омеганский.
571 1239823
>>39821

>Перефорс


И это все что ты можешь, жалкий девственник?
572 1239825
>>39823
Могу дурку тебе вызывать чтобы не орал по ночам, чмошник омеганский.
573 1239828
>>39825

>Фикс на дурке, оре и омеганстве


Тебя в детстве санитары избивали и ты потом плача громко орал, что теперь ты омеган и чмошник?

Дааа, не завидую...
574 1239903
А что, правда сейчас уже зашквар писать int, long, short и т. д., а надо строго int32_t, uint8_t и т. д.?
575 1239904
>>39811
return 0; // ты забыл
576 1239939
>>39903
Так тоже зашквар. Нынче auto
577 1240094
Объясните тупому.
OpenGL - это просто спецификация, так. Реализация спецификации сделана в драйверах GPU.
Тогда что я подключаю #include <GL/glut/glew/GL.h>. И если я не закину dll в проект, то говно не скомпилируется. В спецификации написано, что это >OpenGL Loading Library
Нихуя не понимаю блять
578 1240105
>>39657
Какая версия винды и студии? Может тебе просто мать пропылесосить?
579 1240184
Нужно нарисовать граф с посчитанным расположением вершин. Интерфейс на Qt, позавчера в первый раз читал доки. Есть ли способ избежать отрисовки примитивов? Что-то вроде QChartView, но с рёбрами.
580 1240194
>>40184
Или лучше скопипастить сделать что-то типа этого?
http://doc.qt.io/qt-5/qtwidgets-graphicsview-elasticnodes-example.html
581 1240317
Щито это такое?
if (i 1ll i <= n)
582 1240322
>>40317
if (i 8 1ll 8 i <= n)
Где восьмерки там умножение
fix
583 1240357
>>39714

> ИДЕ NetBeans


> MinGW


Помоги себе сам сначала
584 1240358
>>39904
по стандарту можно не писать в main()
585 1240361
>>40094
OpenGL в винде предоставляет возможности программирования только на OpenGL 1.1. Для того, чтобы писать на чем-то поновее, нужно загрузить нужные расширения из системы. Т.е. сама винда загружает только 1.1, надо дозагруживать
586 1240419
>>40322
Очевидно говнокод. А по делу, если i это int, то, как мне думается, автор пытается избежать переполнения при умножении.
587 1240471
>>40419
А может это фрагмент из йоба метода по типу метода Кармака для обратного корня.
588 1240494
>>40419
Спасибо, я просто даун
589 1240531
Блять, как вкатиться в коммерцию? Я уже бог этого говна. Еще чуть-чуть, и пойду учить жс.
590 1240550
>>40184
Заюзаю MathGL
591 1240835
>>39939
Где это auto?
auto main(auto argc, auto argv) что ли?
592 1240853
>>40835
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);
}

...

}
593 1240900
>>39903
все эти инты и шорты обычно у студентиков в лабах остаются
594 1240945
>>39939
>>39903
Плюсы не для auto, они для кроссплатформенного софта. И там и с int16_t приходится пердолиться, и свои аналоги выдумывать.
595 1241045
Вы че ахуели, кто отвечает за перекат треда?
Пили новый, ты, чорт.
596 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); //тут уже будем читать из регистра, проходя логику проверки аттрибута регистра, и принимаем решение, можно ли с него читать или нет
596 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); //тут уже будем читать из регистра, проходя логику проверки аттрибута регистра, и принимаем решение, можно ли с него читать или нет
597 1241136
>>41124

>Как у этого объекта вызвать метод зная только его адрес?


>TvoyClass✼ obj= reinterpret_cast<TvoyClass✼>(obj_addr);


>return obj.get();


?

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

это нормально, котаны?
599 1241167
>>41145
Насколько низкоуровневой? Про что спрашивают?
600 1241174
>>41167
просили поволохать битьы - поволохал.
срезался на ололофункциях с мемсетами мемцпай ЧТО ВЫВЕДЕТ ПРОГРАММА НА ЭКРАН ЧТО ЗНАЧИТ НЕ БУДЕТ РАБОТАТЬ ПОЧЕМУ ИМЕННО НЕ БУДЕТ РАБОТАТЬ ЧТО ИМЕНО ВЫВЕДЕТ
601 1241177
>>41174
А в чем пример был, в чем фишка? Мемсет, мемсру, и что? Там какие-то мегаподводные мегакамни?
602 1241190
>>41177
там был кусочек ебанутого кода.
и в общем было ясно что там в определенный момент память потечет, и еще куски какой-то ебанины.
я постарлся указать на то что там потечет памятть и нет смысла смотрю ту ахнинею, что есть еще. но ЭТО ОКАЗАЛОСЬ ОЧЕНЬ ВАЖНО
603 1241196
>>41190
Короче ты просто не знал, что будет и предположил, что потечет память потмоу что используются сишные функции?

Ясно.
Мы вам перезвоним.
604 1241248
>>41196
ты даун?

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

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

они такие - хуяк. ну тут потечет, а тут что будет. а я говорю - да какая разница в общем-то
605 1241499
>>33784

static constexpr inline bool IsPowerOf2(const int32 Value) noexcept
{
return (Value & (Value - 1)) == 0;
}
606 1241524
>>41248
Пиздец ты даун.
Еще удивляется почему его нахуй послали.
607 1241532
>>41145
Ну да. Те же тестовые ингда требуют написать без использования STL. Зачем? Чтобы кандидат мог ковырять легаси говно или заниматься оптимизацией.
608 1241551
Ребята, учу Python, а после хочу продолжить изучать с++, какие подводные и какие плюсы я с этого получу? В СИпп знаком с переменными, циклами, условиями, а потом дропнул тк начал глубоко изучать ассемблер для кр555
609 1241659
>>41551
Охуешь и выйдешь в окно от того, сколько нюансов держать надо в голове.
610 1241678
>>41659
Не выйду, в ассемблере же разобрался
611 1241722
>>41678
Ассемблер - это детская игрушка по сравнению с С++, в асм нету ничего сложного, единственные что может вызвать там затруднения - это понимание работы памяти и аккуратное ее использование, а так хули там есть инструкция есть 1-3 операнда, которая она принимает, сам по себе язык очень примитивный, а вот С++ это пиздец, кроме того же понимания работы памяти, там надо понимать и знать еще кучу вещей, кучу разных нюансов, знать кучу различных подводных камней.
Поверь мне, я знаю и х86 асм и плюсы уже 10 лет и то я не могу сказать про себя что я гуру в плюсах, до сих пор иногда нахожу вещи в них, которые я не знал или не понимал.
612 1241728
>>41722
Да это то все понятно, я к тому, что трудности меня не пугают. Да и дрочу я на си, еще на 2 курсе как узнал об языке, так и влюбился
Все можно гуглить, все можно смотреть в справочниках
Мне интересно, я стану богом со связкой python и cpp?
613 1241729
>>41728
А что есть бог для тебя? В некоторых конторах без знания определённых областей матана ты будешь делать сосамба писюрелла.
614 1241730
>>41728
Да как вы заебали. Выучу - стану богом. Калькуляторов. Язык это просто детский лепет. 95% нужной инфы не программирование. А дискретная математика, теория информации, линейная алгебра, матан, статистика, теория вероятностей, алгоритмы, структуры данных, протоколы. В зависимости от области применения. Вот мне ебучию криптографию и телекоммуникационную начинку побоку начем писать. Хоть да яваскрипте, только оно не влезет и памяти не хватит. В последнюю очередь мне были важны нюасы языка, а вот статистические данные и вероятностная модель в первую
615 1241731
>>41729
Дак я и не буду лезть туда, где супер мега матан, я прекрасно знаю свои возможности, а вернее свою лень
616 1241732
>>41730
Ты еблан, пруфов не будет
617 1241733
>>41732
Основную теорему теории информации хоть назовешь, умник?
618 1241734
>>41731
Ну тогда будешь формошлёпить на qt и пилить автоматизацию сборки/тестирования на python.
619 1241735
>>41733
Кодирование источника. А что ты подучишь с моего ответа? Всего лишь потешишь свое самолюбие
620 1241736
>>41731
Тогда зачем тебе плюсы?
621 1241737
>>41734
Че так жестко? Можно много крутых проектов сделать не знаб глубин матана, а если прямо прижмет, то всякие стаки, хабы и просто f9 try наше все
622 1241738
>>41736
А знаешь, я не знаю. Ну сервер написать на нем, всякую дрянь типа шифровальщиков, хуков. Язык многогранен и он не только для решения " в чем смысл жизни? -7"
Или как там было, в теории большого взрыва?
623 1241739
>>41735
Просто понять, слышал человек что-то про теорию связи или нет
>>41738
Этого говна и так навалом. И проще это сделать не на плюсах. А за шифровальщик и присесть можно
624 1241742
>>41739
Теорию информации конечно. Теория электросвязи отдельный пиздец. Быстрофикс
625 1241744
>>41739
Бро, я не знаю этой теории, но щас зайду в гугл и ознакомлюсь.
А почему бы и не на си это писать? На питоне тоже можно, я и писал на нем, но доверять всяким py2exe это пиздец и объем файла становиться пиздец огромным из-за зашивания в ехе интерпретатора py
626 1241745
>>41739
А да, на си я собираюсь читы для игр писать и инжекторы.
627 1241748
>>41744
Ну ознакомишься. А вот полноценную начинку цифрового тракта по всем 7 уровням модели osi написать после ознакомления не сможешь. И выдрочив весь стандарт тоже не сможешь. И обосновать, почему надо именно так не сможешь. Суть в этом. Есть много областей, где знания только языка недостаточно.
>>41745
Ну вот и ответил. А то ну не знаю, ну прост, шоб было))) тогда да, плюсы и архитектура ос. Может быть ещё сети
628 1241749
>>41748
Osi знаю, как же блядь заебало писать на парах про эту хуету, если надо будет всегда конспекты открыты.
Да и зачем мне все это знать на старте, все приходит с опытом, кругозор увеличивается И так далее итп
629 1241751
>>41749
Ну напишешь ты на листочки с прикладного по физический. И после этого электрические сигналы магическим образом превратятся в картинку? Разве что большого протонного хуя. Тут не опыт, а цос, тэс, ти и тервер сразу нужны, а не постепенно.
630 1241752
>>41751

>На листочке уровни с прикладного по физический

631 1241753
>>41751
Я так то учился на компьютерных системах и комплексах, есть понимание как чаго почему. Диплом сдал на 5, на защите хуярили прямо
Электротехника аппает невероятно в этом
632 1241755
>>41753
Ну тогда понимаешь, что это с кодом никак не связано. И таких областей достаточно
633 1241756
>>41755
Да, но для себя я выбираю именно то, что можно делать программно. Хватит с меня всей поеботы, хватило за 4 года, хоть и было интересно
634 1241766
>>41730
Да все в рот ебали тебя и твои теории автоматов.
Нормальные парни пишут на React и Node, попивают крафтовое пивко в барах, и носят андеркаты, добираясь на работу на гироскутере, пока такие чмошники, как ты стоят в сторонке и молча завидуют.
635 1241776
Допустим, у меня есть некая последовательность функций, которые нужно вызвать, но при этом как только любая из них вернёт false, дальше идти не надо.
Есть ли какой-то красивый способ такое организовать, кроме оборачивания каждого вызова в if(!funcN()){return;} ?
636 1241864
>>41776
func1() && func2() && ... && funcN();
Если хочется, можно еще показать, что возвращаемое значение не нужно.
(void)( func1() && ... );
637 1241959
>>41776
тебе нужны rangesv3
638 1241970
[code]
Бля почему С++ такой ущербный язык, что Foo f(&i) вызывает конструктор по ссылке из-за того, что он не может неявно скастовать int в const int
[/code]

https://ideone.com/L1rcW8
639 1242000
>>41970
Што?
640 1242011
>>42000
Я говорю почему С++ такой ущербный язык, что Foo f(&i) вызывает конструктор по ссылке из-за того, что он не может неявно скастовать указатель на int в константный указатель на int.

Алсо, по ссылке код уже пофикшеный, но стоит только убрать enable_if и все пойдет по пизде.
641 1242034
>>42011

>он не может неявно скастовать указатель на int в константный указатель на int.


Он всё может. Просто байнд к ссылке лучше, чем qualification conversion
642 1242040
>>42034
О том и речь. Приходится ебошить костыли и ублажать компилятор, чтоб он смог выбрать правильную перегрузку.
643 1242048
>>42040
И чем она правильнее? Передача массивов с enable_if хреновее, например.
644 1242055
>>42048

>Передача массивов с enable_if хреновее, например.


Обоснуй
645 1242061
>>42055
Обосновал тебе за щёку.
646 1242067
>>42061

>Манятеоретик слился


Ясно
647 1242069
>>42067
Слился горячей струёй тебе за щёку.
648 1242086
>>42069
Ты из вкатавальщиков-тред протек? Вот и пиздуй туда.
649 1242087
>>42086
Судя по твоим нулевым знаниям overload resolution ты протёк из ньюфаг-треда.
650 1242099
>>42087
Я из гугла тоже могу копипастить в тред типа ебать я эксперт. Ведь ты именно так и сделал, загуглил вопрос и пришел сюда кукарекнул с ебать видом эксперта, а потом, когда я попросил тебя обосновать конкретную вещь, ты тут же слился, ибо сам нихуя в этом не понимаешь.

/обоссан
651 1242355
>>41499
static constexpr inline noexcept
Но Холмс, зачем?
Это должно быть на рефлексе как правило хорошего тона или тут есть какой-то смысл именно для этой задачи?
652 1242362
Такая байда хоть где-то применяется?
https://www.justsoftwaresolutions.co.uk/cplusplus/shared-ptr-secret-constructor.html
653 1242439
Стандарт языка С++ содержит сколько страниц? Я за все время учебы в институте столько страниц не выучил.

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

В общем мир окончательно рпзделился на тех, кто успел выучить C++, пока он был относительно простым и тех, кто не выучит его никогда!
654 1242558
>>42439
Стандарт не надо читать. Достаточно знать некий сабсет и бест практисы
monkey.png153 Кб, 600x303
655 1242706
>>42558

>Стандарт не надо читать. Достаточно знать некий сабсет и бест практисы

656 1242722
>>42706
Сам то читал его, постер картиночек?
Может ты даже знаешь, что на самом isocpp написано, что стандарт не является средством для изучения языка и тд?
657 1242726
>>42722
Читал.
658 1242735
>>41136
Спасибо за подсказку! Анон, надеюсь ты еще здесь...

В безликий перевожу, потому что каждая ячейка 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, получается написан... И много выходит повторяющегося кода.
658 1242735
>>41136
Спасибо за подсказку! Анон, надеюсь ты еще здесь...

В безликий перевожу, потому что каждая ячейка 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, получается написан... И много выходит повторяющегося кода.
image.png1,4 Мб, 1280x720
659 1242745
>>30522 (OP)
Сап /pr/, вкатывальщик 16 лвла ищет книгу чтоб не было много ебли с основами программирования
Я знаю си и питон, шарю в байты хуяйты и тд, какую книгу мне читать ?
Пикрандом
660 1242752
>>42745
Ты куда вкатываться то собрался? Чтение ради чтения пустая трата времени.
661 1242754
>>42752
В С++
Хачю работать штобы 20к грывень в месяц
Хочу разобраться как работает язык, стандартные библиотеки и какойта фреймворк чтоб на хлеб с маслом хватало Я просто люблю программирование
662 1242764
>>42754

> Хочу разобраться как работает язык


Страуструп в треде, все в std
663 1242767
>>42745
Вы блять вообще шапку читаете в треде?
Там блять целая простыня с книгами и подробно разжованно с чего начинать и куда двигаться
664 1242771
>>42754

>Я просто люблю программирование


Больше похоже, что ты читать любишь. Ну тип нормальная мотивация - я хочу делать то-то и то-то (и для этого мне нужен c++), а не наоборот.
665 1242796
>>42771
Я хочу программировать шоб в кайф было, и для этого мне нужен коммон лисп, но я его не осилил из-за отсутствия опыта. Решил выучить C++ для поднятия скилла в программировании. Потом уже начну учить лиспы
Вот написал такой и понял что я долбоеб и не могу сформулировать свою мысль нормально. Ну ладно
666 1242809
>>42735
Тебе может на полиморфизм глянуть? Виртуальные функции там и всё такое. Если твои регистры и прочие наследуют от Device'а, в интерфейсе которого есть нужные тебе read, write и т.д., то и не нужны никакие касты. Храни массив указателей на Device (записывая туда адреса объектов твоих сабклассов), а потом просто вызывай space[addr]->read(), который вызовет нужный метод у настоящего объекта.

Иначе у тебя фигня какая-то получается, если всюду придётся городить свитчи с непересекающимся кодом.
qt 667 1242905
Как вкатиться в qt?
Реквестирую книги/курсы\ролики на ютубе.
668 1242916
>>42905
Макс Шлее
669 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 никак не инициализируется, чому так?
669 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 никак не инициализируется, чому так?
670 1243168
Перекот пилите уже, тред утоп.
671 1243170
>>43090
1. При чем тут чисто виртуальная функция?
2. Имена переменных просто заебись нет
2. t = set_t(const T& _t); - что это за хуета?
3. T examp::set_t(const T& t)
{
t = _t; <----- константной переменной присваиваешь значение, как так-то?
return t;
};
Короче, я нихуя не понял.
672 1243172
>>42809
Спасибо, анон! Почитаю про полиморфизм
673 1243178
>>42362
Да.
674 1243182
>>43090
Это особый тип извращенства, что ли, использовать сеттер внутри самого класса?

Покажи целиком код, где что-то не работает, желательно на repl'е или ideone'е.
676 1243320
>>42355
именно для этой не нужен, за статик сорри, копировал из своего говнокода, там это был публичный метод класса.constexpr сам знаешь зачем. inline - потому что раньше пихал его везде и страдал синдромом forceinline'а, просто осталось. noexcept вроде как ускоряет время компиляции (хотя я понимаю, что это ничтожнофункция никакого прироста не даст)
677 1243356
>>43320
Тогда, если подправить еще пару мелочей, должно быть так?

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

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

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

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

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

Где я обосрался?
679 1243478
>>43445
В тестах ты не инициализируешь start
680 1243621
>>43478
Блин, точно, хреново скопировал. Спасибо.
681 1243664
>>43356
написав constexpr, при известных на этапе компиляции значениях, функция выполнится на этапе компиляции

т.е. написав где-то (к примеру) if(IsPowerOf2(5)), компилятор выполнит функцию и на выходе будет if(false). Как-то так
682 1243702
>>43356
Я сам себе отвечу шикарным примером. Вдруг и другим пригодится:

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

Как есть сейчас, можно использовать для, например, int array_of_size[sum<1,-2,3>()]; // и всё компилируется
Стоит убрать constexpr, пойдут ошибки компиляции.
Хотя функция-то и так и так возвращает значение во время компиляции. Непонятно, зачем еще от пользователя какие-то словечки. Но факт остается фактом, так это работает.
683 1243909
>>33140
Sigmentation fault
684 1244137
>>33140
Значение оператора sizeof() для указателя на функцию? Как и для любого другого указателя.

Соответственно, его инкремент даст тебе на современных домашних машинах вторые 8 байт, считая от нулевого байта функции. Скорее всего они будут указывать в случайные код / данные функции, но если функция ну очень короткая то хызы, тогда они могут указывать бог знает куда.
Тред утонул или удален.
Это копия, сохраненная 16 сентября 2018 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски