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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
2 1263371
Зачем нужны виртуальные методы?
4 1263383
>>63371
Если знаешь си, то есть упрощённое объяснение: виртуальные методы для класса хранятся в специальной структуре с указателями на функции (vtable), которая одна на класс. То есть функция вызывается не напрямую, а косвенно. Это позволяет делать такую штуку, как полиморфизм.
sage 5 1263384
>>63368 (OP)
Нет петуха на оппике. Не канон.
6 1263648
есть вектор интов. нужно создать вектор даблов сконвертировав инты в даблы.

Как в одну строчку всё это сконвертить?
9 1263704
>>63368 (OP)
Привет аноны. На связи кун 19 лет. Учу c# из-за unity и для запасного плана, если придется вкатываться во что-то серьезное учу c++. Первое время охреневал от синтаксиса c++ и как он разница с с#, но со временем свыкся ибо похожи, как по мне.

Скоро окончу шарагу и пойду учится на информационную инженерию из-за того что нравятся реализовать идеи или мысли в "реальные" объекты, сущности, почти чувствовать себя богом. Из-за этого начал изучать unity, а потом и c++.

Хотел спросить:
Стоит ли выкатываться из уютного c# в жестокий с++.

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

И стоит с моими фантазиями выбрать именно этот факультет.

Ещё хотел спросить зачем писать
std::cout если можно объявить namespace std? Это просто как один из примеров.

И хотел спросить где я обосрался и как скоро мои фантазии о программировании превратятся в крах. И какое будущее ждет с++ и может с#

Хотелось бы ещё получить пару советов для начинающего.

Заранее спасибо.
10 1263725
>>63704

> Стоит ли выкатываться из уютного c# в жестокий с++


Надо делать то, что тебе нравится. И шарп и кресты востребованы на рынке.

> Даст ли мне высшее образование то что я не смогу получить, выучить?


Высшее образование - трата времени. Получать придется, если хочешь сьебать с РФии, но знаний оно никаких не даст. Исключение МГУ- МГТУ и прочие топ вузы.

> Ещё хотел спросить зачем писать


std::cout если можно объявить namespace std? Это просто как один из примеров.
https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice

> И какое будущее ждет с++ и может с#


C++ точно ждет светлое будущее, про шарп не заню, но Майки его точно не бросят.

> Хотелось бы ещё получить пару советов для начинающего.


Учи английский язык, ежедневно программируй, читай книги, смотри конференции, не читай треды неудачников а-ля "МЫ ВАМ ПИРИЗВОНИМ", попробуй попасть в Яндекс на старте карьеры, очень многому научишься.
image.png56 Кб, 605x212
11 1263737
12 1263742
>>63725

>C++ точно ждет светлое будущее


Если из него всё легаси говно вычистят и сократят язык до смысла, то может и ждёт. Ну а пока c++ лишь теряет свои ниши.
original-60-1.jpg229 Кб, 655x442
13 1263744
>>63725

>Высшее образование - трата времени. Получать придется, если хочешь сьебать с РФии, но знаний оно никаких не даст. Исключение МГУ- МГТУ и прочие топ вузы.



А можно вот тут поподробнее?

Сам недоучился. Уже 7 лет как работаю недопрогроммистом 1С, в котором знаю достаточно много. При этом хоть в каждой вакансии и пишут высшее/неоконченное, но в большинстве контор, думаю, на это не смотрят. Только в гос конторах. Так вот знаю в 1С достаточно много, поэтому считаю что для поиска работы мне хватит опыта вместо корочки.

Суть в том что 1С заебал и хочу перекатиться в С++. Вариантов устроиться стажером без вышки, видимо, еще меньше
14 1263747
>>63744
Единственное зачем мне пригодилась вышка — отдельный порядок съеба из рашки.
15 1263755
>>63744
У меня нигде вышку не спрашивали, кроме командировки в Швецию. Т.е. мне пригодилась - большей части людей точно не пригодится.

Если сомневаешься - найди дистанционное обучение в любом гос-вузе (я закончил такую хуйню в СибГУТИ), и просто плати профессиональным делателям заданий и потом купи любой диплом.
16 1263773
>>63755
думал об этом раньше. Но потом понял что в 1С я и так устроюсь благодаря опыту.
А если пойду в С++ это будет такой даунгрейд по ЗП что не до этого будет
17 1263784
>>63773
Ты понимаешь что в среде программистов ты дно пишушее на хуево переведенном на русский вижуал бейсике?
18 1263791
>>63784
У нас в городе 1Сники максимум 60к получают. Ну, кроме начальства.

Хотя вкатывальщик в cpp больше 30к не получит тоже
19 1263961
Могу скинуть вам сюда вроде неплохую методичку по C++ из моего вузика для начинающих. Стоит её пиздить и заливать?
20 1263967
>>63784
Именно из-за этого и хочу съебать. Ну и по зп уже потолок близко, хоть и ДС.
Собственно, я это знал еще до того как увидел 1с,так как изучал с++ ещё со школы. Но надо было куда то устраиваться работать, стажёром с++ тогда не нашел вакансию. Может плохо и мало искал. Думал, посижу пол годика поизучаю с++. Но было слишком много нового по работе, стало не до этого. Так прошло 7 лет.
Думаю, если написать в резюме "работал в 1с 7 лет" так же и скажут как ты написал
21 1263969
>>63967
А почему кресты? Ты вряд ли любишь облизывать каждый байт, чем тебе JS не вкатывает?
22 1263971
>>63969
Грворю же, изучал с++ еще со школы. Хотя я тогда больше в opengl ударился, с++ толком и не изучал.
Не хочу в веб
23 1263972
>>63971
Лол, я на работе пишу узкие части веб приложения. Велком ту зы клаб, пэл
24 1263978
>>63972
На пюсах то? Можешь показать рабочий код.
Вообще меня очень интересует как происходит разработка такая реальная на плюсах. Как объединяется код разных разработчиков и тд.
На плюсах видел только или свой код иди движки quake doom3.
25 1263986
>>63978
Ну как, мне нельзя :З

А объединять можно по разному. Есть такая штука как CGI(Common Gateway Interface). Её обычно юзают когда пишут прошивки для всяких роутеров или других похожих девайсов в с веб интерфейсом. А в самом интернете считается устаревшей.

Можно вызывать написанную на крестах библиотеку из node.js
26 1264033
>>63967
Братишка, учили или уже сразу раст, или хаскель.
27 1264037
>>63961
Давай
28 1264045
>>63368 (OP)
Возникли вопросы насчет русского языка в консоли.
1) Что конкретно делает setlocale?
2) Понял, что кодировка файла с кодом должна совпадать с кодировкой консоли, поэтому использовал SetConsoleOutputCP() и SetConsoleCP(). Попытался установить значение 65001, сохранив файл в кодировке UTF-8. Вывод работал, а вот ввод — нет. Почему?
3) Следует ли мне, исходя из предыдущего пункта, сохранять код в стандартной кодировке консоли Windows (866), или я все же могу сохранить файл в кодировке UTF-8, а в консоли использовать другую кодировку?
Как-то хуево сформулировал вопросы =/
29 1264047
>>64045
Братишка, просто вкатывайся в раст. Там тебе не нужно будет думать о таком говне.
30 1264048
>>64047
Как-то попытался вкатиться. Хотел установить библиотеку random, но ничего не получил, кроме бесконечной загрузки. В итоге забил, хех.
31 1264050
>>64048
Один раз ставишь

> cargo install cargo-edit



Потом в любом проекте:

> cargo add rand



Напомни, как там в крестах либы ставятся?
32 1264051
>>64047
>>64048
А вообще, я хочу разобраться именно с C++. Хочу ебаться с указателями, хуятелями и т.п.
33 1264053
>>64051
Хочешь ебаться с указателями, разберись с Си. Поймешь что ебаться с ними совершенно ненужно. Впрочем, если очень хочется ебаться с указателями, волшебный мир unsafe & undefined behaviour ждет тебя.

Современные кресты пытаются сделать все, чтобы ты с этими самым хуятелями не соприкасался.
34 1264056
>>64050
Cargo, насколько я помню, предполагает систему проектов. Не люблю такое. Мне больше нравится gcc файл1 файл2 файл3 -o вывод -разные -параметры, чем cargo соберимнепроектплеес.
35 1264059
>>64056
Тебе никто не запрещает ебаться с

> rustc файл1


Просто это настолько глупо в 2018

> cargo new fuck


> cd fuck


> cargo run


Это работает настолько просто и прозрачно (просто открой Cargo.toml), что совершенно неясно почему можно хотеть делать то же самое руками.
36 1264067
>>64059
Я хочу поебаться с этим как минимум для того, чтобы понять, как это работает, а не надеяться на то, что cargo сделает все за меня. Понятно, что если ты работаешь над большим проектом, лучше использовать подобное упрощение, которое организовывает проект за тебя. Но нельзя, обучаясь программированию, пропускать такие моменты, в этом нужно обязательно разобраться, по-моему. Передо мной не стоит цели научиться работать с огромными проектами, чтобы потом зарабатывать 300кк в секунду. Я хочу понять все тонкости C/C++, в том числе и указатели, которые, как ты сказал, сейчас практически не используются.
2018-09-14-1129591875x367scrot.png93 Кб, 1875x367
37 1264068
>>64067
Ну и кто тебе мешает?
38 1264073
>>64068
Так я не спорю с тем, что с rust можно ебаться таким же раком. Я это к тому, что твое

> Просто это настолько глупо в 2018


это не совсем верно, если речь идет об обучении. Я много хорошего слышал про Rust, но разобраться хочу с проверенным временем C++.
39 1264076
>>64073
С фортраном разберись. Она гораздо более проверенный временем.
40 1264084
>>64076

> C++ тред


> Помогите разобраться с C++


> Лучше вкатись в раст


> Лучше вкатись в фортран

41 1264099
>>63986
Мне вот еще интересно, как разрабатывают на с++ под всякое железо, микропроцы и прочее? Я понимаю под винду или линух, там есть свой компилятор, свои библиотеки. А как это там?
42 1264104
>>64045
Пиздец вендопроблемы.
43 1264105
>>64053

>unsafe behaviour



Чё это за новое слово в C?
45 1264112
Заливаю вам ту методичку, которую обещал
>>63961
>>64037

https://yadi.sk/i/vDXZ5QBh8VZfSQ
https://yadi.sk/i/vDXZ5QBh8VZfSQ
https://yadi.sk/i/vDXZ5QBh8VZfSQ
46 1264113
>>64112
Заодно поясните- это хлам, который писали совковые преподы, знающие C++ не лучше чем школьник 9 класса, или знающие люди?
47 1264114
>>64113
Ничего криминального, вроде. Но и ничего особенного. Обычная методичка усть-пиздюйского института. conio.h, _getch(), как в консоли кириллицей в винде писать и прочие очень важные вещи.
48 1264117
>>64114
Вообще- вуз достаточно престижный и хорошо финансируемый
49 1264121
>>64117

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


> вуз достаточно престижный


Мда.
50 1264126
>>64113
Выглядит как методичка для уроков по информатике в обычной церковно-приходской школе.
Код для вычислений всяких выражений написан по принципу: как написана формула так и в коде наваляем (один и тот же sin/cos вычисляется по много раз, куча лишних операций умножения/деления, которые легко заменяются константами).
51 1264139
>>64126

>один и тот же sin/cos вычисляется по много раз


Нормальный компилятор соптимизирует.
А читаемость должна быть.

Впрочем, с тем, что методичка для цирково-приходской школы я на 100% согласен.
52 1264144
>>64139

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


Пруф в студию.
53 1264146
>>64144
Хуюф.
54 1264156
>>64121
Если тебе кажется что в усть-залупинский вуз станут впихивать 22 миллиона, то сочувствую.

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


Это не значит что там учителей информатики готовят. Не будь дебилом.
55 1264157
>>64126

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


>>64139

>Впрочем, с тем, что методичка для цирково-приходской школы я на 100% согласен.



Ладно. Понял.
56 1264160
>>64156
Да запихни в усть-залупинский хоть 22 трлн. — MIT он не станет.
57 1264181
//QT
Анон, а как правильно завершать работу программы при событии выключения пеки, если у меня QT?
Я ловлю WM_QUERYENDSESSION при помощи nativeEventFilter, отвечаю false и начинаю корректное завершение программы
Затем по логам идёт всё нормально, за исключением того что WM_QUERYENDSESSION мне больше не приходит.
Но приходит WM_ENDSESSION, которому я тоже отвечаю false и пытаюсь завершиться.
Чяднт? Почему у меня не отвечается false? В QT это как-то нужно по другому обрабатывать?
58 1264182
>>64181
Всё, понял, спасибо.
59 1264184
Перешёл на 3 курс, думал, что углублюсь в pythton и машинное обучение, но препод по численным методам так не считает. Есть необходимость строить графики на c++ (заставили в универе, да). Каким способом это быстрей и удобней всего сделать? Использовать окошки обязательно?
60 1264185
>>64184
gnuplot
61 1264188
>>64182
А, нет, не понял

>bool QAbstractNativeEventFilter::nativeEventFilter(const QByteArray &eventType, void message, long result)


>On Windows, eventType is set to "windows_generic_MSG" for messages sent to toplevel windows, and "windows_dispatcher_MSG" for system-wide messages such as messages from a registered hot key. In both cases, the message can be casted to a MSG pointer. The result pointer is only used on Windows, and corresponds to the LRESULT pointer.


Пишу
*res = false;
фейл

Пишу
long fl = 0;
res = &fl;
фейл.

Как вернуть LRESULT = false?
62 1264189
>>64160
Ну и он не усть залупинский. Екатеринбург это всё-таки город- милионник.
Короче проехали. Нахуй этот срач нужен
63 1264211
>>63653
Ты ошибся, дружок-пирожок, клешнерукий тред двумя экранами ниже.

https://ideone.com/dm5nYd
64 1264214
>>64211
Анон просил в одну строку, а не в две.
Я прист ржавого храма, пришел паству совращать
65 1264215
>>64045

>кодировка файла с кодом должна совпадать с кодировкой консоли


Нет, сконпелируй с -finput-charset=utf8 -fexec-charset=cp866 или как-то так.
66 1264222
>>63725

> В яндекс


А если попробовать в Сбербанк или похожие структуры? Им вроде нужны молодые умы. кроме Тинькофф. Просто для меня репутация Яндекса не очень
67 1264228
>>63648
doubles.assign(ints.begin(),ints.end());
68 1264237
>>64185
Нельзя использовать другие программные пакеты. Только c++ и всякие его библиотеки
69 1264243
>>64144
https://gcc.godbolt.org/z/ckOb7s

>call sincos



Костыли нужны, чтобы он сразу в контсэкспре все не посчитал

мимо-другой-анон
70 1264244
>>64222
Я в душе ниибу, что такое репутация-для-тебя. А вот научиться в яндексе работать над сложными проектами и получить отличную запись в резюме - это клево.
15362437233190.png642 Кб, 970x330
71 1264272
>>64184
MFC + DirectX
72 1264285
>>64215
Спасибо большое, полезная штука. -finput отвечает за кодировку файла, а -fexec — за кодировку, используемую в самом exe, так?
74 1264325
>>64285
Всё так.
sage 75 1264431
>>63368 (OP)
Где петух? Под стать треду.
76 1264440
>>64431
Мы тебя ждали
Это ты питух ))))))
cppsenior.jpg65 Кб, 454x500
77 1264441
>>64431
Тут недавно синёр из топовой конторы заходил и всех петухов разогнал.
78 1264448
Вкатился с proof of concept
https://git.movepoint.su/anton/iv
79 1264681
>>64448
релизить буду переписанное вплоть до другого контейнера для текста, еще пижже
80 1264789
нужно вывести несколько строк в файл. после каждой веведеной строки делать переход на новую строку. но не делать после последней. сечас я просто пробегаюсь фором по вектору строк и ставлю перенос троки после каждой. как в ofstream запретить ввывод временно. удалить последний напечатаный символ. и только после этого смыть все символы из буфера в файл?
81 1264805
>>64448

> The text is stored in an augmented binary search tree, one glyph per node.



Небро, глиф — это графическое изображение буков. Одна и та же буква A может изображаться разными глифами, в зависимости от текущего шрифта.
Ты точно глифы хранишь?

Ну я про код я уже не буду писать. Он не менее безграмотно написан, чем ридми.
82 1264832
>>64805
лан, code point
83 1264848
Аноны чем заполнять свое портфолио джуну на хабе?
84 1264906
>>64848
Сочини санэт. Эйчары любяць санэты.
85 1264926
>>64848
Как ни странно, но работающими программами.
86 1264935
>>64926
Хах. вот если я заполню свой хаб одними лишь типами сортировок, то как бы и кому я нужен буду?
87 1264936
>>64935
Сделай простенькие игры.
88 1265013
>>63368 (OP)
Пишу на плюсах высоконагруженные системы, поставил сервак, закодил бекенд для своего вуза. Впендярил неплохую туда еще верстку. Мне предлагают оставаться после магистратуры и учить недостудентов. Стоит ли?

Написал уже 4-5 клиентов двача, все летают как шустренькие, думаю выезжать из деревни и стремиться в большие города. Что скажете?
89 1265035
Гайс, подскажите, как правильно инициализировать массив и передавать указатель на двумерный массив из мейна в функцию ? Заранее аригато.
90 1265051
>>65035
String str = new String() ?
91 1265058
https://pastebin.com/unQ3PU0U

Мне нужно передавать данные из структуры в мейн, из мейна в функцию просто так надо. На 37ой строчке нереализуемая передача массива в функцию. Я так понимаю, что это можно сделать с помощью указателя, но не въебываю - как.
93 1265062
>>65059
Иди нахуй со своими указателями. Я в вузе их не понял, с тех пор программирую под джаву. С++ говно, а не язык.
94 1265073
>>65058

>tr.points[3][3] = { x, y };


Что здесь происходит?

>is_true(tr.points[3][3], isPoint);


и тут?
95 1265075
>>65073
Хуйня происходит, пофиксил и сделол. Там просто рандомный код накидан для примера. Оказалось, довольно просто, лол.
15305211689541.png144 Кб, 427x700
96 1265076
>>65062
На С++ написаны операционные системы а также виртуальные машины и рантаймы для всех управляемых языков, в том числе и джавы.

На джаве не написано нихуя, кроме 20-мегабайтных сайтов, которые прогружаются минуту.

Говно язык все равно С++
97 1265077
>>65076

> На джаве не написано нихуя


А как же ведроид?
98 1265079
>>65062
А мог бы как белый человек использовать ссылки.
99 1265103
>>65076
Эти вечные срачи.

У меня андройд, а не сайты. Изучать спринг хуинг и прочее говно оставляю легаси рабам. Вообще думаю закончить пару проектов писать и начать перебираться на иос.
qqq.jpg9 Кб, 480x360
100 1265133
>>65013

>Что скажете?


Что товарищ Ленин хочет видеть вас в родном кишлаке.
101 1265161
>>65013
Ну я думаю, что если ты останешься то в профессиональном плане будешь развиваться лучше чем в ДСе в каком-нибудь интерпрайзе. Только помни одно, как сказал один человек, либо ты преподаёшь, либо кодишь, иного не дано. Так что хлопочи себе место лаборанта и развивайся как прогер+матем.
1537085217688-g.png31 Кб, 774x738
102 1265201
Что тут происходит? Что за Integers()?
103 1265219
>>65201

>Что тут происходит?


Кто-то установил на твой компьютер самый хуёвый шрифт во всём интернете а также библиотеку для функционального пердолинга.
104 1265229
>>65219
А что за библиотека?
105 1265233
>>65229
Один из нестандартных инклюдов, скорее всего range.
106 1265289
Как в mingw-w64 скомпилить 32 битное приложение? -m32 ключ, а что еще? ошибку ебашит
108 1265300
>>65294

> 2k!8


> emacs

109 1265301
>>65294
все верно mingw-w64-install.exe ? что-то не вижу таких ярлыков у себя, есть x64
110 1265304
>>65301
Скрин взял в гугле. Там через MSYS ставилось.

А если архитектуру выбрать другую?
Screenshot.2.png4 Кб, 238x102
112 1265308
>>65304
тоже самое, кажется там онли 64 бита
113 1265310
>>65308

>C:/Program Files (x86)/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x


86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -
lkernel32
114 1265311
>>65310
ХЗ знает.
115 1265314
разобрался, i686 нужно было ставить для x86 и x86_64 для 64 бит.
116 1265515
Доброго всем дня.
Я понимаю, но хочу уточнить у опытных спецов.
(♦ означает звёздочку, она тут не печатается)
Вот смотрите, есть у нас вектор std::vector<T> v(15);
После такого объявления v.size() вернет 15, а v.capacity() вернет >= 15.
Допустим, мы его чем-то заполнили и замутили пару итераторов auto iter_a = v.begin(); auto iter_b = v.end()-5;
А еще сделали пару указателей T♦ ptr_a = &v[0]; T♦ ptr_b = &v[10];

Теперь допустим, начинается реаллокация. И отсюда несколько вариантов, что бывает.
— Первый. Я пишу v.resize(20); Оба итератора и оба указателя могут инвалидироваться. То есть, возможно там подряд и была память на увеличение вектора, но полагаться на это — UB и вообще нельзя.
— Второй. Я пишу v.resize(10); iter_a и ptr_a остаются гарантированно валидными, а iter_b и ptr_b инвалидизируются.
— Третий. Я пишу v.reserve(20); По сути происходит то же, что и в первом варианте. Возможно, вектор реаллоцируется и элементы всем цыганским табором переезжают на новое место. Депеши по старым адресам идут в никуда.
— Четвертый. Я пишу v.reserve(4); Это меньше исходного размера и ничего не происходит. Указатели с итераторами остаются рабочими, соответственно.
— Джокер. Перед заполнением вектора вызвали v.reserve(20), тогда все вышеизложенные варианты сохраняют валидными оба итератора и оба указателя.

Я правильно всё понимаю?
117 1265528
>>65515
ВРоде правильно.
118 1265648
Аноны прочитав про с++. Я понял, что он не прощает ошибок, требует выбор оптимального подхода к реализации проекта, нужно трястись за каждый байт памяти, думать трижды чем делать, заранее планировать всю архитектуру. Но в этом и вся прелесть языка, что она учить тебя правильному техническому мышлению или я где-то обосрался?
119 1265654
>>65648
он учит тебя думать о ненужных вещах, деталях. в большинстве случаев этот язык является не выбором, а необходимостью. С является таковым еще больше
120 1265655
>>65648
Не совсем так. Оптимального подхода никто не требует. Можешь хоть пузырьком сортировать и ебашить четырехэтажные иерархии виртуального наследования.
121 1265674
>>65654
Но как я понял, благодаря этому будет вырисовываться красивая архитектура кода, ведь не зря же столько инструментов есть
122 1265677
>>65648
Это выебщики пиздят. На стл, бусте и умных поинтерах можно не менее безопасно чем на жабе писать.
И все равно быстрее будет.
Но вот если решил прям супер оптимально написать, тогда можно и сегфолт в ебло словить и дедлок итд.
123 1265678
>>65655
Если есть голова на плечах и желание двигаться дальше, ты будешь изучать инструментарий c++ и охуевать от его разнообразия, но разобравшись ты уже будешь подходить к разной реализации с лучшей точки, которую предлагает с++
124 1265691
>>65648

>c++


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


))
125 1265695
Возможно ли реализовать такую схему наследования?

class Pipeline
{
};

class GraphicsPipeline : public Pipeline
{
};

class ComputePipeline : public Pipeline
{
};

class DX_Pipeline : public Pipeline
{
};

class DX_GraphicsPipeline : public DX_Pipeline, public GraphicsPipeline
{
};

class DX_ComputePipeline : public DX_Pipeline, public ComputePipeline
{
};
126 1265697
>>65695
Да, только получится говно с дублированием. Гугли виртуальное множественное наследование
127 1265699
>>65697
Так я уже загуглил и уже как только не расставлял кейворд virtual, но везде возникают конфликты, помоги правильно расставить плз
128 1265702
>>65699
Схема говно, зачем именно так?
129 1265703
>>65702
Мне так видится это наследование, как бы ты посоветовал ее переделать?
130 1265704
>>65703
Тебе интерфейс или реализацию надо наследовать? Если интерфейс, то выделяйте его в абстрактные классы, если реализацию, то используй композицию
131 1265707
>>65704
Нужно наследовать интерфейс, но я не очень понял что ты имеешь ввиду. Что значит "выделяйте его в абстрактные классы"? У меня и так Pipeline, GraphicsPipeline, ComputePipeline - абстрактные, а те что с DX_ - их реализуют.
132 1265709
>>65707
Тогда зачем наследоваться от dx, если можно от абстрактного?
133 1265713
DX_Pipeline Хренит общие поля для DX_GraphicsPipeline и DX_ComputePipeline, и объект DX_Pipeline нужно потом кастить в DX_GraphicsPipeline
134 1265731
Просматривал давеча хехе.ру. Искал там вакнсии для июней. В итоге выяснил, что для java, c#, php, python, js июней вакансий в достатке, а для c/c++ вакансий раза в три меньше и зп по ним на 20% меньше. Источник исследований конечно сомнительный, но данные с него выглядят как продолжение скатывания c++ в говно.
sage 135 1265883
>>65731
Это консолидация перед взлетом.
136 1265897
>>65709
Зачем наследоваться от диффура?
137 1265930
https://www.youtube.com/playlist?list=PLgeSUiT3pydG7KchiEhjYvwkORh7TSGNi&disable_polymer=1

Смотрел кто-нибудь эти лекции?
Есть профит?
138 1265985
Гутен морген, бреш-компания.
Мне тут рекомендуют книжку Джефф Элджер. C++: Библиотека программиста.
Говорят, это основной учебник по продвинутому освоению языка C++. В шапке треда не нашел.
Что скажете?
139 1266010
>>65883
Если в отрасли не нужны молодые кадры, то она находится в состоянии рецессии с негативным прогнзом в сторону дальнейшего снижения.
image.png170 Кб, 1591x455
140 1266043
>>65985
Дебильный тон изложения, куча отсебятины типа пикрил
141 1266051
>>66043
Въебал бы автору в щи с вертухана, а затем сняв скальп сожрал на глазах его матери, которую я буду ебать его нижней челюстью.
UFi8G1MHi40[1].jpg396 Кб, 1920x1080
142 1266065
Ребята, что за хуйня? Почему я еще ничего не написал, а у меня уже 418 ошибок ?
143 1266067
>>66065
Подключи locale.h
6FmnXMtsO48[1].jpg372 Кб, 1920x1080
144 1266068
>>66067
Да вот даже так эти ошибки есть.
145 1266084
>>66065
У тебя студия без предупреждений поставилась? Ты качал было в installer'e пункт РАЗРАБОТКА КЛАССИЧЕСКИХ ПРИЛОЖЕНИЙ С++?
146 1266088
>>66084
Я там вообще все выбрал. На всякий случай, благо место на диске есть.
147 1266093
Ананас, ты когда-нибудь юзал списки (любые) или дек?
В чём их профит?
148 1266095
Сделал 2 батника для компиляции minigw 32 и 64

длл https://pastebin.com/raw/bEZ8jhHA

exe https://pastebin.com/raw/XQEF997n

нужно поменять пути на ваши
149 1266100
>>66093
Списки полезны если много вставок в середине, дек - если с краев.
150 1266103
>>66100

> Списки полезны если много вставок в середине, дек - если с краев.


Это написано в любой книжке/туторе про них.
Я имею ввиду реальное применение в своих программах. Как, например, элемент какой-то другой структуры данных.
151 1266132
>>66095
Дай рыбу.
152 1266186
>>66103
Ну вот я недавно делал кеширующий провайдер данных, был список указателей на структуры их описывающие, при обращении к ним они переносились в начало списка, при нехватке памяти удалялись с конца.
Дек вроде нигде не использовал.
Но для быстродействия на самом очень часто все делаю тупо на векторах, пусть даже в ущерб потребления памяти.
153 1266192
>>64053

>тобы ты с этими самым хуятелями не соприкасался



Как пистон?
154 1266207
Шарящие стандарт, поясните, что это значит (не перевод естественно, а с точки зрения использования)?
https://cplusplus.github.io/LWG/issue2981

Да и в целом про deduction guides хотелось бы больше инфы на русском, объясняющей тонкости (а не сухое изложение с cppreference) ну или на английском но попроще (какое нибудь how to)
155 1266222
>>66207

> Шарящие стандарт, поясните, что это значит (не перевод естественно, а с точки зрения использования)?



Ничего.
156 1266410
>>66207

> Да и в целом про deduction guides хотелось бы больше инфы на русском


Тут рассказывалось про них
https://www.youtube.com/watch?v=rJWSSWYL83U
Где-то во второй половине вроде
157 1266439
>>66051
Хуле ты не на своей доске /б/итард?
158 1266483
На собеседовании дали мне задачу. Есть вектор интов, удалить из него все нули. Я сделал это с помощью цикла, в котором использовал erase(). Сказали, всё правильно, только erase() должен вызываться 1 раз. Ещё одногруппница подсказала, что это делается с помощью erase() и remove().
Неподскажите ли оптимальный алгоритм?

И нахрена erase() делает последующий за ним итератор нерабочим?
https://ru.cppreference.com/w/cpp/container/vector/erase
159 1266492
>>66043
А там про параллельные штуки и про сетевое программирование что-то есть?
160 1266493
>>66483
Возможно, отсортировать, найти первый и последний нули и тогда уже один раз вызвать удаление?
161 1266497
>>66493
Возможно, а зачем там ремув?
162 1266502
>>66483
да, erase вызывается один раз
- https://ghostbin.com/paste/cqa5p
163 1266512
>>66502
Этот ремув, он сдвигает часть вектора после удаляемого элемента ближе к началу, тем самым перезаписывая удалаяемый элемент, так ведь?
164 1266516
>>66410

>Тут рассказывалось про них


О, спасибо
166 1266542
>>66512
remove_if сдвигает все элементы, на которых предикат возвращает false в начало и возвращает итератор указывающий на начало последовательности элементов, возврающих true
167 1266557
>>66410

> 2k18


> смотреть что-то кроме cppcon/boostcon, особенно руснявые недоконференции

Продажа своего софта. C++ Builder 168 1266595
>>63368 (OP)
Добрый день, господа программеры. Я написал небольшую утилиту, используя C++ Builder, и хочу начать её распространять за бабосики. При этом моя IDE, как это полагается, спирачена. Так вот, если я преобрету лицензию, с какими трудностями я столкнусь при попытке распространения моего софта?
Я об этом только начал задумываться и пока не знаю в какую сторону копать. Что лучше изучить в таком случае? Что там с авторскими правами и так далее?
169 1266623
>>66595
ну вродь у билдера дорогая лицензия. Хотя вроде выпустили какую-то версию билдера, аналог visual studio community edition, которая свободная и пиратить не надо, посмотри, можно ли твой проект перенести на него, авось проще будет.
170 1266637
>>66623
Да, слышал про неё. Как бы не оказалось, что она как в бесплатном Qt не собирает dll-ки. Ну а вообще, мне не обязательно нужна последняч версия. Я вообще свою на 2010-м написал, не думаю, что дороже 100к рублей выйдет. Такую сумму я более-менее смогу скопить. Просто, читал про лицензию Qt и там же месячная подписка идет. Так вот, если ты, например, за месяц подписки выдвинул в продажу продукт, то придется оформлять лиценщию на всё последующее время продаж. Поэтому и спросил про билдер, мало ли кто имел дело с распространением своего софта, сделанного на нём.
171 1266641
24 лвл, вкатываюсь в плюсы после СИ. Не поздно ли я начал вкатываться? На си писал прошивку для СТМ микроконтроллеров.
172 1266642
>>66641

> Не поздно ли я начал вкатываться?


Нет. Сам я вкатился в плюсы после C в 24 или 25.
Через год открыл для себя стандарт.
Через полгода-год начал фиксить там баги, в том числе не-editorial.
ХЗ кто там про 10 лет пишет на то, чтоб выучить C++..
173 1266643
>>66542
В канец
174 1266644
>>66637
свои длл ты сколько угодно можешь собирать, другое дело Qt и вроде как OpenSource версия наоборот, обязывает тащить все с их dll и их динамической линковкой.
175 1266704
>>66644
В общем, я это и имел в виду.
image.png6 Кб, 473x575
176 1266839
СУКА ЧЕ за хуйня

почему 1 не меньше 4
177 1266855
>>66839

>std::cout << int(a);


Вот это сделай, и поймешь.
178 1266858
>>66093

>списки (любые) или дек?


У меня ECS на велосипедном деке. Память под элементы выделяется страницами, которые хранятся в списке. Доступ к элементам по указателю, итерация по страницам. При удалении на место элемента заносится последний в деке. У каждого элемента есть айди, по которому можно найти элемент через таблицу. При перемещении элемента (на место удаленного), меняется указатель в таблице. При доступе по указателю сравниваются айди полученного элемента с айди хранящимся в ссылке, если они отличаются, то элемент ищется через таблицу, а указатель в ссылке обновляется. Получается быстрее и удобнее, чем иерархии классов с наследованием колеса от машины.
179 1266951
>>66839
Потому что надо катиться из c++ в js, а не наоборот.
180 1266995
>>66839

>char a = ' 1 '


В данном случае у тебя 1 - символ. ASCII-код которого равен 49. Вот это значение и хранится в char a. Когда ты приводишь эту переменную к int, то ничего не поменяется толком (разве что она после этого станет 4-байтовой и ты сможешь сохранять в ней значения намного больше, чем 127 при char).
Если ты хочешь исправить свой код, то убери кавычки с 1 (ну и можешь выкинуть приведение к int, хотя и с ним будет работать).
181 1267119
Салют, народы!
Нужно получить путь папки, где лежит некая .so библиотека.

Походу это можно сделать через
int dladdr(void addr, Dl_info info);

А как узнать адрес библиотеки из кода в этой самой библиотеке? Желательно без трюков с глобальными функциями.

А может это можно сделать через буст?
Есть такая штука как shared_library(const shared_library &lib)
Опять же, где взять ссылку на библиотеку?

Обычно хендлер на неё получается из функции, которая её загружает. А вот мне надо в самой библиотеке знать. Подскажите?
182 1267120
>>67119
Звёздочки полетели, но я думаю вы поймёте
183 1267251
>>66839
Что за пиздец здесь происходит ?
184 1267275
>>67119

> Походу это можно сделать через int dladdr(void addr, Dl_info info);


Я делал именно так, но не знаю, подойдёт ли это под твоё

> без трюков с глобальными функциями


void °init()
{
DL_info d;
dladdr((void °)init, &d);
return new object(d.dli_fname);
}
185 1267406
Ананас, такой вопрос.
Как часто ты юзаешь функции из algorithm?
Я имею ввиду find и все прочие.
Допустим есть пара или триплет в векторе и надо найти/изменить какое-то значение и тп.
С одной стороны для простоты хватит и цикла (тем более данных не так много), а с другой хороший тон и всё такое.
186 1267702

>QtCreator


Стоит вместе с cmake, как сделать портабл проект? Вот чтобы можно было папку перенести в любое другое место и не править пути вручную в CMakeLists.txt.user
Если я заменяю их на относительные, он при сохранении всё-равно заменяет их на абсолютные.
Нашёл упоминания про CMAKE_USE_RELATIVE_PATHS, но оно больше не работает по каким-то идейным соображениям.

Это дико неудобно, я часто перетаскиваю код между двумя компьютерами и не знаю как это нормально организовать. Хоть пиши скрипт на питоне, который нужно будет запускать после каждого переноса для фикса путей.
187 1267725
>>67702
А в чём проблема с путями?
Это, вроде как, в шиндовсе надо писать вручную путь к библиотеке, например.
image.png72 Кб, 909x326
188 1267742
>>67725
К какой библиотеке, причём тут библиотеки?
Вот у меня есть мой новый проект из одного файла на три строчки. Сейчас он на диске W и он записал абсолютные пути в свои внутренние файлы. Я переношу его на другой компьютер на диск D, а он всё-равно создаёт каталог сборки на местном диске W, хотя там он вообще никакого отношения не имеет к кодингу. В результате код и ексешники на разных дисках.

А всё что мне нужно, чтобы оно собирало проект в той же папке, где находится и CMakeLists.txt
Прописывать в конфиг не W:/code/graph/unknown, а что-то вроде ../unknown или ./unknown
189 1267743
>>67406
С парой ясен пень find или find_if прокатит. А вот с триплет (это же ты tuple имеешь в виду) даже и не знаю как организовать. Там же нужно std::get<N>(dopustim_triplet) и тогда это всё заворачивается в for от i = 0 до size и что-то с этим делать, выходит, лямбду в теле фора писать или делать функтор или функцию, короче, громоздкое что-то. Никогда их не использовал.

Кто в треде может назвать пример использования массива кортежей на практике?
190 1267753
>>67743

> А вот с триплет (это же ты tuple имеешь в виду)


Ну можно и через тапл, но я имел ввиду struct triple{ T first; U second; W thrid; } шаблонную йобу в начале опустил>

> Кто в треде может назвать пример использования массива кортежей на практике?


https://www.youtube.com/watch?v=fs6KV9iNi_U интересная штука
191 1267757
>>67702
CMakeLists.txt.user это настройки QtCreator.
Хочешь портабл проект — оставь только CMakeLists.txt, а CMakeLists.txt.user удали.
192 1267778
>>67757
Как вообще вкатиться в CMake? Я вот пробовал в точности повторить за https://cmake.org/cmake-tutorial/ но то ли у меня синдром Патау, то-ли еще в чем проблема, но не заработало.
Беда в том, что туториал ничего не показывает минимально рабочего а сразу громоздит кучу непонятной херни, в конце говорит мол, вуаля работает, а оно нихера не работает и ебись потом сам с кучей непонятной шляпы. Что делать? Есть пошаговые гайды какие?
193 1267781
>>67778
Я искал простенькие проекты на гитхабе уровня лаба1 с несколькими файлами. Собирал и запускал.
Потом исходя из своих нужд искал ещё что-то: как подключить библиотеку, как собрать с нуля что-то и тд
194 1267789
>>67757
И его каждый раз приходится удалять, а потом в иде кликать галочки. Это не очень сложно, но я себя идиотом чувствую занимаясь таким.
15331262473150.gif319 Кб, 500x495
195 1267804
Шалом. Есть три книги:
Марк Дж. Рочкинд. Программирование для Unix.
Уильям Ричард Стивенс. Unix: Взаимодействие процессов.
Уильям Ричард Стивенс. Unix: Разработка сетевых приложений.
На какую сам сядешь, на какую мать посадишь? Что вы о них можете сказать и в каком порядке их читать, если к теме только подошел и мало что понимаю?
196 1267885
>>67804
ПРи чём тут этот тред?
197 1268015
>>67753
Мои горе-доклады постят на дваче. Это успех. Про хэш-таблицу посмотри.
198 1268021
>>68015
На русских конфах не принято выкладывать слайды, как я понял.
199 1268022
>>68015
>>68021
Оооо. Надо промотать до конца видео, чтобы увидеть ссылку на слайды.
В описание её засунуть — слишком сложна.
200 1268025
>>68015

> Про хэш-таблицу посмотри.


Кажется смотрел, но частями.
Та тема не особо была интересна поэтому не вдавался в подробности.
А вот про консоль вопрос.
Ты говорил что до твоей штуки была какая-то своя поделка в которой уже никто разобраться не мог.
Вот лично у меня ассоциация "консоль с командами" это выпадающая йоба сверху из Квейка.
То есть если бы я делал подобную вещь, то ориентировался бы на это.
А как та работала?
Были ли ещё какие варианты?
201 1268041
>>68021
Видео на ютуб заливал не я

>>68025
Консоль в квейке теоретически проще, т.к. в основном в ней геттеры-сеттеры различных параметров, ну и возможность процессить команды через ;.

Как работала та - читала слово из потока, делала гигантский ИФ по поиску этого слова, потом изменяла флажок на рандомное значение а-ля 0xFAFB, читала следующие слово, и искала это слово внутри if (flag = 0xFAFB). Как было сделано автодополнение - я так и не понял, если честно. Слишком тяжело было этот ад читать, да и таски у меня были другие.

Когда нужно было добавить новую команду, я делал именно то, о чем рассказывал в докладе - копипастил похожую.
202 1268055
>>68041
Что бы ты посоветовал сделать для резюме?
Я имею ввиду какой-то проект который было бы не стыдно лол показать людям, вроде твоей консоли.
Просто когда начал смотреть, думал что нихера не пойму, но потом посмотрев исходники кроме ветвления и автодополнения, в них не стал разбираться без труда сделал своё подобие.
203 1268059
>>68055
Любой юзабельный и законченый. Настоятельно НЕ рекомендую делать игры, очень сложно, а толку мало. Лично я, когда начинал учить кресты (в 26 лет лол), писал хлам на qt, а-ля клиент для web api.

Вообще - если говорить про около-джунов, то я бы скорее не писал код, а старательно штудировал Майерса и прочие очень умные книги. И задрачивал алгоритмы на leetcode.com. Как показывает практика собеседований (я собесил больше 30 джунов), теория на данном уровне важнее практики.
204 1268062
геймдев в россии в настоящий момент - будешь делать под мобилки с вероятностью 90%
всякие фермы, кристаллики в ряд..
15330277041110.jpg61 Кб, 520x545
205 1268070
206 1268086
>>63368 (OP)
Написал count << string вместо cout << string
@
Over 9000 ошибок при компиляции
207 1268134
>>68059

> Настоятельно НЕ рекомендую делать игры, очень сложно, а толку мало


Почему?
Кажется это самый простой вариант: сделать клон какой-то и добавить от себя что-то.
208 1268140
Поясните кто-нибудь за clang. Скачал КодБлокс, скачал clang последний. В Кодблокс выбрал clang и оно нихера не собирает - нету стандартных либ. На сколько я понял - их надо качать отдельно, но при этом, вроде как, под винду их нет. В общем та ещё попа-боль. Вся надежда на шаряшего анона.
209 1268246
>>67885
Хорошо, тогда какой?
Думал, тут знают эту всю штуку.
210 1268254
>>63384
Что там забыла C#-макака?
211 1268260
>>68015

>Мои горе-доклады постят на дваче.


Ты няшный, может встретимся?
212 1268287
>>68134
В том то и дело, что кажется - на деле там очень много геморроя, если ты хочешь сделать что-то сложнее сапера или там крестиков-ноликов.

>>68260
Ну, если ты готов играть со мной в Battletoads & Double Dragon разве что.
213 1268299
>>68140
Скачай MSVC и не еби голову, серьезно
214 1268311
Псаны, приходится ли вам иногда пользоваться в своих проектах всякой lock-free хуйней? Или хуяк мьютекс туда, хуяк condition_variable сюда сойдет? Что-то меня пугают все эти memory ordering'и, да и вообще такой код очень сложно писать без ошибок.
215 1268322
>>68015

>Мои горе-доклады постят на дваче. Это успех.


А твой работодатель/коллеги знают, куда ты заходишь?
Ты задумывался над тем что будет, если они узнают?
216 1268325
>>68322
О господи, он сидит на программаче, срочно уволить и в тюрьму посадить
217 1268350
>>68287

>>Ну, если ты готов играть со мной


Конечно, милаш
218 1268422
>>68140
libc++
219 1268423
>>68325
Короля делает свита, понимаешь?
220 1268443
>>68422
написал о том, о чем не разбираюсь
не учитывать этот пост
221 1268460
>>68443

>написал о том, о чем не разбираюсь


>не учитывать этот пост


Мы обязательно учтём, что вы любите писать о том, в чём не разбираетесь.
222 1268488
>>68423
нет
223 1268533
>>68311
Смотрел как-то код lock-free очереди. Чуть крышей не поехал.
Это принципиально невозможно писать без ошибок, тесты тоже ничего не протестируют. Единственный выход – формальная верификация, которая пока сильно страдает от комбинаторного взрыва на больших программах.
224 1268584
Пишу проект приложения и есть требование установки приложения в режим паузы (заказчик хочет, чтобы как в режиме дебага - нажал на кнопочку паузы и приложение ждет твоих действий).

Приложение многотопоточное и я сильно туплю не могу сообразить как это сделать правильно. До чего смог додуматься своими силами:
- Создаем флаг паузы в основном потоке графического интерфейса;
- Передаем флаг всем потокам в момент инициазации потока как указатель, чтобы его изменение из основного потока отображалось в остальных потоках;
- Ставим проверку этого флага через каждый N функций на проверку не включил ли пользователь паузу;
- Если он его включил, флаг меняется в основном потоке, меняется в побочных потоках, проходит проверку и побочные потоки уходят в вечный цикл до тех пор пока флаг не изменится, в свою очередь основной поток продолжает работать давай пользователю взаимодействовать с графическими эелментами.

Всё правильно? Или это можно как-то сделать изящней? Или это вообще всё хуйня и работать не будет? Пишу прогу в Qt 5.
225 1268907
>>68584

> Ставим проверку этого флага через каждый N функций


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

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

По крайне мере вечный цикл - точно костыль. Просто так без необходимости твой поток десять раз в секунду забирает себе нить выполнения для проверки флага? Серьёзно? Сделай так, что дочерний поток замораживает сам себя, а разбудит его главный. Если апи для resume/suspend в стандартной библиотеке нет (почему-то не смог нагуглить за несколько минут), то сделай через WaitForSingleObject. Второй пик. Поток с вечный циклом проверки флага и Sleep(100) жгёт такты, и требует переключения потоков, а поток с WaitForSingleObject абсолютно мёртвый.
226 1268989
>>68907
Спасибо, пойду гуглить по той инфомции, что ты дал.
изображение.png14 Кб, 1075x407
227 1269012
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
srand ( time(NULL) );
cout << a+rand()%(b+1)<<" "<< a+rand()%(b+1)<<" "<< a+rand()%(b+1)<<" "<< a+rand()%(b+1)<<" "<< a+rand()%(b+1)<<" ";
}

Что не так?
228 1269020
>>69012
Ты результат то пробовал вывести?
a=29 b=30
29+rand()%31
Ты получаешь значения от 29 до 59.

Ещё при больших b у тебя это совсем неравномерное распределение будет. Про это конечно не говориться. Попробуй просто выведи 5 раз число а, шутки ради. Теоретически, нельзя лишь по результату строго утверждать что это не случайные числа.
229 1269064
>>69020
Спасибо, анон! Всё заработало.
230 1269149
Господа крестоносцы, где почитать о параллельных штуках кроме как у Страуструпа? У него есть что-то, но мне недостаточно и слишком комкано, хочу материала где более разжевывают что куда.
231 1269189
>>69149
Вильямс
232 1269213
>>69189
Нирикаминдую.
233 1269216
>>69213
ничего более нету
234 1269218
Гайс, у меня уже голова болит.

Как правильно передать двумерный массив в качестве аргумента функции ?
Заранее домо аригато.
235 1269227
>>68584
проблема всех вас, что вы просто, блядь, ебаные неучи
у вас нет теории, вы тычетесь как щенки
не разбираешься, тогда пользуйся высокоуровневыми абстракциями, в тех же либах дающих thread pool (это только в качестве примера), есть возможность остановить всех воркеров
а вы, блядь, на голых средствах синхронизации каждый раз переизобретаете ебаные костыли
236 1269229
>>69216
Хвалят https://leanpub.com/concurrencywithmodernc но я не читал.
237 1269232
>>69227
более того, если ты пользуешься голыми средствами синхронизации, ебаша промышленный код, то нужно сильно сомневаться в твоей квалификации
потому что на фирмах, даже если делают СВОЕ, то сначала реализуют собственные более высокоуровневые абстракции для работы с любой параллельностью
а в большинстве случаев достаточно пользоваться готовыми средствами
потому что, блядь, это сложно
это пишется годами серьезными дядями, а рядовой исполнитель который делает код который продается, хуй это осилит на коленке
238 1269234
>>68533
проблема lock-free либ в том что НЕТ еще открытых/продающихся вещей которые уже вступили в стадию зрелости
да, на крупных фирмах где-то уже смогли поднять свои решения, которые уже у них работают, но это все внутренние вещи
при этом чтобы это сделать им пришлось пойти на немалые капиталовложения, потому что делать такое чертовски сложно
239 1269237
>>69149
>>69229
Это и сюда тоже
240 1269260
>>69218
template<typename T, std::size_t M, std::size_t N>
void array(T (&a)[M][N]) { / code / }
А лучше заверни его в структуру и не еби мозги.
241 1269271
>>68254
Ничего, она же макака, а не петух.
242 1269278
>>69260
Со структурой, будет передаваться не массив, а его копия.
243 1269380
>>68311

>хуяк мьютекс туда, хуяк condition_variable сюда


Так и живём. Хотя твой пост натолкнул на идею попрофилировать куски кода в паре проектах, где single producer/single consumer очереди. Хотя там contention мьютексов очень низкий, может и не стоит даже заморачиваться.
244 1269398
>>69260
Ну, у меня задача была - отсортировать наименьшее число в массиве.
Сделал, правда без темплейта и довольно криво (как ящитаю).

Энивей, если кому- нибудь нужно, то вот. Вдруг пригодится, лул. https://pastebin.com/StWaRC81
245 1269419
>>69398
Лучше переведи двумерный массив в одномерный
246 1269436
>>69398

> return a[ncol * 0];

247 1269441
>>69278
Move constructor не?
248 1269458
>>69441
Не поможет если массив выделен не в куче.
249 1269465
>>69436
it just works.
250 1269603
У меня есть несколько вопросов и мне нужен совет - то ли я вообще делаю или нет.

Я студент и хочу вкатиться хотя бы в фриланс. Сразу скажу что вроде погромировать как-то минимально умею, наверное не хуже веб макак которые решили вайти вайти, див2 олимпиады там решал, опенгл ковырял, шейдеры простенькие писал, стандарт С++(11) по толстым книгам на 1000 страниц два раза перечитывал целиком.
Полазил по англоязычным сайтам с фрилансом в категории С++ и обнаружил что в заказах до 30$ многим нужно вот что:
Содомирующие кубы на опенгл(причем довольно часто, видимо для курсачей)
Sql
Веб(либо клиент и сервер написать, либо скачать картинку и распарсить на ней что-то, вот такого уровня)
Разные программы с интерфейсом
CUDA

Так вот, собственно в чем мои вопросы:
На чем лучше всего делать интерфейс к программе на крестах(желательно чтобы еще и нормально можно было опенгл контекст создать)? На Qt что ли?
Через что удобнее всего работать с сетью(микроопыт и представление как это работает есть)?
Для sql как я видел есть много библиотек, какую лучше освоить?
Что вообще делать? Не понимаю куда двигаться. В вузе(такой себе, в топ3-5 дс2) математику и всякую там дискретку более-менее нормально преподают, но это само собой надо знать, а вот программирования нормального похоже там так и не будет, и я уж молчу про что-то прикладное типа того что я описал.
251 1269650
>>69441
Да какая разница.
Просили передать массив. А не его копию. Хоть ты её перемещением сделаешь.
252 1269651
>>69398
У тебя UB в коде.
253 1269662
>>69603
Тупой, блядь, долбоеб. ХВАТИТ ДРОЧИТЬ НА ФРИЛАНС, КОТОРОГО ВСЕ РАВНО В КРЕСТАХ НЕТУ. Иди в офис, и нормально работай.
254 1269869
Что вообще можно написать на c++?
255 1269870
>>69218
Просто по ссылке почему не устраивает?
void GiveMeArray(int array, size_t x, size_t y)
{
for (auto i = 0u; i < x; ++i)
for (auto j = 0u; j < y; ++j)
(array + i + j x) = 0;
}

int main(int /
argc/, char /argv[]*/)
{
int array[100][100];
GiveMeArray(&array[0][0],100,100);
256 1269905
>>69870
Спасибо, анончик.
Устраивает, но я - донный и еще не учил ссылки, вот.
257 1270059
>>69870

>по ссылке


Но это же указатель. А ссылку предлагал анон с темплейтами.
Если не упарываться, по ссылке можно и так:

void foo(int (&arr)[10][10]) {...}
...
int a[10][10];
foo(a);
258 1270217
>>69869
вообще все, начиная от ОС, заканчивая вебстраничкйй
259 1270285
>>69870

>Просто по ссылке почему не устраивает?


В твоём коде UB.
260 1270303
>>70059
Константы лучше вынести отдельно:
const size_t m = 3, n = 3;
void f(int (&a)[m][n]) {}
261 1270344
>>70285
Не, просто в его коде не отображаются звездочки.

void GiveMeArray(int⁂ array, size_t x, size_t y)
{
for (auto i = 0u; i < x; ++i)
for (auto j = 0u; j < y; ++j)
⁂(array + i + j ⁂ x) = 0;
}
...
int array[100][100];
GiveMeArray( &array[0][0], 100, 100 );

не вижу здесь UB
262 1270346
>>69465
Почему не "return a;"? У тебя же похоже просто указатель на начало массива возвращается. Код не читал, если что.
263 1270348
>>70344

> i + j ⁂ x


А это на sizeof(int) домножать не нужно? Там же адресом, а не индексом массива веришь.
264 1270350
>>70348
нит
a = ⁂(a + i) = ⁂(i + a) = i[a];
265 1270351
>>70350
да блятб, a[ i ]
266 1270361
>>70351
Но ведь i[a] == a. Ненавижу, блядь, c++ и пидоров, которые такое на собесах спрашивают.
267 1270364
>>70361
a[ i ] == i[ a ]
268 1270370
Решил написать вебсервер. Подводные?
269 1270374
>>63368 (OP)
Доброго дня, аноны. Я не программист, но столкнулся с задачей скомпилить сорцы одной софтины с гитхаба. Как компилить файлы по одному я знаю, но как скомпилировать папку с кучей файлов формата .h и .cpp в один экзешник?
270 1270380
>>70344

>не вижу здесь UB


На то ты и макака.
271 1270382
>>70380
Ну так покажи где ты тут UB нашёл, эксперт мамкин.
272 1270383
>>70382

> эксперт мамкин.


Ха-ха. Макакич пыжится.

Ты знаешь, когда можно применять арифметику указателей?
15334831977280.png181 Кб, 442x341
273 1270385
>>70383
Хочешь сказать, что здесь нельзя её применять?

Напомню, что статические "многомерные" массивы представляются в памяти в виде одномерного массива построчно. (§8.3.4 п. 9 стандарта С++11).
Таким образом приведенный в коде массив имеет размер 100×100=10000 элементов. Легко показать, что выражение (i + j × x), используемое в качестве индекса этого массива, никогда не превышает его размера. А следовательно
(array + i + j × x) удовлетворяет всем требованиям для адресной арифметики и является корректным указателем, а его разыменование не вызывает UB.

Принимая во внимание вышеизложенные факты, я утверждаю, что ты хуй и говно.
274 1270386
>>70385

>Хочешь сказать, что здесь нельзя её применять?


Да.

> Напомню, что статические "многомерные" массивы представляются в памяти в виде одномерного массива построчно.


Ну и? Пусть себе представляются.
struct { int i; int j; };
тоже может представляться в памяти как int[2]. Это не значит что из указателя на i можно получить указатель на j прибавлением единицы.

> А следовательно


(array + i + j × x) удовлетворяет всем требованиям для адресной арифметики и является корректным указателем, а его разыменование не вызывает UB.

Откуда это "следовательно"? Из предыдущего предложения это не следует. Ну или покажи, что следует.

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



А что ещё тупая макака может утверждать?
275 1270390
>>70385

>Хочешь сказать, что здесь нельзя её применять?


Точнее, можно, но не так, как ты это делаешь.
276 1270392
>>70390
Может тогда поговорим, в чем здесь проблема, вместо того чтоб хуями друг друга обкладывать?
277 1270397
>>70392
О чём тут говорить? Очевидный выход за границу массива.
Вот аналогичный код.
В constexpr я не могу писать в массив, так что только чтение.

constexpr int sum(const int^ arr, int x, int y)
{
int sum = 0;
for (int i = 0; i < x; i++)
for (int j = 0; j < y; j++)
sum += ^(arr + i + j × x);

return sum;
}

int main()
{
constexpr int arr[2][3] = { +1, -1, +1, -1, +1, -1, };
constexpr int s = sum(&arr[0][0], 2, 3);

return s;
}

$ g++ prog.cc -Wall -Wextra -std=gnu++2a

prog.cc: In function 'int main()':
prog.cc:14:26: in 'constexpr' expansion of 'sum((& arr[0][0]), 2, 3)'
prog.cc:14:43: error: array subscript value '4' is outside the bounds of array type 'const int [3]'
14 | constexpr int s = sum(&arr[0][0], 2, 3);
| ^

(http://wandbox.org/permlink/OX47NBpU0vb1epjW)

Объясни это.
277 1270397
>>70392
О чём тут говорить? Очевидный выход за границу массива.
Вот аналогичный код.
В constexpr я не могу писать в массив, так что только чтение.

constexpr int sum(const int^ arr, int x, int y)
{
int sum = 0;
for (int i = 0; i < x; i++)
for (int j = 0; j < y; j++)
sum += ^(arr + i + j × x);

return sum;
}

int main()
{
constexpr int arr[2][3] = { +1, -1, +1, -1, +1, -1, };
constexpr int s = sum(&arr[0][0], 2, 3);

return s;
}

$ g++ prog.cc -Wall -Wextra -std=gnu++2a

prog.cc: In function 'int main()':
prog.cc:14:26: in 'constexpr' expansion of 'sum((& arr[0][0]), 2, 3)'
prog.cc:14:43: error: array subscript value '4' is outside the bounds of array type 'const int [3]'
14 | constexpr int s = sum(&arr[0][0], 2, 3);
| ^

(http://wandbox.org/permlink/OX47NBpU0vb1epjW)

Объясни это.
278 1270398
>>70397
Это какие-то фичи, связанные с constexpr?
Например без него замечательно выполняется.

int sum(const int^ arr, int x, int y)
{
int sum = 0;
for (int i = 0; i < x; i++)
for (int j = 0; j < y; j++)
sum += ^(arr + i + j × x);

return sum;
}

int main()
{
const int arr[2][3] = { +1, -1, +1, -1, +1, -1, };
int s = sum(&arr[0][0], 2, 3);

return s;
}

g++ prog.cc -Wall -Wextra -std=gnu++2a -pedantic
279 1270399
>>70398
А, или я мудак и компилятор тупо всё вырезал
280 1270400
>>70398

>Это какие-то фичи, связанные с constexpr?


Да. Выражение с UB (из Core Language) не является константным. Такой вот способ сделать UB видимым.
281 1270401
>>70400
Забавно. А хуле он не подсвечивает даже с -pedantic
282 1270402
>>70401
Потому что UB не относится к диагностируемым ошибкам.
283 1270403
>>70402
Пока не попадает в constexpr-контекст, конечно.
284 1270407
>>70397

>(arr + i + j × x)


Это у тебя что-то с индексами или обход по строкам матрицы aT[3][2]?
285 1270408
>>70407
Точнее по столбцам. Чёт сплю уже и плохо в код вдупляю.
286 1270409
>>70407
>>70408
Я просто скопипастил твой код.
Один хрен, он неправильный, как бы ты ни расставил индексы.
287 1270410
>>70409

>Я просто скопипастил твой код.


Ну или не твой. Предыдущий, короч.
288 1270415
>>70374
Cmake
289 1270496
>>69603
С++ и фриланс не совместимы.
290 1270516
>>64099
Тоже компилятор. Ток там регистры и их состояния. Запись в регистр, чтение с регистра и много ещё манипуляций разных. Чтоб чётко понимать суть нужно знать архитектуру микрухи и ассемблер. Он даёт ясность в том, что от тебя нужно микрухе
 .png156 Кб, 1920x1080
291 1270549
>>70400
Ну давай, и где тут твое UB видно?
Пока больше похоже на то, что constexpr не может в многомерные массивы.
292 1270557
>>70496
>>69662
Ну не совместимы так не совместимы, вообще не критично, мне это не для денег нужно все равно. Суть-то в том, что в том что я увидел, что там требовались какие-то конкретные практически применимые вещи, которые по идее я должен хотя бы на базовом уровне уметь, откуда и вытекает моя вторая часть вопроса:

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


> Через что удобнее всего работать с сетью


> Для sql как я видел есть много библиотек, какую лучше освоить?


По крайней мере первые два - это то что мне реально пригодилось бы. Не для какого-то даже фриланса, а просто потому что ну реально же как без этого обойтись можно?Вот захочу я какую-нибудь микрософтину написать именно на с++ просто для себя - и придется гуглить какой-нибудь кал, который еще и окажется неэффективным и неудобным говном мамонта.
Поэтому если не сложно - подскажите, на какие библиотеки(или в случае с интерфейсом наверное одной библиотекой не обойтись, ясное дело нужна целая среда с редактором форм) по вашему мнению мне стоит в первую очередь обратить внимание?
293 1270559
>>70557
Ncurses
294 1270569
>>70549
Так в коде на скрине нет UB.

> Пока больше похоже на то, что constexpr не может в многомерные массивы.


Больше похоже на то, что у тебя ICQ < 55.
295 1270583
Какая книга топ для начала: Липман или Прат? После прочтения данной книги хватит ли знаний для джуна? Что делать дальше?
296 1270587
>>70583
Ты где-то видишь вакансии на джуна?
297 1270612
>>70569
Алло, долбоёб, ты? Это >>70549 отличается от этого >>70397 только одномерным массивом, на шесть элементов. Что абсолютно эквивалентно двухмерному массиву 2 на 3. И не берется ссылка на хуй пойми чего.
298 1270634
>>70587
У меня однажды получилось устроиться, но я проебал свой шанс.
299 1270667
>>70612
>>70569
блять поясните в чем суть? почему при наличии думерного массива такая хуйня?
300 1270674
>>70667
https://en.cppreference.com/w/cpp/language/operator_arithmetic

If any of the operands is a pointer, the following rules apply:
...
In any case, if the pointed-to type is different from the array element type, disregarding cv qualifications, at every level if the elements are themselves pointers, the behavior of pointer arithmetic is undefined. In particular, pointer arithmetic with pointer to base, which is pointing at an element of an array of derived objects is undefined.
301 1270703
>>70612

>абсолютно эквивалентно двухмерному массиву 2 на 3


Я, конечно, чую, что тут троллинг тупостью, но отвечу
Как видишь, не эквивалентно.
302 1270704
>>70674
Ты не то процитировал. Вот:

If the pointer P points to the ith element of an array, then the expressions P+n, n+P, and P-n are pointers of the same type that point to the i+nth, i+nth, and i-nth element of the same array, respectively. The result of pointer addition may also be a one-past-the-end pointer (that is, pointer P such that the expression P-1 points to the last element of the array). Any other situations (that is, attempts to generate a pointer that isn't pointing at an element of the same array or one past the end) invoke undefined behavior.
maxresdefault.jpg36 Кб, 1024x576
303 1270731
Всем приветики на вашем форуме)))

Суть токова. Я уже много лет хуячу сложные штуки на плюсах, но кодинга получается очень мало, в основном проектирование, анализ и т д. И стандартная библиотека у нас почти не используется. Максимум - какой-нибудь вектор. Примитивы типа conditional variable, тредов у нас свои, со своим апи.
И вот задумал я сменить работу. Но понимаю, что везде нужен стл. Стл заботать, просто читая книжку/цппреференс - это убогое занятие. Идеальное знание мне не нужно, нужно просто не обосраться с общеизвестными функциями, применениями и паттернами.
Дак вот, как лучше всего стл-то до нужного мне уровня заботать? Может быть, есть ресурс с набором несложных задач на стл, аля leetcode?

пиксамхаурилейтед - это мой валпапер
304 1270742
>>70731
Скотина Мейерс
Эффективное использование Stl
305 1270751
>>70742
Бля и чо что майерс? Я его и книжку, в принципе, прочитал. И лекции смотрел. Все круто и интересно, только в голове сильно не оседает. Надо хотя бы на игрушечных задачах со всем поиграться.
Вопрос в том, где игрушечные задачи взять
306 1270808
>>63368 (OP)
Здравия анонам, есть код:
catalan.hpp:
#pragma once
/!\filecatalan.hpp
\authorYour name here
\dateDevelopment date
\briefStudent's Catalan number function implementations.
/

// ToDo:implement the catalan_bionomial() and catalan_product_series() functions.
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

cpp_int catalan_bionomial(cpp_int n)
{
if (n < 2)
return 1;

cpp_int ret = 1;
for (int i = 2; i <= n; i++)
{
ret = ((n + i)/i);
}

return ret;
}

ut_catalan.cpp:
/
!\fileut_catalan.cpp
\authorGarth Santor
\date2018.09.09
\briefTest catalan number function implementations.
/

// import student's catalan implementation
#include "../include/catalan.hpp"

// import the boost unit test framework
#define BOOST_TEST_MODULE GradePellFunction
#include <boost/test/auto_unit_test.hpp>
#include <boost/mpl/list.hpp>

// import the boost multiprecision integer library
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

// import standard libraries
#include <cstdint>
#include <vector>
using namespace std;

// Catalan tests
// =======================================================================================================

std::vector<cpp_int> catalanNumbers{ 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, 18367353072152, 69533550916004, 263747951750360, 1002242216651368, 3814986502092304,
};

BOOST_AUTO_TEST_CASE(catalan_test_binomial) {
cpp_int idx = 0;
for (auto cn : catalanNumbers)
BOOST_CHECK(cn == catalan_bionomial(idx++));
}

//BOOST_AUTO_TEST_CASE(catalan_test_product_series) {
//cpp_int idx = 0;
//for (auto cn : catalanNumbers)
// BOOST_CHECK(cn == catalan_product_series(idx++));
//
//BOOST_CHECK(catalan_product_series(cpp_int(100)) == cpp_int("896519947090131496687170070074100632420837521538745909320"));
//}

Но когда пытаюсь запустить:
ОшибкаLNK2019ссылка на неразрешенный внешний символ "int __cdecl cpp_main(int,char
* const)" (?cpp_main@@YAHHQEAPEAD@Z) в функции mainut_catalanG:\Projects\Programming\Фриланс\Task #214310 Numerical Limits\Numerical Series (Start)\ut_catalan\libboost_prg_exec_monitor-vc141-mt-gd-x64-1_68.lib(cpp_main.obj)

ОшибкаLNK1120неразрешенных внешних элементов: 1ut_catalanG:\Projects\Programming\Фриланс\Task #214310 Numerical Limits\Numerical Series (Start)\x64\Debug\ut_catalan.exe
306 1270808
>>63368 (OP)
Здравия анонам, есть код:
catalan.hpp:
#pragma once
/!\filecatalan.hpp
\authorYour name here
\dateDevelopment date
\briefStudent's Catalan number function implementations.
/

// ToDo:implement the catalan_bionomial() and catalan_product_series() functions.
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

cpp_int catalan_bionomial(cpp_int n)
{
if (n < 2)
return 1;

cpp_int ret = 1;
for (int i = 2; i <= n; i++)
{
ret = ((n + i)/i);
}

return ret;
}

ut_catalan.cpp:
/
!\fileut_catalan.cpp
\authorGarth Santor
\date2018.09.09
\briefTest catalan number function implementations.
/

// import student's catalan implementation
#include "../include/catalan.hpp"

// import the boost unit test framework
#define BOOST_TEST_MODULE GradePellFunction
#include <boost/test/auto_unit_test.hpp>
#include <boost/mpl/list.hpp>

// import the boost multiprecision integer library
#include <boost/multiprecision/cpp_int.hpp>
using namespace boost::multiprecision;

// import standard libraries
#include <cstdint>
#include <vector>
using namespace std;

// Catalan tests
// =======================================================================================================

std::vector<cpp_int> catalanNumbers{ 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, 18367353072152, 69533550916004, 263747951750360, 1002242216651368, 3814986502092304,
};

BOOST_AUTO_TEST_CASE(catalan_test_binomial) {
cpp_int idx = 0;
for (auto cn : catalanNumbers)
BOOST_CHECK(cn == catalan_bionomial(idx++));
}

//BOOST_AUTO_TEST_CASE(catalan_test_product_series) {
//cpp_int idx = 0;
//for (auto cn : catalanNumbers)
// BOOST_CHECK(cn == catalan_product_series(idx++));
//
//BOOST_CHECK(catalan_product_series(cpp_int(100)) == cpp_int("896519947090131496687170070074100632420837521538745909320"));
//}

Но когда пытаюсь запустить:
ОшибкаLNK2019ссылка на неразрешенный внешний символ "int __cdecl cpp_main(int,char
* const)" (?cpp_main@@YAHHQEAPEAD@Z) в функции mainut_catalanG:\Projects\Programming\Фриланс\Task #214310 Numerical Limits\Numerical Series (Start)\ut_catalan\libboost_prg_exec_monitor-vc141-mt-gd-x64-1_68.lib(cpp_main.obj)

ОшибкаLNK1120неразрешенных внешних элементов: 1ut_catalanG:\Projects\Programming\Фриланс\Task #214310 Numerical Limits\Numerical Series (Start)\x64\Debug\ut_catalan.exe
307 1270866
>>70808
Ну буст хуёво установлен/собран. Что тут ещё можно сказать?
308 1270971
>>70751

>Вопрос в том, где игрушечные задачи взять


у страуструпа в "языке программирования с++, специальное издание" неплохие упражнения
это если надо конкретно по языку и стандартной библиотеке знания закрепить практикой
309 1271018
>>70751
Стефен Прата c++ primer, много материала и задач к нему
310 1271024
Не пинайте за ссылку на хабр, но вопрос именно об том, что там написанно: https://habr.com/post/147373/

Даются три синглтона. Первый — классический, как Банда завещала. Второй — хитрый-маерсовский из одной статической функции возвращающей свою статическую переменную. И третий — какой-то ленивый синглтон.

Так вот, там пошла Java. Я ее не понимаю, даже не знаю, актуальна ли сама проблема для C++ или там чисто жабские заморочки какие-то. Растолкуйте, что за ленивый синглтон, как его делать на крестах и нужно ли вообще?
311 1271050
>>71024
Статическая переменная это и есть ленивый синглтон.
В C++11 её инициализация потокобезопасна и это достигается либо double-checked locking-ом, либо ещё оптимальнее (https://stackoverflow.com/a/27206650)
312 1271311
Делаю лабу в C++ Builder 10, когда функцией StrToFloat преобразую ввод из Edit1, его пидорасит. 1,5 нормально переводит в float, а вот 0,525 превращается в 0,524999976158142, ответ в задаче не правильный. Как фиксить?
313 1271386
>>71311
Да ну нахуй! Не может быть!
дай-ка угадаю, 0.625 отображается правильно
314 1271519
>>63725

>Получать придется, если хочешь сьебать с РФии


Уже спрашивали >>63744, но так как ответа не последовало, спрошу. Зачем нужно российское ВО за её пределами?
239520573261307.jpg156 Кб, 939x684
315 1271562
>>63755
вышка удаленна в гути хоть как то котируется? перевелся из шараги средней на 3ий курс, потом институт закрыли и перекатился на 4год из 5 в сибгути , на удаленку решил вместо вечерней
щас думаю нахуй бросать или все таки 1.5 года доучиться, пригодится ли такой дисплом как исключительно формальный для выкатывания нннахуй из рашки? какие подводные, анон подскажи плс
316 1271568
>>71562
Для выкатывания из рашки нужен любой профильный диплом из аккредитованного вуза, доучивайся.
cho.jpg182 Кб, 1280x875
317 1271571
>>71568
профиль программирование, надеюсь пока учусь не снимут аккредитацию и с него(с предыдущего сняли) , кек
318 1271630
>>71386
Ага. А почему так?
319 1271695
>>66839
тебе в жс
320 1271697
>>71630
По IEEE 754
321 1271772
Может кто-то простыми словами обьяснить, что делает конструкция
#ifndef SLOVO
#define SLOVO

...

#endif
А то вижу ее постоянно, а при гугле этой комбинации нихуя не даёт
изображение.png34 Кб, 777x333
322 1271778
>>63368 (OP)

Есть тут кто? Я пытаюсь на Visual Studio VLD подключить, но он выдаёт ЭТО.
323 1271779
>>71772
Чтобы однажды выполнялся код, а так же дабы не было многократного использования include файлов, вроде так.
324 1271780
>>71779
Оно просто заменяет весь код каким-то словом?
325 1271783
>>71780

Бывает так, что перекрёстно используются заголовочные файлы, насколько помню так нельзя.

То есть ты подключаешь два заголовочных файла и в каждом из них уже есть один и тот же такой файл и дабы этого избежать используют это, а так же продумывают иерархию файлов всей программы.
326 1271785
>>71783
Да это я понял, оно в главе описывалось. Просто что этот код делает. Типо если код уже ранее подключён, то его заменяет SLOVO и всё?
327 1271835
>>71785
Нет. Перед тем, как включить код, определяется константа SLOVO. И если эта константа уже определена ранее, то код из файла не включается. Этакий аналог if.
328 1271872
>>71311
Потому что не бывает float равным 0,525 , а ближайшее к нему - 0,524999976158142
329 1271877
>>71780
Нет, это хорошо известная идиома, которая блокирует повторное включение кода. Например как уже написали так делается защита инклюдов, иначе будет сыпать ошибки e1488:zalupa already defined in zalupa.h(228). Можно её сломать в принципе, если вручную задефайнить, иди раздефайнить протектор.
Возможно лучше было бы использовать #pragma once, но это не стандарт, и свои проблемы имеет.
330 1271901
>>71877
>>71835
Спасибо за помощь
331 1271927
Гайс, подскажите.
Как мне перегрузить оператор ВНУТРИ класса ? То есть, я хочу, чтобы функция внутри класса была с перегруженным оператором. Заранее аригато.
332 1271951
Ну чо, как там сппкон

Говорят Бьярн за ауто пояснил по хардкору
333 1272033
>>71927
Берешь и перегружаешь
https://en.wikipedia.org/wiki/Operators_in_C_and_C++
https://en.cppreference.com/w/cpp/language/operators

Всё, кроме user-defined literals перегружается как member function, большую часть можно перегрузить как non-member

Или разверни свой вопрос.
334 1272051
>>72033
К примеру
Class hooj
{
public:
int num;
hooj pidor;
}
Class bomj
{
hooj
numb;
bomj(int n) { numb->num = n; } //как здесь сделать так, чтобы не обосраться ? Ведь мы ссылаемся на несуществующий кусок памяти.
foo(int i)
{
numb->num = i; //как это сделать блядб, ведь мы пытаемся присвоить типу hooj инт ?
}
}
335 1272064
>>72051
Дак ты позаботься чтобы у bomj был hooj
Например
bomj(int n) {
numb = new hooj();
numb->num = n;
}
Только дальше ты всё равно обосрёшься при управлении памятью. Читай про конструкторы копирования/перемещения, деструкторы и смарт поинтеры. А перегрузка операторов тут ни при чём.
Lain (6).jpg143 Кб, 1000x800
336 1272264
Небольшой вопросик/

Нужно написать простой калькулятор (обычная лабораторка).

Суть в том, что умножать/делить/степенить(!) и прочее нужно производить не кнопочками, а символами, которые вводит пользователь.

Сами вопросы:
1. Как правильно реализовать "сканировние" и вычисление вводимой строки
2. Как расставить приоритеты сначала умножение, потом сложение и подобное
3. Реализовать скобочки.

Спасибо.
337 1272266
>>72264
Обратная польская запись.
Например, https://habr.com/post/100869/
Степени при помощи ^
338 1272317
Может кто обьяснить, как написать код, который перебирает квадратную матрицу, находит максимум и минимум. После чего, если максимумов/минимумов больше 1, то выбрать первый. Пока-что написал вот такой код cpp.sh/6xshn, до этого пробовал сделать 3 цикла со счётчиками, но выходило слишком много и иррационально, да и один хуй не сработало
339 1272376
>>72317
Перемудрил ты что-то. Достаточно одного прохода с двумя ифами на проверку меньше минимума и больше максимума. В теле ифа присваиваешь новый мин/макс и тут же обновляешь рядок с колонкой, а не в следующем обходе.
340 1272381
>>72376
Так мне нужно чтобы оно взяло только одно значение максимума. Я думал по логике: если число равно максимуму - скип, иначе если больше максимума - новый максимум, если меньше минимума - новый минимум.
341 1272405
Дохуя глупый вопрос, наверное.Вот у меня есть класс и нужно, чтобы пользователь мог удалять и создавать объекты по желанию. Можно ли это сделать без динамического распределения памяти?
342 1272411
>>72381
Всё, я разобрался. Просто присвоил в цикл проверки еще и значение, чтобы клетка равнялась нулю, и инициилизировал ее нулём до выполнения.
343 1272415
Ребят подскажите, почему этот цикл будет работать?
vector<int> name = {5, 2, 4 ,1};
for(int i : name) { cout << i << " ";}
В чём суть это записи?
344 1272420
>>72415
Почленный цикл, берёт и работает.
345 1272481
>>72405
Фабричный метод
346 1272486
>>72415
цикл for(int i : name) {...} раскрывается в цикл
for(vector<int>::iterator it = name.begin(); it != name.end(); ++it)
{
int i = ^it;
...
}
^ -- это звездочка. Кури итераторы, в общем.
347 1272489
>>72415
Вот поэтому.
https://en.cppreference.com/w/cpp/language/range-for

Но не во всех случаях удобно пользоваться ею, omp не параллелит такой цикл
348 1272497
Зачем подключать _CRT_SECURE_NO_WARNINGS?
349 1272577
>>72497
Шоб потом мамкины хацкеры могли выебать твою программу во все щели, а конкретнее там где ты используешь небезопасные функции типа gets и scanf, а конкретнее методом анального переполнения буфера, чтением и перезаписью в/из памяти там, где ты напишешь printf(...) c форматированием и забудешь указать типы данных, и прочим распылением в кучу.
350 1272618
>>72489
>>72486
Благодарю.
351 1272844
>>71519
К сожалению, это требование на work permit вообще везде.
352 1272930
>>72577
спасибо
353 1272933
>>63725
Все советы годные, кроме работы в Яндексе. Автор, ты как будто обосрался с подливой в конце, ну как так то
354 1273037
>>72933
есть большая разница между "на старте карьеры" и "просто попасть". Опытному разработчику там нехуй делать, а вот новичку посмотреть на большие проекты, процессы разработки и прочее - максимально полезно. Да и в резюме строчка почетная.
355 1273052
Гайс, ну подскажите, как в данном коде реализовать деструктор, чтобы не прострелить себе ногу ? Компулятор говорит, что я - мудак и память в хипе не удаляется, не догоняю, как удалить. Заранее - аригато.
https://pastebin.com/6GUtDp1E
356 1273058
>>73037
А куда тогда податься опытному разработчику?
357 1273061
>>73052
Бро, прости, но компилятор прав.
Ты пытался написать стек, но сделал это настолько через задницу, что мне не понять твою задумку (то есть твоя реализация очень далека от того как это делается). Ты бы хоть комментарии оставлял, если хочешь чтобы тебе помогали разобраться.
Попробуй нарисовать схему устройства/работы твоего стека.
358 1273064
>>73061
Да не, тут суть не в стеке, мне хочется понять, как удалить динамический массив и всю память из хипа.
359 1273072
>>73058
Та же Нвидия
360 1273074
>>73064
А где у тебя там "динамический массив"?
361 1273085
>>73052
~Stack()
{
delete top->num;
delete top;
}
362 1273086
>>73064

>мне хочется понять, как удалить динамический массив и всю память из хипа.


Ты его сначала создай. У тебя же нет динамического массива.

>Stack() :arr(0) { top = new Elem; top->num = new int; };


new без [ ] - это не массив, а одиночный элемент.

>void push(int n){


>top->num[arr++] = n;


И попиздели гулять по памяти хуй знает куда

Слушай этого анона >>73061
363 1273091
Как вам вот такая вакансия?
https://spb.hh.ru/vacancy/27996564
364 1273109
>>73086
О, спасибо огромное, Анончик. Я понял, где проебался.
365 1273175
>>72405
Делаешь аллокатор на большом, заранее выделенном куске кучи.
366 1273188
>>73175
Не забудь в деструкторе прописать соответствующий оператор delete.
367 1273209
Посоветуйте какой-нибудь способ сделать это не по говнокодерски:

SomeData get_static_data()
{
struct calculator
{
static SomeData calculate()
{
for (int i = 0; i < dohuya; ++i);
return "Calculated result";
}
};

static SomeData result;
return result.empty() ? result = calculator::calculate() : result;
}

Ну, суть вы поняли. Данные могут вычислиться только в рантайме, вычисляются 1 раз, требуются много раз.
Цикл имитирует сложную работу по вычислению.
368 1273276
369 1273406
Аноны, есть цикл в котором по результатам исчисления должно выводится наибольшее и наименьшее значение, он выполняется сколько-то раз. Если с максимумом всё просто, просто присвоил нулю и погнал сравнивать, как быть с минимумом? Присвоить ему значение первого элемента цикла не могу, так как в нём происходят все вычисления, а присваивать каждый раз смысла не имеет. А так выходит что минимум не изменится.
370 1273411
>>73406
Функцию напиши.
372 1273454
>>73422
В том то и дело, что там не массив. Но на ту хуйню я уже забил. Думаю как обычно, внезапно прийдет озарение позже. Подскажите лучше почему не вызывается перегруженная функция.
На первом скрине заголовок класса, на втором реализация. А вызывается какого-то хуя обычная функция cout. Не знаю как скинуть код в трёх файлах
373 1273466
>>73454

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



Потому, что для...

>complex1 c;


>cin>>c;


>cout<<c;



...прототипом будет...

>istream& operator>>(istream& is, complex1 clx);


>ostream& operator<<(ostream& os, complex1 clx);

374 1273488
>>73466
Ебать я долбаеб, аж стыдно стало, спасибо
375 1273659
>>73209
Кури ленивый синглтон. Как сделать не скажу, так как сам не применял.
376 1273666
Аноны, а что с вордовским doc'ом не так?
Я хотел найти библиотеку, чтобы программно создавать доки, и надеялся что ее будет просто найти - это же все-таки DOC, охуеть какой популярный формат. Но ничего не нашёл. Рили ничего.
Может кто знает способ, который хотя бы позволит редактировать готовые доки, на уровне найти/изменить строку. Все решения что я смог нагуглить требуют установленного ворда, а такие решения не очень подходят.
377 1273675
>>73666
Не связывайся с DOC, ищи либу для DOCX aka Office Open XML format
378 1273678
>>73675
Уже связался, не по своей воле. Но не ожидал что все так плохо будет.
По сути мне просто нужно генерить доки по одному шаблону, форматирование там одинаковое, только количество текста разное в паре абзацев. С нуля я так понял мне не получится такие генерить, но хотя бы брать готовый док и текст изменять в нём. Я верю что есть способ.
379 1273685
>>73678
Если word установлен, то можешь заюзать его COM интерфейс. Но всё равно придётся хорошенько поебаться.
380 1273903
>>73666
Подобные вещи хорошо делаются на дотнете. Я ради подобных ништяков немного C++\CLI освоил, который дергаю из крестового кода
381 1273937
У меня вопрос к крестопидорам. Я понимаю что раии, ексепшион-тред сэйфети и прочая хуита идущая в нагрузку к трехстрочному коду дефолтом сейчас стильно модно молодежно. Но зачем вы превращаете язык в тормознутый ждаваскипт? Понижаете уровень вхождения для ньюфагов?
Код http://cpp.sh/33c4e релейтед
Мимо из си треда.
382 1274027
>>73937
В случае с вектором очевидно: выделенная память заполняется значениями по умолчанию, то есть нулями.

Второй же тест медленнее третьего не из-за умного указателя ну, не только, а потому что calloc быстрее new. Вероятно, потому что new может вызвать исключение. Так что если вызывать noexcept-версию new честно, не ебу как, то может стать быстрее.
А может и нет.

Кстати, make_unique<uint8_t[]> тоже инициализирует объекты и работает ещё хуже вектора.
383 1274236
>>73937
>>74027
calloc хоть и отдает кусок памяти заполненный нулями, но само заполнение не происходит в этот момент. На этот область памяти мапируется уже обнуленная страница. А вот при дальнейшем изменении уже сработает copy-on-write.
384 1274264
>>73937

>Код http://cpp.sh/33c4e релейтед


Да нихуя не релейтед. Только конченный дебил поведётся на это.
Компилятор просто выкинул calloc/free. Отключи оптимизации и calloc сравняется с unique_ptr.
385 1274265
>>73937

>Код http://cpp.sh/33c4e релейтед


https://wandbox.org/permlink/AiNRFjjGe1ORAn0g вот.
2 фемтопикосекунды на создание вектора.
Шах и мат, си-дауны.
386 1274266
>>73937

>Код http://cpp.sh/33c4e релейтед


https://wandbox.org/permlink/gHwU2iOcxoebK5wJ вот.
calloc/free — медленнее, чем вектор.
изображение.png573 Кб, 429x532
387 1274366
Потсоны, это, блядь, законно чтоле?

class SpawnSystem : public ex::System<SpawnSystem> {

https://github.com/alecthomas/entityx/blob/master/examples/example.cc
388 1274370
389 1274383
>>74370

Охуеть.
390 1274396
>>72264
У страуструпа в его The C++ Programming Language есть готовая реализация.
391 1274429
>>72264

парсером и лексером
392 1274556
Добрый день.

Подскажите пожалуйста что можно почитать по поводу манипуляций с аутпутом в терминал. Есть код с пикрил 1 - он печатает содержимое двух std::map, результат на пикрил 2.

Я бы хотел узнать как сделать так, чтобы цифры были четко друг под другом, двоеточие под двоеточием и так далее, ну и длина строк со знаками "+" подбиралась под длину строки автоматически.
393 1274559
>>74556

>двоеточие под двоеточием и так далее


printf не учил?
394 1274590
>>74559
лутши fmtlib
изображение.png1 Кб, 260x68
395 1274670
Хелпаните с задачкой, я даун
Даны x,y,z найти a
396 1274685
>>74670
Ты не можешь примитивное уравнение перевести в код?
Пиздец
397 1274716
>>74670
a = 1 + sin^2(x + y) / 2 + |x-2x/(1 + x^2*y^2)| + x2

Не благодари
15386682159580.png4 Кб, 260x68
398 1274719
>>74670

>найти a


Не благодари
399 1274732
>>74716
Ты долбоёб? ты долбоёб. не благодари. Блять бесят такие надменные уебаны. А модуль то как взять? Помогите нафане ёбаный стос.
400 1274749
>>74716
Да пожалуйста, я не злой, помогу, вот код:

1 ^ ИП0 ИП1 + sin x^2 + 1 ИП0 x^2 ИП1 x^2 x + 2 ИП0 x / 1/x ИП0 - /x/ |x| 2 + / ИП0 + С/П
401 1274772
Пытаюсь в QT по нажатию кнопки (в слоте clicked()) запустить вот такой код
https://pastebin.com/Zu3Rtq8H
2 раза пересоздавал проект, выскакивает ошибка:

Semantic Issue

40:9: error: no matching function for call to 'CreateProcessW'
processthreadsapi.h:117:23: note: expanded from macro 'CreateProcess'
_mingw_unicode.h:12:32: note: expanded from macro '__MINGW_NAME_AW'
:2:1: note: expanded from here
processthreadsapi.h:116:29: note: candidate function not viable: 9th argument ('const _STARTUPINFOW *') would lose const qualifier

на CreateProcess
что это???
402 1274877
>>74732
Друг, если ты не можешь догадаться, как взять модуль - я настоятельно рекомендую тебе даже не пытаться учиться программировать.
403 1274894
>>63368 (OP)
Бля, нахуй вы православное расслоенное произведение называете pullback, вроде не смузихлёбы же коворкинговые, дядьки-крестовики, а туда же.
404 1274904
>>72264
1. Подглядываешь какой у тебя следующий символ с помощью cin.peek(), считываешь даблы оператором >>, а символы cin.get().
2. Получаешь число. Далее в цикле пока !cin.eof() складываешь\вычитаешь последующие числа. Возвращаешь результат если ничего не осталось или встретил неизвестный символ. Это функция add_sub(). Пишешь аналогичную функцию div_mul, которая умножает\делит и возвращает результат если встречает неизвестный символ. В функции add_sub заменяешь все получения следующих чисел на вызов div_mul. PROFIT!!1
3. Рекурсия.
405 1274934
>>74685
Соррии, я методичку дальше не прочитал к лабе
Первая лаба первый курс
406 1274953
>>63383
Скажи лучше, чем оправдано их существование, почему нельзя было сделать все методы виртуальными по-умолчанию? Неужели все дело в крошечном оверхеде при вызове?
407 1275059
>>74590

>fmtlib


Кстати, предлагают ко включению в стандарт wg21.link/p0645
408 1275148
>>74556
Что за шрифт на 1 пике?
410 1275190
>>75169
нет, но зачем так делать - строжайше не понимаю
411 1275239
Как создать вероятность события?К примеру, вероятность крита в игре 30%.
412 1275258
>>75239
Блять ты ебанулся такие вопросы в пятницу вечером зодовать?
413 1275266
>>75239
if (rand() % 10 ) < 3 ?
414 1275276
А ну да, посчитай рандом от 1 до 100 в натуральных числах, потом проверь если результат попал от 1 до 30, то хедшот, если нет, то промах.
415 1275341
>>75148
'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback', размер шрифта 12
416 1275453
>>74670
БГУИРовская методичка?
417 1275463
Аноны памагите. Есть указатель на символьный массив

>char hobby;


Как его блять вывести на экран? Сейчас пытался простенький класс написать, и понял что не знаю как это сделать, ибо программа просто не работает если выводить hobby или
hobby
418 1275464
>>75463
Между char и hobby звёздочка, не отобразилось почему-то
419 1275468
>>75463

Попробуй вот так:


const char *hobby;
hobby = "sosat pisu";
std::cout<<"My hobby is:"<< hobby << std::endl;
420 1275470
>>75468
Почему ты константный указатель инициилизировал после обьявления, и это не работает, писал в первом посте. Сейчас код прикреплю cpp.sh/9n3oy
421 1275476
>>75470
Заметь, если оставить только вторую корову а первую и третью закомментить - он печатает как надо, т.е проблема где то в инициализации по умолчанию
422 1275477
>>75476
Хм, и вправду. Сейчас попробую поменять
423 1275478
>>75470
Все норм. Это не константный указатель, это указатель на константные данные.
424 1275479
>>75477
Я скорее всего из-за недостатка опыта не вижу какой-то очевиднешней хуйни. Хобби оно кстати присваивает по всей видимости, ибо если заменить вывод на вывод адреса то оно будет давать разные адреса, как и нужно. Если указатель никуда не указывает, его же нужно нулевым инициализировать, верно?
425 1275485
>>75479

>Хобби оно кстати присваивает по всей видимости, ибо если заменить вывод на вывод адреса то оно будет давать разные адреса, как и нужно. Если указатель никуда не указывает, его же нужно нулевым инициализировать, верно?


>



Я сам не особо опытный если быть честными, но твоя программа падает на методе ShowCow, и насколько я понимаю это из за того что ты пытаешься принтануть нулл поинтер, что если заменить в конструкторе по умолчанию hobby = NULL; на hobby = new char; ?
image.png37 Кб, 1094x636
426 1275487
>>75485
Теперь всё работает, но в первом обьекте выдаёт хуйню вместо значений. Почему с NULL не работает? В книге написано либо с ним делать, либо с nullptr.
Screenshot from 2018-10-06 12-25-03.png19 Кб, 419x336
427 1275488
>>75487

> обьекте выдаёт хуйню вместо значений. Почему с NULL не работает? В книге написано либо с ним делать, либо с nullptr.



Я книг не читал к моему сожалению, но мне кажется нуллом можно инициализировать если ты не планируешь в дальнейшем где то использовать это значение по умолчанию, или если планируешь но ты чем то нормальным его перед этим перезапишешь.

Пикрил - результат работы программы. у меня убунту - никаких артефактов не вижу в консоли
428 1275489
>>75488
Видимо опять студия шалит. Ладно, тут важнее было понять как это работает, спасибо за помощь всем отписавшимся. Если когда-то стану нормальным программистом тоже помогать буду
429 1275490
>>75489
Ну главное мы поняли что тут не в принте дело а в дефолтном конструкторе, я один здесь кстати :)
430 1275491
>>75490
Ну тогда тебе спасибо. Может позже шарящие аноны подтянутся, исправят его нормально, чтобы на всех платформах работал
431 1275497
>>75463

>Аноны памагите. Есть указатель на символьный массив


>>char hobby;


>Как его блять вывести на экран? Сейчас пытался простенький класс написать, и понял что не знаю как это сделать, ибо программа просто не работает если выводить hobby или hobby



>>75476

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



>Cow first;


>Cow second("Seryochka","Doing things",50.5);


>Cow third;



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

Можно сделать конструктор по-умолчанию таким:

>Cow::Cow(const char nm="empty",const char ho="empty",double wt=0.0)


... при этом не забудь закомменить в заголовочном файле объявление Cow::Cow() и в самом .cpp его определение.
432 1275499
>>75487

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



AND WE HAVE A WINNER!!!

1275497-анон
433 1275505
>>75499
>>75497
Спасибо, понял насчёт нулевого указателя. Алсо, где можно посмотреть на прототипы функций который обьявлены в библиотеках? Внутри какая-то странная дичь, а самих функций я не нашёл. Просто недавно узнал что с помощью strcpy() можно копировать со сдвигом, а если бы не пример я бы об этом никогда и не узнал.
434 1275506
>>75505
Ошибся, не прототипы а сами принципы их действия. Хочу посмотреть как strcat реализован, ибо когда пытаюсь сам конкатенацию строк сделать какие-то ошибки вылетают
435 1275508
>>75506
Насколько я понял ты пишешь в студии, попробуй по функции кликнуть правой кнопкой и там будет - перейти к дефинишну, декларейшну и тд
image.png36 Кб, 709x202
436 1275510
>>75508
Ну вот напимер для сиаутов и сиинов. Это и есть определение? Я ожидал увидеть что-то типо ostream & ostream(...) {};
437 1275529
>>75497
Нихуя, тут кто-то до сих пор в 98й студии графоманит.
438 1275531
>>75529
Даже без подсветки есть
https://www.youtube.com/watch?v=kD93nsghj9A
439 1275534
>>75505

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


Ссылку в студию.

>>75506

>Хочу посмотреть как strcat реализован


Обычно такой хуйней никто не занимается. А тупо использую библиотечные функции. Ибо кому интересно заново в 100500 раз изобретать велосипед...

>>75529

>Нихуя, тут кто-то до сих пор в 98й студии графоманит.


Так а хуле нет? Легкая, быстрая IDE. Ничего лишнего. Для новичка - самое то. Правда пришлось под это дело WinXP на виртуалку ставить, но все равно. Потом, когда садишься на MSVS 2017, охуеваешь от одной только возможности ебашить код сразу в 2 файла в одном окне.
440 1275535
>>75534
Пример уже не найду, сейчас по памяти напишу:
strcpy(result,st.str);
strcpy(result+st.str,st1.str);
https://ru.stackoverflow.com/questions/185114/Перегрузка-оператора-конкатенация
Мне просто все говорят что нужно именно понять как оно работает, а не просто брать и использовать. В ВУЗе даже запрещают использовать библиотеку string, либо сначала продемонстрировать самостоятельную реализацию, а потом уже заменять на нормальный код.
441 1275551
Подскажите плес, как добавлять библиотеки в CodeLite или подобную ide.
442 1275565
>>75535
Сишные функции уже скомпилированые лежат в виде объектых файлов.
Вот тебе пример strcpy, лол https://ideone.com/cCUn0j
443 1275577
>>75565
Бля. А если я захочу понять как работает та же strcat то мне на свой опыт прийдется опираться? Или всем похуй и ими пользуются так же как и каким-то cout, не задумываясь об использовании? Внезапно понял что это принципы ООП
444 1275602
>>75577
Тебе сначала нужно понять, что из себя представляет строка и научится работать с указателями. Интуитивное понимание всех этих строковых функций появится после. Но если тебе нужин быстрый фикс, то вот https://linux.die.net/man/3/strcat
445 1275604
>>75577

>всем похуй и ими пользуются так же как и каким-то cout, не задумываясь об использовании


This
446 1275605
>>75602
>>75602

> научится работать с указателями


Тут выше писали что современный С++ делает всё, чтобы люди не ебались с этими указателями. А за ссыль спасибо, я так понимаю это все с практикой прийдет?
447 1275608
>>75605

> чтобы люди не ебались с этими указателями


enable_shared_from_this
Пиздец бесит
448 1275632
>>75341
Добра
449 1275763
>>75531
Я смотрю там у него ещё есть комментарии // TODO, { стоят без переноса. Чувак прямо из прошлого стримит.
450 1275774
>>75763
А чего добился ты?
https://github.com/nothings
451 1275811
>>75774
Я смог попасть в будущее.
Воксельные игрушки есть на compute shader'ах написанные. Его поделка сама по себе любопытная, но на данный момент уже сильно пахнет мамонтами.
Кстати странно, что он git вместо православной cvs использует как вспомню про неё, аж трисёт пздц.
452 1275832
>>75605

>Тут выше писали что современный С++ делает всё, чтобы люди не ебались с этими указателями


Не ебаться с ними это одно, не знать как они работают это другое. С++ дизайнился как язык с абстракциями, но при этом производительный как С. А производительность эта получается как-раз за счет низкоуровневой ебли с разными вещами, включая указатели.
Я бы на твоем месте задумался, а нужен ли мне С++. Моим первым языком были кресты, и, после того как я попробовал другие языки, я жалею о том, что не сдеал этого раньше. Я не хочу сказать, что С++ плох, просто так оказалось, что задачи которые я решал, луше подходили для других языков и я переплачивал своим временем за ненужную мне производительность.
453 1275840
>>75832
Ну понятное дело что я не забью на них. Без них я так понимаю никак, те же указатели на кучу делать как-то нужно.
454 1276017
>>75832
10 литров чаю этому адеквату
455 1276167
>>75832
Хотелось бы добавить что, чтобы ебаться с низкоуровневыми вещами не просто так, а реально увеличивая производительность программы, нужно обладать специфическими байтоёбскими скилами. И вообще редко у кого получаеться эффективно ебаться с байтами и делать высокоуровневые абстракции, зачастую просто не хватает времени. Именно по этой причине программирование медленно но верно разделяется на сишное байтоёбство и выскокуровневые абстракции, как в своё время от ассемблера отпочковался C.
456 1276177
>>76167
Зачем тогда отпочковывался ассемблер если был фортран?
457 1276187
>>76167
Мне вот наоборот байты поебывать и ковыряться в профайлере как-то проще, чем выдумывать всякие там абстракции. Я прям кончаю, когда программа начинает работать быстрее. А вот как-то структурировать код я не умею, от того и страдаю.
458 1276397
>>76187
Такая же хуйня, брат.
459 1276430
Как лучше реализовать инвентарь в текстовой игре? Вектор юзать, массив объектов?
460 1276601
Привет,анон!Объясни назначение аллокаторов.До этого листинга страуструп использовал new и delete,и тут вдруг пошел такой изъёб.Зачем?
461 1276603
>>76601
Очень редко (но иногда очень важно), чтобы память бралась не из кучи, а из чего-нибудь другого. Например, чтобы сделать всякого рода кеши. Или, например, Fixed-Size аллокаторы, которые работают именно так, как тебе надо, причём со скоростью света. Но это в принципе нужно только для эмбедщины и риалтаймщины. И хрен знает, как именно это сделано в плюсах, такие вещи я руками всегда писал. STL слишком непредсказуем.
462 1276608
>>76603
Спасибо,анон!
sage 463 1276622
>>76601
Добавлю к анону >>76603

Работал над двумя разными проектами в разных местах и даже разных странах, ололо, где с самого начала выделялось несколько больших кусков памяти, и далее во всем проекте было ровно 0 аллокаций памяти. Писался собственный аллокатор, и весь STL в проекте был на нём завязан.
464 1276702
>>75529

>Нихуя, тут кто-то до сих пор в 98й студии графоманит.


Бывают чудаки, которые vim или emacs пользуются.
465 1276704
>>76702

>vim


Они просто из него выйти не могут.
467 1276713
>>76177

>Зачем тогда отпочковывался ассемблер если был фортран?



Потому что:

1) Существуют не отображенные в языке сущности, с которыми можно оперировать только в ассемблере. Как пример - части кода операционной системы, отвечающие за запуск защищенного 32 (или длинного защищенного 64) битного режима, переключение задач - всё это задействует не отображенные в память сущности (специальные регистры).

2) Существуют платформы с малым объемом памяти программ и данных - например микроконтроллеры начальных линеек и иногда проще заплатить один раз зарплату/по договор-подряду за еблю байтов, чем увеличивать стоимость всей продукции на цену дорогого МК что на крупных партиях дает нехуёвые такие суммы.

3) SIMD-инструкции, даже сегодня заставить компилятор и увидеть в нетривиальном коде и использовать сложно. Впрочем, задача решается интринсиками и тут ассемблер, на самом деле, пролетает.

Ну и да, уже из предпоследней вижуалстудии ассемблер выкинули.

Что какбе намекает нам о его реальной необходимости во втором десятилетии 21 века.
468 1276883
Анон, поясни за string_view
Когда и как его лучше использовать?
Интересует передача в функцию, возврат из функции.
469 1276957
>>76883
Замена для const string&, но только не тратятся ресурсы, если ты передаешь туда char*
470 1277062
Что вообще делают на плюсах? Вот скажем есть чувак в ДС, он не знает никаких предметных областей, типа геймдева или машин лернинга. Но знает модерн С++.
Какие вот у него перспективы? Я чет смотрю вакансии на хх и там какая-то хуйня. Требования обычные, но что они блять пишут вообще на голых крестах? Калькуляторы на винапи или что блять? Я вот не могу представить.
Есть вообще смысл задротить плюсы, если ты не занимаешься наукоемкими штуками? Не выйдет так, что ты будешь через n лет сосать хуй в какой-нибудь отечественной компании за 50к в ДС?
471 1277066
>>77062
А ты быстро смекнул что к чему. У многих на это уходят годы.
472 1277078
>>77062
Игоры
473 1277079
>>77062
А по делу, бекенд например который работает со стримом видео. Кроссплатформенные либы, под разные архитектуры. Но пока ты достигнешь такого уровня у тебя волосня на яицах поседеет.
474 1277080
Так же серъезные забугорные вакухи зачастую это стронг скил це плюс плюс. Так же погляди нпример на русский стартап nginx у них постоянно висят вакухи це плюс плюс
475 1277082
>>77062

>Что вообще делают на плюсах?


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

>Какие вот у него перспективы?


Хуевые, так как конкурировать нужно будет с мужиками двадцатилетним опытом. Эти же мужики давят зарплаты вниз - их очень дохуя.
Учи CUDA, там процент шарящих мужиков с личинками и ипотекой значительно ниже.

>Есть вообще смысл задротить плюсы, если ты не занимаешься наукоемкими штуками?


Математик, знающий кресты, и рождающий более-менее приемлемый код (типа меня), обезьяна настолько редкая, что на фирмах, как правило, один дядька пишет алгоритмы на скриптовом языке, а второй уже переписывает их на C++ (особенно в случае CUDA). Поэтому имеет смысл. У меня коллега (который как раз 35+) сначала писал обвязки для моего говнокода, теперь уже сам вкатился в научную часть и пилит что-то.

>Не выйдет так, что ты будешь через n лет сосать хуй в какой-нибудь отечественной компании за 50к в ДС?


Как раз с крестами зарубежную удаленку найти просто, поэтому вопрос сосать хуи в отечественной компании или нет не стоит, после пары лет опыта надо уже подыскивать западную удаленку.
476 1277090
>>77082

>Учи CUDA


Что там учить? Там вопрос не скилла, а просто времени. И приложений твоей куды особо нет. Ну кроме как диффуры решать в нии, чем ты и занимаешься похоже.
477 1277103
>>77090
Манька с клиповым мышлением, предложение до конца дочитай.
478 1277111
>>77103
Дочитал и что там?
479 1277114
>>77111
Там ответ на вопрос, почему нужно учить CUDA.
На самом деле для молодежи сейчас есть ровно два стула, либо учить CUDA, либо не учить кресты вообще. Все остальное дно и прозябание в безуспешных попытках конкуренции с сорокалетними дядьками.
480 1277119
>>77114
Да ты заебал. Где твоя куда используется вообще? На хх 20 вакансий с кудой на весь ДС, из них 15 с машин лернингом. Че ты за дичь втираешь? Ни у кого блять нету кластеров с нвидиа, кроме каких-нибудь универов, а если какой-то софт на gpu, то там opencl юзают по понятным причинам.
481 1277121
>>77062
Там выше про сорокалетних мужиков уже антон отписался. А получилось это потому,что за последние лет этак десять с++ стабильно выдавливался из привычных ниш другими языками. Это вызвало жёсткую конкуренцию и навес предложения над спросом. Так что лучше выбрать другой язык для вкатывания, а c++ иметь прозапас (либо пару-тройку лет работать в говНИИ/касперском/яндексе за жрат, а потом уёбывать на галеру/удалёнку или за бугор).
482 1277127
>>77119

>Где твоя куда используется вообще?


Текущее десятилетие это миграция высокопроизводительного софта на видюхи. CUDA, OpenCL - не так важно, но у нвидии намного лучше тулчейн, а отлаженный CUDA-код переносится на OpenCL чисто механически. Софт, как правило, юзает, и то, и то, потому что на карточках nvidia opencl работает медленно, а особых проблем поддерживать два API нет, если, конечно, у тебя не софт уровня OpenCV.

>На хх 20 вакансий с кудой на весь ДС, из них 15 с машин лернингом.


И что? Со словом джава вакансий в два раза больше, чем со словом с++, однако почему-то ты в крестотреде. Если для тебя критерий - количество вакансий, что ты тут вообще забыл. Это рынок, можно работать на широком рынке взаимозаменяемых обезьянок, а можно быть эксклюзивным спецом, и искать новую работу на месяц дольше, но зато с зарплатой повыше автоматом. Тебе нужна одна вакансия, на которую тебя возьмут. Остальные это просто информационный шум.
А теперь пройдись по этой тысяче вакансий с++ на хх и выкинь оттуда поддержку легаси говна, ебанутых людей ("Проект - десктопный клиент лично-командного мессенджера." - на С++ в 2018 году), вакансии, где с++ упоминается в списке из 20 языков и прочий кал. Останется, может, сотня чего-то годного. Из них 10 будут теми, где знание видюх жирный плюс. И это дохуя.
483 1277131
>>77127

>а можно быть эксклюзивным спецом, и искать новую работу на месяц дольше


Ну тут такое... Можно и за год не дождаться.
484 1277158
>>77127

>Текущее десятилетие это миграция высокопроизводительного софта на видюхи



Угу, в формате "Бля, как к этому кораблю приделать крылья и колёса, чтобы он при этом ездил как болид Top Fuel и летал аки МиГ-31".

Нормально перекладывается по-сути только развертка цикла/map по большому количеству несвязанных объектов и то, только на простых алгоритмах в несколько строк. Тупо потому, что на сложных начинается ебань с плясками и архитектурой, заточенной под рендеринг потреблядской игроёбы с кинцом и прочих дрейкфейсов для даунов. Тут тебе и кеш размером как на Pentium 2 в его бюджетнейших модификациях, и выполнение обоих веток кода на ветвлениях (а если у тебя какой-нибудь паттерн-матчинг то вообще отсос фрактала).

По итогу вся CUDA сводится к "переписать сложный алгоритм в лапшу из кучи проходов простых и то, если у тебя много данных".
485 1277175
>>77158
Как боженька расписал. Но с точки зрения наличия работы вся эта ебанина это очень хорошо.
486 1277188
Ух, не думал что у вас все так плохо плюс сисисьники
487 1277211
>>77188
Да. Плохо и неинтересно. Не заходи сюда.
488 1277213
>>77090

>Ну кроме как диффуры решать в нии


Дифуры на куде как раз очень неудобно решать.
489 1277399
>>76957
А если у меня small string optimization срабатывает?
image.png6 Кб, 569x107
490 1277472
Пикрелейтед, temp - структура-шаблон intg, у которой есть метод l_3 с одним int в параметрах.
Как корректно записать тип r без auto или decltype? (Если попробовать его привести к другому типу, он обзывается как в комментарии, и такой тип даже не компилируется.
И как вообще этот объект называется, лол? По запросу "указатель на метод класса" в первых 4 пунктах что-то другое.

Вообще, там несколько десятков методов одинакового типа вроде l_3, их все нужно вызвать и ещё перед/после каждого выполнять одни и те же действия. Код для пяти штук раздулся уже на две страницы и для краткости хотелось бы или записать это в цикле (или просто передавать методы в другой метод с обёрткой).
491 1277482
>>77472
Всё просто и понятно, как это обычно бывает с указателями на функции.
RetT (intg<T>::⁎ r)(int) = &intg<T>::l_3;

https://en.cppreference.com/w/cpp/language/pointer#Pointers_to_member_functions
492 1277486
>>77472

>И как вообще этот объект называется, лол? По запросу "указатель на метод класса" в первых 4 пунктах что-то другое.


Указатель на метод отличается от указателя на функцию тем, что у метода первым параметром должен идти указатель this. Поэтому он и cannot convert.
493 1277487
>>77486
А если это static метод?
image.png1 Кб, 263x53
494 1277504
>>77482
Благодарю, разобрался. Заработало _zn<T> (intg<T>::* r)(int)=temp.l_3; (&temp.l_3 и &intg<T>::l_3 тоже работают)
Запутался с этим RetT - в текстовом классе (возвращающем нешаблонный тип) всё работало, что сильно меня смущало.

А ещё вопрос. Там внутри intg прописано using zn=_zn<T>. Возможно ли заменить явное указание вспомогательной структуры _zn<T> на что-то менее громоздкое, чем typename intg<T>::zn? Почему просто temp::zn не работает? Синтаксически довольно ясно что это означает, вроде бы.

>>77486

>cannot convert


Это ошибка осталась, когда я написал int i = r, просто чтобы среда разработки показала свои соображения по поводу типа r. Код то нормально компилируется.
495 1277519
>>77504
В студии кодишь? В gcc работает только &intg<T>::l_3

Здесь нельзя обойтись без typename, т.к. это какая-то залупа, связанная с name lookup
https://en.cppreference.com/w/cpp/language/dependent_name

Можно задефайнить тип метода как-то так:
template<class T>
using IntgFun = typename intg<T>::zn (intg<T>::*)(int);
...
IntgFun<double> r = &intg<double>::l_3;
image.png11 Кб, 375x267
496 1277524
>>77519
Нет, qtcreator+mingw64. Вот тут работает любое из a.f/&a.f/&A::f - даже предупреждений нет. Меня тоже удивило, по сравнению с требованием ко всяким typename это очень неожиданно.
497 1277558
>>77524
Зачем таике ебанутые наименования?
498 1277614
Анон, вопрос не про с++, но тем не менее
Как проектируют системы? Не имею ввиду какие-то мегапрограммы типа игр, браузеров и тд. А, допустим, какие-то их небольшие элементы/части.
Например, система событий. Можно написать на switch/case что-то, можно с наследованием или какую йобу на шаблонах.
Как учиться таким штукам? Читать код, конечно, можно и нужно, но и авторы ведь тоже откуда-то эти мысли брали.
499 1277672
>>77614

>Как проектируют системы?



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

Но до того как они становятся удачными решениями пишется куча прототипов/рабочих задач в том числе и кривых.
500 1277673
>>77614

А так, "теорию решения изобретательских задач" почитай, там примерно требуемые приёмы работы головой в подобных задачах описываются.
501 1277739
>>77614

>но и авторы ведь тоже откуда-то эти мысли брали.


Методом тыка скорее всего, ну или методом мысленного тыка, если опыта сильно дохуя. Читай код, а лучше всего используй его, нахуя сейчас, например, писать систему событий.
502 1277740
>>77673
Говно уровня гербалайфа.
504 1277817
>>63368 (OP)
Добрый вечер дороги антуаны. Нужна ваша помощь.
https://pastebin.com/uE5sNGXj
Код для полиза. Не могу разобраться в строчках:
16)Stack() : head(0) {}
67)return head == 0 ? true : false;
Искал в интернете, 67 строчка связана с тернарным оператором. Я правильно понял, что если head == 0, то вернется true, если нет, то false?
Про 16-ю строчку вообще ничего не понял, нарыл только что-то связанное с конструкторами класса, но на сколько я понимаю, это не тот случай. По этому прошу помочь разобраться.
505 1277821
>>77817

> Я правильно понял, что если head == 0, то вернется true, если нет, то false?


Йеп

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


Конструктор который ничего не принимает и инициализирует head в ноль

https://en.cppreference.com/w/cpp/language/initializer_list
506 1277824
>>77817
Если это действительно, что-то связанное с классами, то есть ли другое объяснение этому двоеточию. Классы мы только начали проходить, а это долг полугодовой давности, т.е тогда мы знать не знали про классы. И возможно препода не устроит такой ответ.
507 1277826
>>77821
Спасибо за помощь!
zetta slow!.jpg19 Кб, 300x300
508 1277839
Screenshot1.png36 Кб, 902x659
509 1277847
Ребят, поясните пожалуйста, как подобное реализовать на плюсах. Интересует та часть, что со статичным инстенсем класса.
Подобное юзал в юнити как синглтон для написания гейменеджеров, после переката на анрил возникла такая проблема.
Screenshot2.png26 Кб, 646x603
511 1277857
>>77850
Спасибки, разобрался уже, до этого чёт не мог нагуглить. facepalm
512 1278049
513 1278076
Структура с полями abcdef. Почему в с++ отказались от подобного синтаксиса инициализации структур?
В си работает, в с++ только если указывать несколько последовательно объявленных в структуре полей, из-за чего весь смысл указания имён полей теряется.

>>77558
Для краткости, это же пример. Да там и вся программа просто поделка на один день, просто попробовать сделать одну штуку.
514 1278255
>>78076
в c++ именованные аргументы в функциях/конструкторах заменяются правильным использованием системы типов
515 1278338
>>78076
Я слышал, что какие-то проблемы с грамматикой были раньше (хотя как будто их и не было никогда, грамматика плюсов дохрена перегружена и так). В двадцатых плюсах вроде исправили:
https://en.cppreference.com/w/cpp/language/aggregate_initialization
516 1278406
>>63368 (OP)
https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application#Linking_your_application_against_the_shared_library
[code]#include <QtGui>

#if defined TEST
#define TEST_COMMON_DLLSPEC Q_DECL_EXPORT
#else
#define TEST_COMMON_DLLSPEC Q_DECL_IMPORT
#endif

class TEST_COMMON_DLLSPEC Widget : public QWidget {
......[/code]
Что это за залупа такая? Реально эти макароны писать надо? Что-то я не припомню, как я раньше хоть раз такое видел.
517 1278556
>>74027
Исключения не тормозят рантайм.
Смотри не пиздани на собеседовании где нибудь такую хуйню.
518 1278560
>>77082
Ну кстати эти мужики с 20+ опытом потеряли мотивацию и кое как пашут за 100-120 и не особо толку много приносят.
519 1278609
>>78406
Возня с dllimport/dllexport для экспорта символов на венде есть всегда и везде.
image.png14 Кб, 508x150
520 1278648
>>78076

>Почему в с++ отказались от подобного синтаксиса инициализации структур?

521 1278693
Всегда хотел вкатиться в плюсы, но всегда было как-то лень, но месяц назад я сказал ВСЕ! Я СДЕЛАЮ ЭТО!. И как же у меня сгорела жопа за этот месяц, ЕБАНЫЙ ТЫЖ СТРАУСТРУП.

Но на самом деле пока все нравится. PS ебал визуал студио с его стандартами
522 1278746
Будет ли прирост производительности если я каждую переменную буду инициализировать как type* varName = new type, а затем после ее ненадобности удалять их через delete varName?
523 1278764
>>78746
Нет.
524 1278765
>>78746
Визуал студио автоматически код оптимизирует. Лучше гугли как настроить компилятор грамотно.
525 1278771
>>78765
Окей, спасибо.
Кстати, как можно в студии узнать сколько памяти и времени скушала программа?
526 1278775
>>78746
Наоборот. То ты на стеке выделяешь простым сложением или вычитанием, а тут в куче. Прочитай кернигана и ричи
527 1278777
>>78771
Используй встроенный в VS отладчик.
528 1278778
>>78775
Я читал, но не нашел об этом инфы.
529 1278782
Поясните за QT framework. Что за йоба такая и с чем его едят. Кроме того, можно откуда нибудь скачать просто нужные либы и юзать их? Не хочу я ставить сверх визуал студии 100гб этого фрейма.
530 1278795
>>78782
Плюсы - это голый язык, файлы да терминал. Чтобы использовать хоть что-то ещё, надо либо использовать вызовы ОС, либо самостоятельно, либо через фреймворк.
Qt - оконный интерфейс, сеть, интернет-соединения и очень много всего другого. В идеале, если ты не используешь платформенных особенностей и пишешь портабельный C++-код, твою программу можно собрать под любую платформу, которую поддерживает Qt.
531 1278809
>>78795
Допустим в планах десктоп под шиндоус + много работы с винапи и системой в целом. Стоит накатывать QT? Или есть какие-то другие библиотеки/что-то еще? И как это все гуглить? Пытался найти библиотеку для работы с винапи - соснул хуй, якобы везде всё пишут сами. Спасибо за ответ.
532 1278851
>>78809

> Пытался найти библиотеку для работы с винапи


M F C
F
C
533 1278888
Есть тут чтецы книги Липмаана?
Заканчиваю главу про копирование, присвоение, удаление.

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

class QueryResult {
friend std::ostream& print(std::ostream&, const QueryResult&);
public:
typedef std::vector<std::string>::size_type line_no;
typedef std::set<line_no>::const_iterator line_it;
QueryResult(std::string s,
std::shared_ptr<std::set<line_no>> p,
std::shared_ptr<std::vector<std::string>> f):
sought(s), lines(p), file(f) { }
std::set<line_no>::size_type size() const { return lines->size(); }
line_it begin() const { return lines->cbegin(); }
line_it end() const { return lines->cend(); }
std::shared_ptr<std::vector<std::string>> get_file() { return file; }
private:
std::string sought; // word this query represents
std::shared_ptr<std::set<line_no>> lines; // lines it's on
std::shared_ptr<std::vector<std::string>> file; //input file
};

class TextQuery {
public:
#ifdef TYPE_ALIAS_DECLS
using line_no = std::vector<std::string>::size_type;
#else
typedef std::vector<std::string>::size_type line_no;
#endif
TextQuery(std::ifstream&);
QueryResult query(const std::string&) const;
void display_map(); // debugging aid: print the map
private:
std::shared_ptr<std::vector<std::string>> file; // input file
// maps each word to the set of the lines in which that word appears
std::map<std::string,
std::shared_ptr<std::set<line_no>>> wm;

// canonicalizes text: removes punctuation and makes everything lower case
static std::string cleanup_str(const std::string&);
};

Так вот в конце главы про копирование вопрос:
Должны ли классы TextQuery и QueryResult определять собственные версии функций-членов управления копированием?
Я так вижу что при текущей реализации класса достаточно синтезируемых. При копировании обоих классов у нас увеличиваются счетчики ссылок shared_ptr что исключает удаление данных. Если же один из скопированных экземпляров будет удален, счетчик уменьшится и все довольны.
533 1278888
Есть тут чтецы книги Липмаана?
Заканчиваю главу про копирование, присвоение, удаление.

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

class QueryResult {
friend std::ostream& print(std::ostream&, const QueryResult&);
public:
typedef std::vector<std::string>::size_type line_no;
typedef std::set<line_no>::const_iterator line_it;
QueryResult(std::string s,
std::shared_ptr<std::set<line_no>> p,
std::shared_ptr<std::vector<std::string>> f):
sought(s), lines(p), file(f) { }
std::set<line_no>::size_type size() const { return lines->size(); }
line_it begin() const { return lines->cbegin(); }
line_it end() const { return lines->cend(); }
std::shared_ptr<std::vector<std::string>> get_file() { return file; }
private:
std::string sought; // word this query represents
std::shared_ptr<std::set<line_no>> lines; // lines it's on
std::shared_ptr<std::vector<std::string>> file; //input file
};

class TextQuery {
public:
#ifdef TYPE_ALIAS_DECLS
using line_no = std::vector<std::string>::size_type;
#else
typedef std::vector<std::string>::size_type line_no;
#endif
TextQuery(std::ifstream&);
QueryResult query(const std::string&) const;
void display_map(); // debugging aid: print the map
private:
std::shared_ptr<std::vector<std::string>> file; // input file
// maps each word to the set of the lines in which that word appears
std::map<std::string,
std::shared_ptr<std::set<line_no>>> wm;

// canonicalizes text: removes punctuation and makes everything lower case
static std::string cleanup_str(const std::string&);
};

Так вот в конце главы про копирование вопрос:
Должны ли классы TextQuery и QueryResult определять собственные версии функций-членов управления копированием?
Я так вижу что при текущей реализации класса достаточно синтезируемых. При копировании обоих классов у нас увеличиваются счетчики ссылок shared_ptr что исключает удаление данных. Если же один из скопированных экземпляров будет удален, счетчик уменьшится и все довольны.
534 1278939
>>78746
Почитай, что такое куча и стек.
535 1278973
>>78809

>библиотеку для работы с винапи


что это такое хоть ёбт
536 1278976
Сап всем. Помогите начинающему. Искал на просторах сети код программы для перевода из 10чной в 16ную систему исчисления. Нашел, подправил чтоб нравилось мне. Работает код, поясните только откуда там блять взялись эти 48 и 55, понимаю что наверное тупой вопрос, но реально не понимаю. https://pastebin.com/E7E0xzNK

Заранее благодарю.
537 1278987
>>78851
Все говорят что говно + нихуя не упрощает работу. Ахуеть блять, почему за 20 лет никто нормальных библиотек не наклепал? Не верю, что все десктоп-мани на чистом winapi делают. Придется качать QT.
538 1279012
Как можно найти минимум и максимум функции?не массива
539 1279023
>>78976

>https://pastebin.com/E7E0xzNK


Автор мудак просто конченный.
48 это код символа '0', а 55 это код 'A'-10.

И это если на время забыть тот неудобный факт, что преобразование в 16-ную систему делается одной строчкой sprintf(hexnum, "%X", num);
540 1279024
>>79012
Математико-тред там >>>>>>>>>>>
И вообще оптимизация функций это очень глубокая нора. Функция-то хоть унимодальная?
541 1279025
>>79012
Надо посмотреть её код, на основе кода можно сделать этот вывод.
542 1279027
>>79012
welcome to "Теория оптимизации"

http://bigor.bmstu.ru/?cnt/?doc=MO/MO.cou
Читай гл.4 и ебись как хочешь
543 1279063
>>79023
Можешь объяснить этот момент подробнее? С нулём я понял, а 'A' - 10 что значит?
544 1279065
>>79023
Таблицу ASCII я уже нашел, и значения в ней тоже совпадают с теми что ты сказал.
545 1279127
>>78987

>почему за 20 лет никто нормальных библиотек не наклепал?


Потому что появился WPF.
546 1279166
>>78693
Кидай вижуал студень. Лучше скачай Qt Creator - нормальная такая ide, можно с g++ и линуксом юзать, на винде тоже норм и главное НЕ ТОРМОЗИТ ААА СУКА КАК ЖЕ Я РАД ЧТО ПЕРЕШЕЛ НА НЕГО С ЕБАНОГО ВИЖУАЛ СТУДИО
547 1279258
>>63368 (OP)
Obnovite v shapke faily s knigami. Nekotorie na mege uzhe ne rabotaut. Sorry za translit.
548 1279313
>>79258
Либген тебе в помощь.
549 1279346
>>78693
>>79166
Кидай вижуал студень. Лучше скачай VIM - нормальная такая ide, можно с g++ и линуксом юзать, на винде тоже норм и главное НЕ ТОРМОЗИТ ААА СУКА КАК ЖЕ Я РАД ЧТО ПЕРЕШЕЛ НА НЕГО С ЕБАНОГО ВИЖУАЛ СТУДИО
550 1279428
>>74732
Стандартная функция abs(сюда вставить значение).
551 1279432
>>79346

>Лучше скачай VIM - нормальная такая ide


Лучше пусть нюфане сублайм или vscode.
552 1279438
Как можно узнать через g++ сколько памяти кушает программа?
553 1279449
>>79346
Не слушай даунов с атлоном ХР вместо компуктера, и работай на нормальных тулзах. Лучше студии ничего не изобрели.
554 1279458
>>79438
мать твою, нельзя ли потоньше?
555 1279463
>>79458
Как можно узнать через GCC скорость работы?
556 1279507
>>79438
Как можно узнать через g++ сколько жоского диска кушает программа?)
557 1279512
Есть ли смысл вкатываться в область 3D (OpenGL и иже с ним) в 2018, или это не особо перспективное направление?
558 1279537
Гайс, где найти хороших туториалов по OpenGL(желательно ES). Что- нибудь про запил мини- движка\игоры. Что-то такое.
Заранее аригато.
560 1279545
как в QtLocation создать MapPolygon ручками, а не прихерачив его заранее в коде? ну тип, что я тыкая мышкой по карте, собрал свой полигон, и потом с ним что-нибудь делал?
561 1279548
>>79449
Да твоя ебаная студия прям как твоя тян - сколько бы у тебя ни было ресурсов, ей все мало.
562 1279580
>>79512
Если кратко, то нет.
563 1279687
>>79463
Давай начнём с простого. Какая работа тебе нравится: повар в МакДональдс или курьер?
564 1279689
>>79507
в голос
565 1279704
>>79507
g++ это govno++?
Студент 567 1279834
Может кто подскажет пару опенсорсов на плюсах, хочу вкатиться в чтение настоящего кода
568 1279849
>>79580
Почему?
569 1279858
>>79849
стамины не хватит чтобы чтобы дойти до хайэнд контента игры с работой за деньги
другой анон
570 1279859
>>79834
Тебе из какой сферы хоть?
571 1279880
>>79858
Я миддл разработчик, который сейчас находится без работы, и ищет новые предметные области, ибо пятый год подряд трачу жизнь на десктоп парашу (стек Qt/Qml). Меня просто уже заебало.
572 1279884
>>79880
А, ну так вот в общем ищу в какие смежные области вкатиться. Потихоньку ковыряю вулкан, но не знаю, есть ли резон in the long run.
573 1279920
>>79884

>Потихоньку ковыряю вулкан


Ну это ты зря. Реальный профит с него могут получить только те, кто прохавал работу с gpu с самого низа (вплоть до драйверов). Лучше ковыряй какой-нибудь UE и посмотри на opengl + glsl, чтобы понять общие принципы работы с графикой.
>>79512
Основной спрос на графику составляет гейдев. Если ты опытный разраб с нормальной ставкой, то вкатываться в него ты скорее всего не станешь. Бесконечный поток студентов сильно режет зарплаты и создаёт на редкость скотские условия труда (дешманский "офис", забитый под завязку, испыталка от полугода, ~70% зп в серую, праздники рабочие, отпуск 2 недели, в "соцпакет" входит только оплачиваемый больничный, отношение к новичкам как к бесправному говну).
574 1279924
>>79920

> Бесконечный поток студентов сильно режет зарплаты и создаёт на редкость скотские условия труда (дешманский "офис", забитый под завязку, испыталка от полугода, ~70% зп в серую, праздники рабочие, отпуск 2 недели, в "соцпакет" входит только оплачиваемый больничный, отношение к новичкам как к бесправному говну).



Примерно такого ответа ожидал. Я просто работал 4 года в тепличных условиях и конкуренции особо не застал, поэтому мне было интересно услышать опыт тех, кто что-то знает об этих всех скотских условиях и дерьме.

>Если ты опытный разраб с нормальной ставкойx



Да не то что бы, я не особо далеко ушел, на $15 в час ковырял десктопную парашу, все проекты одинаковы и чувствую эмоциональное выгорание. Хочется свежего глотка воздуха да и предметную область с большим потолочком, чем десктоп.
575 1280132
>>79924
опиши примеры проектов? Сколько человек, что вообще получается на выходе?

Сам уже 7 лет работаю в 1С и меня уже доебала эта область. Я конечно не считаю это нормальным программированием, так еще и работа вся заключается в том что запрос - выборка таблицы ,обработка таблицы, ну и что-то в форме поковырять. И бесконечная ебота с проблемами пользователей, то остатки у них то еще что. Хотя именно этим я почти не занимаюсь.

Думаю перекатиться в с++, который когда то еще со школы изучал. Читаю пока Липпмана. Хочется работать над чем то реальным и на реальном ЯП. Правда как пережить даунгрейд по ЗП не представляю
576 1280351
в чем разница между MapPolygon и GeoPolygon в Qt? в доках ни слова, ни где ни слова
577 1280518
Такой вопрос. В консоль надо вводить числа. Если я введу букву, то cin ломается. Это понятно. Но почему не работает связка
cin.clear();
cin.sync();
после этого места, чтобы попытаться ввести число заново?
578 1280577
>>80518
Потому что букву ты не потребил и не пропустил. Надо делать ignore()
https://en.cppreference.com/w/cpp/io/basic_istream/ignore
579 1280583
>>80518
Короче, в зависимости от того, какой у тебя формат ввода, ты по-разному можешь пропускать. Можно по одному, можно пропустить до следующего пробела и т.д.
580 1280614
>>79548
Поставь еще планку на 4гб памяти, нищеблядь
581 1280818
>>80518
https://pastebin.com/t9GPFYvy
Я в своем маленьком консольном проекте на си делал так.
582 1281267
nkun:
Сап, С++ боги.

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

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

Так вот, реализовать само дерево могу, вставку двумя описанными выше вариантами тоже, но не могу определиться как будет правильно - left <= root < right или left < root <= right, не так много инфы по этому поводу смог найти. А так же, я хз как оптимизировать вставку, вот допустим, у нас есть дерево:

5(root)
4(left) 6(right)

Вставляем значение 5, присваивая новые связи по правилу left < root <= right:

5(root)
5(right)
4(left) 6(right)

Как теперь вставить 4?

Вот тут я и запутался, ибо если вставить новый ключ с значением 4 как левый потомок рута, как я понимаю, быстрый поиск по дереву наебнется, ибо если нужно будет найти все значения по ключу 4, то поиск пойдет по левой ветке, игнорируя правую, т.к 4 < 5. Решить это можно так:

5(root)
5(left & right)
4(left) 6(right)

Теперь при вставке нового ключа 4 он присвоится после уже имеющегося ключа 4:

5(root)
5(left & right)
4(left) 6(right)
4(left & right)

Теперь и быстрый поиск должен работать корректно.

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

Ну и как третий вариант, можно сделать чтобы поиск шел по обоим веткам, вне зависимости от того меньше значение или больше, но толку тогда от такого дерева?

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

Подскажите как лучше, или помогите нагуглить.

inb4: ЧЗНХ???????????? ПИЗДУЙ ОТСЕДА, ДОВН. - Я ньюфаг, читал пару книжек, но опыта работы с деревьями мало и я хз как это гуглить, гугл упорно молчит по поводу деревьев с дублирующимися значениями, либо я не так гуглю, не спорю. Если пригорело от того что я возможно не учел то что тебе кажется очевидным и ты считаешь лучшим вариантом меня оскорбить - скрой пост чтобы глаза не мазолило и иди себе дальше, пожалуйста, я очень ранимый, не доводи до греха...
582 1281267
nkun:
Сап, С++ боги.

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

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

Так вот, реализовать само дерево могу, вставку двумя описанными выше вариантами тоже, но не могу определиться как будет правильно - left <= root < right или left < root <= right, не так много инфы по этому поводу смог найти. А так же, я хз как оптимизировать вставку, вот допустим, у нас есть дерево:

5(root)
4(left) 6(right)

Вставляем значение 5, присваивая новые связи по правилу left < root <= right:

5(root)
5(right)
4(left) 6(right)

Как теперь вставить 4?

Вот тут я и запутался, ибо если вставить новый ключ с значением 4 как левый потомок рута, как я понимаю, быстрый поиск по дереву наебнется, ибо если нужно будет найти все значения по ключу 4, то поиск пойдет по левой ветке, игнорируя правую, т.к 4 < 5. Решить это можно так:

5(root)
5(left & right)
4(left) 6(right)

Теперь при вставке нового ключа 4 он присвоится после уже имеющегося ключа 4:

5(root)
5(left & right)
4(left) 6(right)
4(left & right)

Теперь и быстрый поиск должен работать корректно.

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

Ну и как третий вариант, можно сделать чтобы поиск шел по обоим веткам, вне зависимости от того меньше значение или больше, но толку тогда от такого дерева?

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

Подскажите как лучше, или помогите нагуглить.

inb4: ЧЗНХ???????????? ПИЗДУЙ ОТСЕДА, ДОВН. - Я ньюфаг, читал пару книжек, но опыта работы с деревьями мало и я хз как это гуглить, гугл упорно молчит по поводу деревьев с дублирующимися значениями, либо я не так гуглю, не спорю. Если пригорело от того что я возможно не учел то что тебе кажется очевидным и ты считаешь лучшим вариантом меня оскорбить - скрой пост чтобы глаза не мазолило и иди себе дальше, пожалуйста, я очень ранимый, не доводи до греха...
583 1281366
#include <stdio.h>
#include <cuda.h>
__global__ void hello() {
printf("Hello cuda\n");
}
int main() {
hello<<<1,1>>>();
cudaDeviceSynchronize();
return 0;
}
Компилируется, запускается, но при этом не печатает ничего. Что не так?
image.png88 Кб, 982x941
584 1281377
>>81267

>5(root)


>5(right)


>4(left) 6(right)


Даже (4)5(6), 5((4)5(6)) нагляднее, мне кажется. Нарисовал бы на бумажке, сразу же сам бы понял.

>присваивая новые связи по правилу left < root <= right


>ибо если нужно будет найти все значения по ключу 4, то поиск пойдет по левой ветке, игнорируя правую


>игнорируя правую


Там и должно быть, у тебя требование, что в левой ветке все ключи строго меньше 5. Неправильная вставка, у тебя дерево 5((4)5(6)) не подходит под правило, 4 каким-то образом оказалось правее 5.

У тебя так или иначе образуется сегмент с двумя одинаковыми ключами один из которых правый для другого. Нужно или перемещать левую 4-ветвь к верхнему, или при добавлении спускаться вниз (пока значение не станет отличным от 5) и помещать новый 5-ключ на место старого 6-ключа. Тогда будет выполнено требование к дереву. Просто подумай чуть-чуть об алгоритме слияния двух деревьев, и всё станет ясно.

В общем никакого отличия от дерева со стогим неравенством ключей нет, я не понял где ты запутался. Просто при поиске если ключ совпадает, то не прекращаешь поиск, а спускаешься по правой ветке.
Ты каким-то образом вставляя в (4)5(6) новое 5 получил дерево 5((4)5(6)). Если бы ты вставлял 10 по тому же алгоритму, ты бы получил ((4)5(6))10 или 5((4)10(6)). То есть ты по каким-то причинам сам этого не замечая делаешь исключения для вставки элемента, если его ключ совпадает с уже имеющимся, хотя в твоём условии явно прописано left < root <= right, что говорит и критериях вставки любого элемента.
585 1281384
>>81377
Спасибо, я проебался только в том что подумал что надо обоих потомков присвоить новому элементу, по сути.
586 1281385
>>81377

>Даже (4)5(6), 5((4)5(6)) нагляднее, мне кажется. Нарисовал бы на бумажке, сразу же сам бы понял.


Вакаба сожрала табуляции, к сожалению, я такого не ожидал.
15345955599990.png181 Кб, 341x394
587 1281554
Ребят, много где при приеме на работу на плюсишках написано

>Опыт разработки на С++ многопоточных сетевых приложений для Linux;


Где можно поучиться разрабатывать приложения для работы с сетью? Дома такое вряд ли можно протянуть на приемлемый уровень
588 1281577
>>81554
Курс от мейл ру есть, прям так и называется.
15308791884700.jpg231 Кб, 1024x769
589 1281771
>>81577
Спасибо, действительно. Надо будет глянуть
image.png127 Кб, 1292x627
590 1281857
Аноны, можете подсказать как это работает? Сейчас читаю Прату, тут в шаблонных класах примеры дружественных функций, и в одной из программ Прата задаёт значение статическому члену без функций, при том что он находится в закрытом разделе. Как это возможно то?
591 1281913
Когда следует делать Class::func(int x) : x(x), а когда по стариночке инициаилизировать? Есть ли разница вообще на техническом уровне?
592 1281914
>>81913
Компилятр лучше код сгенерирует для версии :(), чем =.
593 1281921
>>81914
Хм, спасибо, буду знать!
594 1281942
>>81857
Это особенности плюсов, в шарпе например не так, там можно тупо в теле класса инициализировать статическую переменную. А вот в плюсах статические переменные должны инициализироваться в той же области видимости где находится класс, обычно сразу после тела класса по-моему даже обязательно, но это не точно. В методах класса ты можешь менять значение, но инициализация для дальнейшего использования происходит именно так.

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

Вот пример, почитай комментарии:
https://pastebin.com/z0tfaT2a
595 1281987
>>81913

>Когда следует делать Class::func(int x) : x(x), а когда по стариночке инициаилизировать?


Это и есть по-стариночке.
596 1281994
>>81366

>Что не так?


Карточка есть на компьютере?? драйвера?? все поставлено??
597 1282055
>>81942
Нихуя тут тонкости конечно, спасибо за ответ адекватный.
598 1282057
>>81913
Такую инициализацию можно использовать только в конструкторах класса. Она ещё список инициализации членов называется.

Если коротко, то она вызывает конкретные конструкторы для объектов, вместо операторов присваивания и прочего.
599 1282058
>>81913
В первом случае также данные инициализируются еще до создания объекта, бывают случаи, когда это нужно
600 1282060
Как в с++ получить несколько различных хэш функций?
Типа с разными параметрами. Кроме как самому писать.
601 1282085
>>82060
Не понял вопроса. Что значит "Типа с разными параметрами"?
602 1282087
>>82060
Ты имеешь ввиду как printf()?

return_type funcname(...){ body }
Почитай тут например - https://rsdn.org/forum/cpp/418970.1

Функции с переменными параметрами называется вроде.

Только вот в плюсах немного муторно выцеплять из памяти переданные в такую функцию значения.
603 1282168
>>82058
Память под объект ещё не выделена, а данные (его поля) уже инициализируются? Это как?
604 1282196
>>81913
Для записи : a(_a), b(_b) не определён порядок инициализации. Если важно, что b инициализируется после a, то придётся писать a=_a, b=_b в теле конструктора.
image.png75 Кб, 1142x542
605 1282362
Ну ахуеть теперь. Один вопрос: ПОЧЕМУ? Почему, блять, так?
606 1282373
>>82362
знаешь сколько им резюмех прилетит? несколько сотен
607 1282376
>>82362
А что не так?
608 1282377
>>82085
Просто различных. Я могу получить одну, например std::hash<std::string>(), но мне нужно несколько разных. Для одного и того же типа. Просто чтобы разные значения возвращали.
Например, если там полиномиальный хэш, то с разными множителями.
609 1282382
Нужно написать шаблонный класс для обработки контейнера. И в классе нужно хранить итератор, но непонятно какой у него тип. По идее это тип, возвращаемый container.begin(), но как это описать в коде?
image.png22 Кб, 611x344
610 1282383
Аноны, может кто подсказать почему после этой функции программа зависает. В самой программе всё рабочее, а после ее выполнения всё. Она по идее должна сортировать диагональ двумерной динамической матрицы
611 1282385
>>82383
Бля,я понял что за хуйню наделал, уже не нужно
612 1282413
>>82373
>>82376
Почему джун на питоне == джуну на крестах?
613 1282418
>>82382
Обычно в контейнере делают так:
class <typename T> Container {
typedef T value_type;
typedef value_type* iterator;
}
И там, где тебе нужен тип итератора, ты пишешь (например):
Container<int>::iterator it;
Не ленись, посмотри исходники std.
614 1282421
>>63368 (OP)
Анон, я знаю, что меня скорее всего пошлют нахуй тут, но
1) если изучать с++ в 39 часов в неделю, за сколько можно стать джуном?
2) проганье, это внезапно то, на что у меня более менее стоит.
3) есть ли курсы годные(шапку читал) именно с задачками на то, чтобы вкатится на джуна.
Т.е. - смотрю видео- читаю книжечку- делаю домашку- вкатываюсь в с++.
От ваших ответов зависит, поставлю ли я анус или нет.
25 лет.
615 1282422
>>82413
Потому что кадровики не в курсе, чем кресты от питона отличаются. Для них это одинаковые погромисты, тем более минимальной квалификации. А вообще кресты посасывают по средней зарплате и дают реальный выигрыш только для синёров.
616 1282423
>>82421
Ты можешь вкатиться в какой-нибудь НИИ на джуна вообще без знания крестов. Там всегда дефицит кадров.
617 1282425
>>82382
А что за контейнеры?
618 1282431
>>82423
>>82423
Меня интересует вкат в профессию, ибо алчный мудак и хочу денег и заниматься полезным. Вкат в С++ я думаю, возможен и дойти до ебучего IT-архитектора при должных усилиях жопы возможен за 7 лет.
Меня интересует нормальное проганье, но зайя на HH я вижу-нужен C++ 1 год проганья. Вопрос- это у меня в трудовой книжке записано
должно быть записано или я могу сказать ,что у меня год?
У меня так-то 6 лет,которых я пинал хуи в вузе С++.
Если нужен для этих тупорылых HR просто запись в книжке- я тебя внимательно слушаю, где такой НИИ, где я буду джуном C++ зная чуть более,чем нихуя.

Алсо, что вы думаете про курс специалист от МГТУ имени баумана?
619 1282437
>>82431

>Алсо, что вы думаете про курс специалист от МГТУ имени баумана?


Думаю что устаревшая дрисня. Вот неплохой курс бесплатно и без смс, как говорится. https://www.youtube.com/watch?v=Hh_zeW2P8uo&list=PLrCZzMib1e9raTDJ5IyuSHe9AmOUHAAsr
620 1282438
>>82437
2015 год.
621 1282440
>>82438
Кинул тебе выше свежачок 2017 от мейлру. С 2015 года уже дохуя стандартов ввели.
622 1282444
>>82440
Так, тогда ещё вопросы:
1) Актуальны ли книги в шапке- или нужно читать максимально близкие к 2018 книги по с++. Шлее норм?
2) Есть ЗАДАЧКИ ЧТОБЫ ВОТ СДЕЛАТЬ И ВЫЛОЖИТЬ НА ГИТХАБ ИХ ТЕБЯ ПРИНЯЛИ В КРУПНУЮ КОМПАНИЮ НА 300 КККК В НАНОСЕК.
ну или хотя бы бичом за 25к
25-кун близок к ставке ануса.
623 1282446
>>82431

>ибо алчный мудак и хочу денег


тогда тебе в Web

>дойти до ебучего IT-архитектора при должных усилиях жопы возможен за 7 лет


это вообще не про конкретный язык программирования

>но зайя на HH я вижу-нужен C++ 1 год проганья


Иди и собеседуйся. Скажи что в своей шараге курсачи писал на c++. Если будут посылать не стестняйся спросить как тебе получить необходимый опыт.

И вообще сцуко ты 25 летний жлоб, а вопросы, как будто ты только что из своего манямира вылез. Ты ведь ещё нигде не работал, да?
624 1282448
>>82444
1) Смотришь, когда вышли стандарты языка и смотришь дату выпуска книги. Если книга вышла позже - то смело читай.
2) Твой помойный гитхаб никто смотреть не будет. Понять, что это твой код, невозможно да и зачем в говне ковыряться. Обычно конторы дают тестовое или просят написать какой-нибудь код на месте.
625 1282454
>>82446
Понимаешь, есть такое понятие,как отложенная гратификация.
Вообщем был эксперимент, когда детям дали выбор- тебе дают конфету сейчас или две конфеты потом. Потом детям, которые выбрали 2 конфеты потом давали снова выбор- либо 2 конфеты сейчас либо 4 конфеты потом. И так несколько итераций.
Я думаю, не надо объяснять, что в жизни стали успешны те, кто выбрал отложенную гратификацию- т.е. несколько конфет, но потом.
Веб- это конфета сейчас.
С++ это несколько конфет потом.
Ибо полноценный вкат в С++ это около 700к при вжобывании потом.
веб не настолько прибыльный,как С++ Senior а меня интересует глубокое погружение. Т.е. если мы говорим про архитектуру то web- это около 300к после 5 лет, а с++ это 450к-700к при вжобывании.
К тому же С++еров мало, а веберов дохуя.

т.е. веб не настолько годный для мозга и все таки он скучный. На крестах же можно вкатится в очень хорошие зарплаты и самое главное это мне интересно более менее.
В шараге я писал на С++ первый курс, потом я пинал хуи и я теперь всё забыл.
работал и работаю.
626 1282466
>>82454

>в жизни стали успешны те, кто выбрал отложенную гратификацию


кто не сидел на жопе ровно

>С++ это несколько конфет потом.


Нахуй нужен язык, который тянет за собой легаси говно с начала 90-х, у которого уже сейчас стандарт более 1500 страниц? Его заменят на более лаконичную версию и тебе, пирожок, придётся переучиваться (опять).

>web- это около 300к после 5 лет, а с++ это 450к-700к при вжобывании.


Пример для тупых: ты работал 5 лет за 100к, а вася за 150к в вёбе. Потом тебе подняли зарплату до 200к. И вот вроде бы ты васю выебал, ан нет. Тебе ещё придётся поработать 5 лет, чтобы ваш суммарный доход за 10 лет стал одинаковым. И более того, васян мог поиметь процент с той суммы которую ты недополучил (купил хату раньше тебя или под процент их в банк положил). Поэтому тебе, будущий синёр-архитектор с++, придётся ещё пару-тройку лет васю догонять. (итого до получения реального профита потребуется въйобывать 13 лет).

>К тому же С++еров мало, а веберов дохуя.


Ну да, чем больше рынок, тем больше требуется рабочей силы для его насыщения.

>С++ это около 700к при вжобывании потом


>В шараге я пинал хуи и я теперь всё забыл


дайте мне 700к, а вжобывать я потом буду

Те большие зарплаты, которые ты видел, они не про идеальное знание с++, а про отличное знание предметной области и умение писать всякую сложную и высокопроизводительную алгоритмическую ебанину с применением матана, статистики и прочего саенса.
627 1282474
>>82454
>>82466
Кстати, хорошоий пример для тестового. Загугли, что такое сложный процент и напиши программу, которая вычисляет время, за которое суммарный доход c++ и web кодеров становится одинаковым. Входные данные - процент (можешь взять ставку рефинансирования с cbr.ru), массив с тройками: salary_web, salary_c, time_stamp (в моём примере {{150,100,0}, {150,200,5}}).
628 1282498
>>81942

> А вот в плюсах статические переменные должны инициализироваться в той же области видимости где находится класс


Неправильно. Объявление статической переменной должно быть повторено вне класса для того, чтобы она хранилась только в одном месте, а не в каждом коде, включившим заголовок. В какой-то версии плюсов есть static inline - каждая единица компиляции имеет копию статической переменной.
629 1282499
>>82498

>В какой-то версии плюсов есть static inline - каждая единица компиляции имеет копию статической переменной.


При этом повторять объявление вне класса не нужно.
630 1282508
>>82498
>>82499
Ну может нам в универе недообъяснили про inline, но то что ты написал исходит из простой логики и я не вижу противоречия написанному мною.

static переменные, хоть паблик, хоть прайват - нельзя инициализировать в методах класса и любых других функциях в области видимости, хз что тут "неправильного".
631 1282565
>>82508
А, это да. Просто вопрос бы скорее про то, почему это делается вне класса. Инлайн-переменные можно инициализировать прямо в классе.
"Нет" это в ответ на это:

>это существует сугубо для инициализации.


Нет, не для инициализации.
632 1282567
>>82565
Или, ещё точнее: нет, не сугубо.
633 1282755
Аноны, можно ли где-то найти более-менее подробный гайд по рекурсивным функциям, желательно с примерами и задачами для самостоятельного решения? А то везде какие-то примитивные задачи уровня найти факториал и общая информация
634 1282782
Делаю текстовую рпг и возник вопрос, как лучше всего реализовать инвентарь? Думаю, что хорошо подходит вектор, но от советов анона не отказался бы.
635 1282784
>>82782
Бля, в этом треде такого вопроса нет, но я помню что был один в один такой-же раньше. Ты репостнул или это боты шалят?
636 1282793
>>82784
В этом треде такой вопрос есть , репостнул.И я уже сделал с вектором, но решил спросить.
637 1282820
>>82755
На рекурсии сортировочки делаются и всякие алгоритмы на графах/деревьях. Можешь на таких задачках попрактиковаться или поизучать готовый код.
638 1282837
>>82782
Я не шибко разбираюсь, но если у тебя РПГ с сохранением прогресса, то можешь хранить инвентарь в отдельном файле сохранений - а вообще для этого бд используют.
Либо какой-нибудь json заюзать.
А для сессионной текстовой РПГ можно и вектор использовать, мне кажется.
639 1282843
>>82837
Понял, спасибо.
641 1282878
>>82877

>https://www.mccme.ru/free-books/shen/shen-logic-part3-2.pdf#chapter.11


Спасибо, вроде то что искал. Я правда со статьи на хабре порешал какие-то элементарные задачи. Думаю лишним не будет
642 1282880
>>81857
А ещё можно приватные функции вне класса определять.
Охуеть вообще?
643 1282995
Аноны, может кто подсказать: код в плюсах всегда выполняется одновременно? Мне вот дали задание отсортировать диагонали матрицы и сравнить точку их пересечения, и если она равна то делать что-то. Я так понял нужно после сортировки главной диагонали запомнить середину, и после сортировки второй опять запомнить середину и сравнить. Сделал так - значения копируют друг друга. Попробовал распихнуть сортировку обоих диагоналей в функции и сравнить между собой потом - всё равно одинаково. Что я делаю не так?
644 1282996
>>82995

>одновременно


Последовательно конечно, протупил
645 1282999
>>82995
Блять, ошибка оказалась в том, что я на еденицу ошибся с центром диагонали и оно брало статичный элемент. Пиздец я тупой, извините что беспокою
646 1283012
int main() {
double number;
vector<double> numbers;
while (cin>>number)
numbers.push_back(number);
for(int i=0; i<2; ++i)
cout << numbers << '\n';
}

При вводе 127 и 127.0001 выводит 127 и 127, почему и как это исправить?
sage 647 1283016
>>83012
Ну давай разберем по частям. маня, тобою написанное )) Складывается впечатление что ты реально контуженный , обиженный жизнью имбицил )) Могу тебе и в глаза сказать, готов приехать послушать?) Вся та хуйня тобою написанное это простое пиздабольство , рембо ты комнатный)) от того что ты много написал, жизнь твоя лучше не станет)) пиздеть не мешки ворочить, много вас таких по весне оттаяло )) Про таких как ты говорят: Мама не хотела, папа не старался) Вникай в моё послание тебе< постарайся проанализировать и сделать выводы для себя)
648 1283037
>>83012
Поставил бы интуитивно понятный printf("%f\n",numbers[i]) и сразу бы было всё понятно, зачем тебе этот новомодный мусор? Там и всякие настройки есть, вроде +07.3f, которые через cout оче неудобно выставлять. Пропиши что-то вроде cout.precision(8) перед выводом твоих чисел.
649 1283044
>>83037

>зачем тебе этот новомодный мусор


Да я ж откуда могу знать? У Страуструпа про printf почти и не говорится поначалу.
650 1283060
>>82196
А вот липман говорит, что члены инициализируютя в порядке их описания в теле класса
651 1283063
>>83012
Я вообще не всекаю, как у тебя срабатывает cout для объекта класса vector, оно даже скомпилироваться не должно.
Сделай numbers[i] и должно будет работать
652 1283064
>>83060
struct S
{
int a;
float b;
S(int _a, float _b) : b(_b), a(_a) {}
};
Что инициализируется раньше: a или b и почему?
653 1283067
>>83064
По лимпану, б раньше.
Он даже приводил пример, когда один член инициализируется значением другого. Порядок именно по порядку объявления в классе, а не в инициализации конструктора. Я проверял
654 1283068
>>83067
Тоесть а раньше, ну ты понял
655 1283078
>>83068
да, сначала будет выполнено a(_a), потом b(_b).
а теперь напишем вот так:
struct S
{
int a;
float b;
S(int _a, float _b)
{
b = _b;
a = _a;
}
};
в данном случае сначала b получит значение _b, а потом a получит _a. вот про такую "смену порядка инициализации" я писал выше.
656 1283079
>>83078
я тут хуйню написал. забыл, что члены до тела конструктора инициализирутся. никакой порядок не поменяется.
657 1283082
>>83079
то есть нет, поменяются. пойду спать короч.
658 1283133
>>82196

>Для записи : a(_a), b(_b) не определён порядок инициализации.


Съеби в ньюфаг-тред.
659 1283135
>>83060

>А вот липман говорит


Это стандарт говорит
660 1283217
>>82880
Не вижу с этим проблемы.
661 1283276
Стоит ли помечать как final не виртуальные функции в базовом классе?
662 1283283
>>83217
А со статическими членами какая проблема тогда?
663 1283344
Читаю Липамана.
Есть свой класс аля вектор строк StrVec со своим аллокатором alloc и членами: elements - указатель, возвращенный alloc.allocate(), first_free - указатель после последнего созданного элемента.

Есть процедура очистки, которая вызывается в деструкторе:

For(auto p = first_free; p! =elements)
alloc.destroy(--p);

Как переписать этот цикл на for_each и лямбда-выражение?
664 1283368
>>83133
Запись не определяет порядок инициализации. Там из контекста понятно, о чём я написал, довен.
665 1283413
>>83283
Определение вне класса опять таки не значит что все в области видимости видят эту функцию, ты бы хоть для интереса попробовал.
Screenshot2018-10-23-21-14-31-227org.geometerplus.fbreader.[...].png872 Кб, 1029x1141
666 1283431
Что за подстава в книге Фундаментальные алгоритмы C++?
Роберт Седжвик
Во введении автор обещает рассмотреть во втором томе кучу всего, а на деле там только графы.
Как так?

Пикрилейтед, особенно обидно за геометрические алгоритмы, может кто посоветовать замену?
667 1283439
>>83044
Это из С потому что.
668 1283445
>>83431
Что тебя не устраивает? Это и есть фундаментальные алгоритмы. А ты чего ожидал?
669 1283449
>>83368
Не знаю, из какого контекста что понятно, но из твоей дальнейшей переписки понятно, что ты не

> Запись не определяет порядок инициализации.


имел в виду, а просто нихуя не знаешь.

>>83413
А что, переменную все видят?
670 1283450
>>83445
А вот в оригинале книга называется просто Algorithms.
Не устраивает только то, что автор обещает одно, а на деле другое (либо я не увидел), причем издание третье, а текст со структурой тот же
671 1283474
Аноны, помогите. Пытаюсь запустить программу, выдаёт эту хуйню. Код программы в 3 файлах, загружу отделяя чем-то
cpp.sh/34d4n
672 1283536
Мудрейшие, помогите затупку.
Мне нужно узнать колво символов в string и положить это число в переменную int.
В гугл уже ходил, ничего не нашел.
Пишу в codeblock компилирую gnu gcc.
673 1283545
>>83536
14.88 символов.
image.png27 Кб, 1371x451
674 1283547
>>83536
Так пробовал?
675 1283549
>>83547
Ща он тебе напишет, что для кириллицы не работает.
676 1283550
>>83549
А оно работает? Я кириллицой ни разу не пользовался еще, говорят это дурной тон.
677 1283553
>>83550
Вообще на русском говорить/писать — дурной тон.
678 1283554
>>83553
Агри с тобой, русский феллоу
679 1283563
>>83547
Спасибо.
Менее более разобрался.
680 1283567
>>83474
Твоя IDE ебанулась, va_list в коде нет. Что с этой вонючей студией делать - думай сам.
681 1283568
>>83567
Да там вообще библиотек разных подключило неявно дохуища. Создал новый проект, выдаёт ту же хуйню. Аноны, кому не лень, можете проверить у себя код?
682 1283571
>>83568
Прошлые проекты у меня работают, создал новый - тоже. Тут где-то в коде ошибка видимо, но я не пойму где, и почему оно подключает какие-то левые библиотеки и говорит что они не определены?
683 1283576
>>83568
>>83571
А бля, падажжи. Инклуд - это инклуд, реально берётся и вставляется текст. Ты инклудишь iostream после своих заголовков. Инклудь до.
684 1283580
>>83576
Во, заработало. А почему так происходит то?
685 1283594
>>83580
На самом деле я надеялся на то, что ошибку в твоём коде покажет. Анализаторы кода чудеса творить не могут, и в общем случае ошибка в коде вызывает ошибки во всём оставшемся, так что сначала надо инклудить проверенный код.

Но если ошибки в коде, оказывается, не было, то варианта два:
- 5%: ты случайно определил какой-то макро или идентификатор, которые используется в одном из 100500 заголовочных файлов
- 95%: это блядская студия виновата, говнокод на говнокоде
image.png40 Кб, 225x225
686 1283595
>>83594
Буду включать файлы до заголовочных.
687 1283628
Немного совета тем, кто начинает свои кресто- блядские похождения. А у меня это уже 6ой год.
НАХУЙ кресты. Если вы - не совсем законченный нерд, то НАХУЙ. В постсовке - тем более нахуй. Работаю с геймдеве и у меня уже очко просто полыхает. Сука, каждый день - АНАЛитическая геометрия, вставки под АСМ, ебля с памятью, вечно что-то крашится, что-то наёбывается, триллион эсепшнов, вечная проблема с архитектурой потому что забыл мельчайшую хуйню - всё, пизданулось нахуй, а ЗП - хуйня при том, что я - СИНЬОР
Блядь, за что мне это. Мало того, что мне пришлось перед тем, как стать джуном ебануть 3 игоры, задрочить OpenGL и запилить их на гит, так еще и не брали нигде, но это похуй а на всё это я въебал полтора года жизни. Какого, мать его, хуя, у меня френд - ПАЙТОНИСТ пинает хуй в дейта сайнс и получает больше ?
Просто пидорская хуйня, у меня проф. выгорание, на этом всё. Сука, знал бы всё это, пошел бы в веб- дев.
У меня всё, очко порвано.
как пережить эту стадию проф. выгорания ?
688 1283639
>>83628
Просто не надо в гейдев идти. Я со смежной отрасли ходил на собесы в ваши конторы. Нигде большего дна я не видел. Зп мне 130к предлагали, но опять же в серую с "испытательным сроком" пол года, "трудовой договор" - сплошные обязанности и никаких прав плюс штрафы. Офис задроченный, погонщики вкрай охуевшие (особенно hr выбесили).
Кстати геометрия хуйня у вас там, ну по сравнению со всякими приблудами для машиностроения, робототехники и проч. Зато пердолилово с железом и памятью да - на уровне.
То что нахуй в Раисе кресты не нужны это верно. Раз уж выбрал кресты - то сразу готовь трактор.
689 1283641
>>83628

>как пережить эту стадию проф. выгорания ?


Возьми перерыв в полгода и за это время выучи новый язык/стек. Затем вкатывайся в новую сферу. Бывших крестовиков охотно берут на Go/Golang, например.
690 1283666
>>83576

>Ты инклудишь iostream после своих заголовков. Инклудь до.


>>83595

>Буду включать файлы до заголовочных.


Вообще заголовочные файлы должны быть самодостаточными. Если у тебя компиляция зависит от порядка заголовков, то ты лох.
691 1283697
>>83666
Ну в этом проэкте такая проблема впервые возникла, раньше делал как попало и работало всё
692 1283699
>>83697
Если ты добавишь имена файлов в код, который ты запостил, я скажу точнее, в чём проблема.
693 1283838
>>83699
Стандартные Source.cpp Source1.cpp Header.h
694 1283873
>>83628
Перекатывайся потихоньку на другой ЯП, можешь сразу делать что-то посложнее хелловерлда т.к опыт в программировании есть.

После ебли с байтами все остальное будет казаться тебе легкой хуйней и в некотором смысле так и есть.
695 1283912
>>83873
Ну, у меня сейчас выбор - голанг и ведроидоприложухи или же пайтон и биг дейта. Вот не знаю, что выбрать. Математическая база у меня хорошая, вроде как.
Что подскажете, анонче ? Вчера, после очередной утечки памяти, с которой я ебался целый день, бомбанул прост (причем в родительском классе все было выкручено, что даже ПТРами не отделался).
696 1283929
>>83912
Иди на ведро - там за графениум хорошо платят. И да, ещё раз напомню - хуйня у вас там в геймдеве, а не математика. Векторные произведения и матрицы твои с кватернионами это максимум на 2 курс провинциального вузика тянет.
697 1283934
Какая зп у плюсовика? Долго ли ещё будут жить плюсы? Хочу выучить плюсы, чтобы больше ничего не учить и работать плюсовиком всю жизнь.
698 1283937
>>83934
Тебе к нему -> >>83628
699 1283938
>>83937
Я думаю, что у него просто был плохой день.
700 1283973
>>83838
Найди уже онлайн-компайлер с возможностью добавить несколько файлов и дай ссылку.
701 1284033
Кто-нибудь проходил курсы по с++ от яндекса (Основы разработки на C++: белый пояс) на площадке coursera? Стоит ли начать изучение с++ с этих курсов?
702 1284069
>>84033
С учётом того, что надо начать хоть с чего-нибудь - да, стоит.
703 1284151
Киньте хороший пример обратной польской записи!!!
705 1284287
В каких случаях вы переопределяете оператор "/". Я, например, столкнулся с таким его использованием.
Имеется класс Path, который определяет путь к каталогу, и мы хотим добавить к этому пути поддиректорию

Path p("a/b/c");
p = p / "d";

В итоге получаем путь "a/b/c/d"

У меня истерика. Зачем, двач? Почему не append("d") или add("d")? Зачем эти выебоны? Это что, сложность ради сложности?...
706 1284322
>>84287
Ты порвался ради того, чтобы порваться?
sh.jpg34 Кб, 476x524
707 1284328
708 1284329
>>84287
Чтоб все охуели как мы можем.
709 1284332
>>84329
Все фичи плюсов, на самом деле, делаются ради этого. Концепты, рефлексия, метаклассы, констэеспр, фолдинг выражения? Кому они нужны? Зато мы можем всем показать, как можно у нас классно сделать.
 .png139 Кб, 394x360
710 1284341
Может уже перекатите, а, блять?
711 1284348
712 1284376
>>84287
Потому что написать /d легче чем писать append("d"). Экономит время.
713 1284439
>>84287
Понимаешь, плюсы само по себе - это сложный язык с кучей неписанных правил.
http://libtins.github.io/ - вот, смотри, они тоже слэш перегружают.
Лично мне лишние скобки не нужны, я бы лучше оператор перегрузил. Если я в коде увижу path / file я сразу пойму, что это значит, это понятно интуитивно.
>>84329
чо вы там можете блядь где перегрузка амперсанда сука
714 1284482
>>63368 (OP)
Сап /cpp.
Я решил написать после вузовского перерыва свою первую задачку.
1. Начнем с того, что Я САМОСТОЯТЕЛЬНО НАСТРОИЛ ЭТОТ ЕБУЧИЙ QT, ЧТО УЖЕ ВИН!!!
2. Я написал программу, это оказалось немного легче.
Но есть проблема:
1. Как вставлять код, чтобы выглядело годно.У джаваскриптеров есть сайти для этого. Есть ли сайты у нас.
2. Программа.Дано: Есть биткоин-бот. который хуярит процент от суммы за месяц. Есть зарплата анана, и есть процент, под который бот хуярит в месяц. Есть количество месяцев.
Т.е. анан хочет денег и дает в первый месяц 200к. Бот делает под 4% Зарплата анана на 40к. Расчитать прибыль бота за год, при условии, что анан будет вносить туда каждый раз 40к.
1. Я написал код.
2. Он скомпилировался без ошибок.
Но, после того, как я ввожу input_bot_percent мне программа одновременно выдает введите current_amount и month_iteration и после этого закрывается.
Вопрос 1. ХУЛИ ЭТО ГОВНО НЕ ДАЕТ ВВЕСТИ МНЕ начальное количество денег.ЧЯДНТ?
Вопрос 2. Как сделать так, чтобы оно не закрывалось при окончании.
Не кидайтесь тапками,плиз. Это моя первая программа.
код
++++
#include<iostream>
using namespace std;
int main()
{
long double money_input, percent, current_amount;
int month_iteration = 0 ;
cout<<"Input your salary!";
cin>>money_input;
cout<<"input_bot_percent";
cin>>percent;
cout<<"input start_current_amount";
cin>>current_amount;
cout<<"month_iteration";
cin>>month_iteration;

while (month_iteration>0)
{
cout<<"month left";
cout<<month_iteration;
cout<<"current_amount is";
current_amount= current_amount+(current_amount*percent);
month_iteration--;
}
714 1284482
>>63368 (OP)
Сап /cpp.
Я решил написать после вузовского перерыва свою первую задачку.
1. Начнем с того, что Я САМОСТОЯТЕЛЬНО НАСТРОИЛ ЭТОТ ЕБУЧИЙ QT, ЧТО УЖЕ ВИН!!!
2. Я написал программу, это оказалось немного легче.
Но есть проблема:
1. Как вставлять код, чтобы выглядело годно.У джаваскриптеров есть сайти для этого. Есть ли сайты у нас.
2. Программа.Дано: Есть биткоин-бот. который хуярит процент от суммы за месяц. Есть зарплата анана, и есть процент, под который бот хуярит в месяц. Есть количество месяцев.
Т.е. анан хочет денег и дает в первый месяц 200к. Бот делает под 4% Зарплата анана на 40к. Расчитать прибыль бота за год, при условии, что анан будет вносить туда каждый раз 40к.
1. Я написал код.
2. Он скомпилировался без ошибок.
Но, после того, как я ввожу input_bot_percent мне программа одновременно выдает введите current_amount и month_iteration и после этого закрывается.
Вопрос 1. ХУЛИ ЭТО ГОВНО НЕ ДАЕТ ВВЕСТИ МНЕ начальное количество денег.ЧЯДНТ?
Вопрос 2. Как сделать так, чтобы оно не закрывалось при окончании.
Не кидайтесь тапками,плиз. Это моя первая программа.
код
++++
#include<iostream>
using namespace std;
int main()
{
long double money_input, percent, current_amount;
int month_iteration = 0 ;
cout<<"Input your salary!";
cin>>money_input;
cout<<"input_bot_percent";
cin>>percent;
cout<<"input start_current_amount";
cin>>current_amount;
cout<<"month_iteration";
cin>>month_iteration;

while (month_iteration>0)
{
cout<<"month left";
cout<<month_iteration;
cout<<"current_amount is";
current_amount= current_amount+(current_amount*percent);
month_iteration--;
}
Screenshot2.png35 Кб, 669x385
715 1284487
>>84482
Прости меня двач. Я все исправил.
Ну господа, можете меня поздравить.
Если бы я не был таким ленивым мудаком, был бы сениором.
716 1284489
>>84482
А не нихуя>>84487
Я пофиксил. Была неправильная мат. формула.
717 1284495
>>83639
>>84482
>>84487
>>84489
>>82466
Я этот кун.
Хотел бы узнать у вас некоторые вещи.
1) область, где вы кодите(геймдев,базы данных, машиностроение)
2) сколько шли до джуна
3) стаж в профессии.
4) З/П
718 1284517
>>84482
>>84482
все, уже нашел, куда можно вставлять код
719 1284581
кто может скинуть электронную версию книги Скотт Мейерс Эффективный и современный С++17
720 1284592
Есть бинарник, хранящий standart layout структуры. Как осуществить удаление данных в нем?
Скажем, хранится два объекта структуры, нужно один из них удалить => файл должен стать вдвое меньше по размеру.

Интерфейс fstream, вроде, этого делать не позволяет.
721 1284607
>>69012

>for (int i = 0; i < 5; i++) {


cout << a + rand()% (b - a + 1) << '\t';
}
722 1284615
Посоветуйте свежий контент по плюсам. Заебался читать Страуструпов и прочую неактуальную хуйню из нулевых. Спасибо.
723 1284618
Аноны, есть вопрос по поводу компиляторов и проблемы с функцией Аккермана. В ВС17 после компиляции выводит дохуя значений и кнсоль дропается. На OnlineGDB после вывода значений пишет ошибку - ''core dumped''. А вот на С++ Shel у меня нахуй повис комп и всё пизданулось, пришлось перезагружать комп. Почему так происходит ? Почему в ВС17 и GDB всё нормально, а на Shel'ле нет ?
За переполнение стека знаю
724 1284629
За год ежедневных часовых занятий можно накачаться хотя бы до джуна если я питонист-любитель?
725 1284637
>>84495
1. гейдев.
2. Полтора года.
3. 6 лет.
4. ~4к баксов.
726 1284640
>>84629

>часовых занятий


нет
8ч ебашь
727 1284662
>>84592
прочитать
удалить
перезаписать
????
PROFIT
728 1284774
>>84637

>4. ~4к баксов.


до налогов? это где-то в асашай?
729 1284795
>>84774
Лул, не асашай. Это Минск.
730 1284821
>>84774
У меня есть знакомый который в Киеве так зарабатывает, тимлид в компании какой-то.
731 1284917
>>84341

>Может уже перекатите, а, блять?


А сам что не перекатишь?
732 1285010
Тред контроля версий тонет где-то очень глубоко, поэтому спрошу у крестовых бояр как мне быть, вы уж точно знаете не к веб-макакам же идти за советом. Хочу следить за изменениями и вести контроль версий своих хеллоувордов. Как это все организовать не выходя за пределы моего пк? Чтобы код лежал не на гитхабе, а допустим у меня на харде. А то я уже заебался, что-то поменяю и все перестает работать, а я даже не помню где код правил.
733 1285011
>>85010
В нужной папке делаешь git init. Всё, у тебя есть локальный репозиторий.
734 1285013
>>63368 (OP)
Как сделать так, чтобы программа считывала переносы на новую строку?
735 1285063
>>85010
Для удобства поставь себе графический клиент для git. Я юзаю черепашку TortoiseGit. После установки у тебя в меню по нажатию правой кнопки мыши появится gitclone и create repository here. Дальше всё очевидно.
736 1285254
>>85013
c = cin.get();
737 1285299
738 1285511
Поясните за константность здесь.Есть ли смысл и правильно ли я понимаю? Константная функция возвращает ссылку на константу?

const std::string& getName() const {
return name ;
}
739 1285513
>>85511
Сори, скопировал неудачно.
const string& getName()const(
return name;
}
740 1285534
>>85511
Константный метод возвращает константную ссылку.
741 1285573
>>85534
Спасибо.А есть ли в этом смысл? Экономия памяти и защита от изменения?
742 1285740
>>85573
В данном случае польза const не так очевидна. Почитай мейерса, там есть пример, в котором он показывает, почему const следует использовать где только можно. Это позволяет избежать неявных шибок во многих случаях
743 1285749
>>85740

>В данном случае польза const не так очевидна.


Вполне очевидна. Убери первый const и перестанет компилироваться.
744 1285786
>>85534

>Константный метод возвращает константную ссылку.


Неправильно. Не константную ссылку, а ссылку на константу.
>>85573
Если это метод, const - это квалифаер. То есть, этот метод может вызываться только для const-объектов, и вернуть свой член по ссылке на неконстанту нельзя.
745 1285788
>>85573
Ты можешь ссылаться на переменную по двум причинам:
- тебе нужно, чтобы вне функции в неё что-то писали
- избежать копирования
Ставя или не ставя const ты говоришь именно это.
image.png83 Кб, 1796x655
746 1285797
Аноны, подскажите почему не работает обратный итератор. Вывод должен быть в обратном порядке.
747 1285798
>>85797
Блять стоп, извинияюсь. У меня просто обратный порядок и прямой очень похожи. Pizdets ya tupoi
748 1285828
Посоветуйте книжку по MFC/WinAPI. Надо сделать утилитку на
dialog-based MFC, сам язык я, в принципе, знаю, а вот структура приложения какая-то непонятная
749 1285873
>>85786
Блять, метод возвращает "const string&", даже если поле не константное будет просто возвращена константная ссылка - https://pastebin.com/Zr8jCZsZ

Что за тип такой, ссылка на константу?
750 1285879
А где C# тред, не могу найти.
751 1285884
>>85879
Его проебали или потерли, уже с неделю как, кстати.

Спрашивай, может я помогу, но я сам в шарпе ньюфак.
752 1285885
>>85884
Да я в общем искал шапку треда для вката.
753 1285921
>>85828

>MFC


не стоит вскрывать эту тему
754 1285932
Аноны, есть ли книги конкретно по STL? А то Прата описывает теорию, но постоянно добавляет что ее слишком дохуя, и рассматривает основные концепции. Есть книжка именно с идеологией STL ну и задачками тоже или это всё на практике нужно понимать?
755 1285933
>>85873
Уазатели именуются так (именование формируется при разборе с конца):
1. const (int p) - указатель на константу (нельзя p = 1;)
2. (int p) const - константный указатель (нельзя p = nullptr;)
3. const (int p)
const - константный указатель на константу (нельзя 1 и 2)

Ссылки именуются аналогично. Разница лишь в том, что ссылка и так константная, поэтому писать 2 и 3 бессмысленно, хотя компилятор такой записи не воспрепятствует.
1. const (int r) & - ссылка на константу (нельзя r = 1).
2. (int r) & const - константная ссылка (то же что и (int r) &)
3. const (int r) & const - константная ссылка на константу (тоже что и п. 1)

Ну а ты обосрался с именованием и теперь копротивляешься.
image.png23 Кб, 941x218
756 1285934
>>85932
В шапку заглянуть, не?
757 1285935
>>85934
Бля, протупил что-то. Думал там только по основному языку. Спасибо
758 1285938
>>85934
Можно еще вопрос? Лучше прочитать раздел с бест практисами сначала или то что ты скинул? Не знаю как лучше сделать.
759 1285963
>>85740
>>85786
>>85788
Понял, спасибо.
image.png68 Кб, 1425x649
760 1286052
Может кто обьяснить, почему такой код не работает? cpp.sh/4capy
761 1286062
762 1286064
>>86062
В задании написано что должно превратить слово в подобие madamiamadam а потом выполнять проверку. Я два цикл написал нашёл на стаковерфлоу, которые выполняют проверку на знаки пробела и пунктуации. По идее должно сначала превратить слово в набор букв, а потом сравнивать
763 1286079
>>86064
Так-то tolower не перезаписывает аргумент значением, а возвращает его. И потому в for_each не годится, хуяч std::transform()
764 1286085
>>86079
Во ебать, работает. Спасибо. На >>85938
не ответишь? STL пиздец прикольно выглядит, хотел бы изучить. Но там книга еще на 1.2к страниц, это займет месяца полтора хотя учитывая сессию даже больше. Стоит пройти сначала бест практисы? Или там тоже STL?
image.png22 Кб, 565x312
765 1286102
>>86052
Почему просто на месте за O(n / 2) не проверить?
766 1286109
>>86102

> O(n / 2)


facepalm
767 1286113
>>85063
>>85011
Спасибо!
768 1286134
В программе под винду должно быть несколько простых кнопок/ползунков/полей ввода и изображение, которое попиксельно генерируется в зависимости от ползунков.
Для этого есть какая-то не слишком громоздкая библиотека или будет проще потратить час-два и вручную через gdi+ сделать изображение и эмулировать кнопки/ползунки? Никаких особых возможностей или удачности архитектуры не требуется, просто сделать как-нибудь и забыть.
769 1286179
>>86134

>В программе под винду должно


Кому?
770 1286352
771 1287604
Аноны, а на плюсах можно под андроид писать? Или это определенные языки только? Хочу себе цель поставить сапёра написать под свою слабую мобилку если нельзя то под пеку напишу
772 1287626
>>87604
Android NDK
image.png36 Кб, 1462x635
773 1287748
Аноны помогите. Почему-то затупил на какой-то очень простой задаче. Программа должна считывать строку и выводить кол-во символов до знака $. Выводит какие-то случайные значения. При небольших строках всегда один
image.png9 Кб, 397x220
774 1287780
>>87748
В программе чуть-чуть разобрался, но всё же обьясните что не так в предыдущей версии. Ведь по идее cin.get должен по очереди изымать из потока по одному символу пока не дойдет до $. Или ошибка в том что cin.get(void) возвращает интовое значение?
И еще вопрос: как работает этот код? Я ввожу строку и он так же по очереди изымает по символу пока не триггернется? cin.peek() использовал потому-что в задании сказали чтобы триггер-символ не учитывался.
775 1287805
>>87780

>что не так в предыдущей версии


char* k = new char;
cin >> k;
776 1287827
>>87805
А как правильно будет тогда?
777 1287830
>>87827
Ошибка не в самой переменной, а в том что оно пытается считать не с входного потока а с переменной? Точнее считывает с переменной, а не с потока
778 1287857
>>87830
Што?

Переменная k имеет тип char
Оператор >> видит справа char
поэтому читает строку (до пробела) и пытается записать в k. При этом портит память, так как места там только на один элемент.
А цикл считает оставшиеся символы (тот самый пробел) и выводит 1.

Мне вообще интересно, что хотел сказать автор, когда писал эти строки.
779 1287858
>>87857
char -> char*
780 1287859
>>87857
Всё, спасибо. Строку эту я потом убрал. Просто не вышло с первого раза и начал пробовать всё подряд.
image.png32 Кб, 720x641
781 1288689
Прошу помощи. Хотел разобраться с тем как работает next_pemutation и завис. Нашёл хорошую статью на стаковерфлоу, там всё достаточно чётко обьяснили. Но я всё равно не пойму. Как функция меняет значения с 1243 до 1324 за один переход цикла? Я так понимаю мы берем число и проверяем, что если все числа справа от него в убывающем порядке то больше возможных комбинаций справа нет. Но как блять оно перешло с 1243 до 1324, там ведь только свап нужен. И как работает while (!(i < --k)), оно должно выбирать наибольший элемент или как? И почему j меняет значение только иногда, оно ведь по идее должно с каждой итерацией меняться, разве нет? Статью с оверфлоу и скрин вывода вывод значений я для удобства добавил прикладываю. https://stackoverflow.com/questions/11483060/stdnext-permutation-implementation-explanation
image.png23 Кб, 647x383
782 1288810
Может кто помочь? Почему компилятор выдаёт какие-то ошибки при использовании варайбл шаблонов? Сталкивался кто? Использую студию 2012 экспресс. На онлайн компиляторах всё работает
image.png8 Кб, 1279x102
783 1288811
>>88810
Ошибки отклеялись
784 1288872
>>88810
C++11 включён? Почему именно 2012?
785 1289002
>>88872
Хуй знает, когда начинал кодить она первая попалась. Там все методы с С++11 работают, только #include <initializer_list> не хочет делать, но он в этой версии вроде не включён. А тут баг какой-то. Скачал себе студию 17 года от вуза бесплатно раздавали, если что буду переключаться.
786 1289294
>>89002
https://msdn.microsoft.com/en-gb/library/hh567368.aspx

>Variadic templates


>Visual Studio 2012


>No


Нормальный C++11 только в 15 версии завезли, нормальный C++14 только в 17
787 1289302
>>89294

> Visual Studio


Зачем вообще студией пользоваться?
То поддержка стандарта годами добавляется.
То автодополнение отлавливается.

Такое чувство что поддержка C# там сделана гораздо лучше кто бы мог подумать
788 1289336
>>89294
нормальный c++17 ещё не завезли?
789 1289338
>>89336
Они раз пять обновляли компилятор. В последней версии (15.8) вроде полная совместимость уже.
https://en.cppreference.com/w/cpp/compiler_support
790 1292507
Работает ли медленнее вектор, чем обычный массив?
791 1292605
>>92507
Что значит работает? Какие операции ты собрался над ним выполнять?
792 1292608
>>92507
Ну а в целом вот, https://stackoverflow.com/questions/381621/using-arrays-or-stdvectors-in-c-whats-the-performance-gap
Ответ на твой вопрос:

>Using a pointer to a malloc-ed/new-ed array will be at best as fast as the std::vector version, and a lot less safe

793 1293364
Пытаюсь прикрутить glew к программе. Шестой час не могу собрать.
У меня mingw-64 + cmake. Готовые билды с glew.sourceforge.net не работают (так как заточены под msvc или ещё что-то такое).
Собрал через mingw сам, получил файлы libglew32.a и glew32.dll - программа теперь компилируется, но glewInit() возвращает GLEW_ERROR_NO_GL_VERSION, и функции старше gl 1.1 не работают, соответственно. Никакое сочетание флага GLEW_STATIC, glew32.lib/glew32s.lib и двух разных *.dll не взлетает.
Единственное что заработало, это если явно добавить исходник glew.c к коду проекта, но мне не очень бы хотелось оставлять программу в таком виде.

Бесят невероятно эти компиляторопроблемы. Хотел просто на спор написать демку с шейдером, кода на 20 минут, а я несколько часов тыкаюсь в унылые форумы в попытках найти решение. Причём, далеко не только у меня такие проблемы. А ведь это всего лишь невероятно простая и однообразная библиотека из одного файла. Бред какой-то, зачем вообще нужны все эти книжки из шапки, лол, если вообще всё что угодно в самом программировании проще вышеупомянутых проблем.

Что, что мне прочитать, что мне сделать, чтобы разобраться наконец в .o/.lib/.a файлах, статических и не статических линковках, cmake/make и других непосредственно с языком не связанных вещах?
794 1293705
Сап всем. Опять выхожу на связь. Столкнулся с проблемой которую не могу решить уже несколько дней. Есть single linked list в котором я никак не могу реализовать функцию считывания с файла. Ещё имеется дохуя не почищенной памяти по результатам valgrind, но это не главное. В общем кидаю код на пастебине, функция readFrom не делает то чего я хочу, постоянно выдаёт единицу ебаную. Читал всевозможные инструкции и гайды в интернете, последняя надежда на вас прежде чем пойду лобызить перед преподом.
https://pastebin.com/dVsNkNu2
image.png83 Кб, 1119x653
795 1293745
>>93705

>single linked list


Понятия не имею что это, но считывание работает. Только что лишний ноль закрался, но если закомментировать create(0), то нуля не возникает. Может быть он и нужен зачем-то, без понятия.
796 1293748
>>93705
В общем, смотри содержание своего файла. Ты считываешь через getline по строкам, соответственно у тебя должно быть одно число в строке. Если в файле они через пробелы или ещё как, то нужно заменить getline и корректно это обрабатывать, вызывая atoi на каждое число, а не строку.
797 1293759
>>93748
Они у меня также как в фото выше, вводил через Enter числа от 11 до 25

Но не выводит никаких чисел кроме 1. Может это из-за того что я убунту вчера поставил?
798 1293781
>>93759
Разбей задачу на этапы, проведи исследование же.
1. Просто открой и закрой файл, посмотри нет ли ошибок, видит ли оно вообще твои файлы. Если не работает, попробуй через fopen или собственные убунтовые функции, если они есть.
2. Попробуй посимвольно без всяких atoi вывести файл. Потом построчно твои line, правильно ли работает getline (в люниксах вроде бы иначе переносы строк выполнены, если файл сделан на винде).
3. Попробуй вызови atoi для жестко заданных строк. Если не работает, считывай посимвольно и сам преобразуй символы в числа, например.
Дел на 3-10 минут, и ты достоверно выяснишь на каком этапе и в какой функции проблема, где бы она не возникала. А то чёрт его знает, зачем пальцем в небо тыкать.
Тред утонул или удален.
Это копия, сохраненная 17 ноября 2018 года.

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

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