Программирование


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

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
540 50 81

C++ №81 /cpp/ Аноним 28/01/19 Пнд 18:50:06 13367731
15470173816420.jpg (7Кб, 225x225)
225x225
15485976284260.png (283Кб, 603x324)
603x324
Аноним 28/01/19 Пнд 20:48:02 13368752
Ребятa, а что более верное?
переменная в void main()
a=5+2
где "а" это левое, а 5+2 это правое?
либо тут "а" это тоже правое, а левым считаются только глобальные переменные?
Аноним 28/01/19 Пнд 20:55:15 13368833
>>1336875
>void main()
int main. void main нет уже лет 30
>где "а" это левое, а 5+2 это правое
если ты про lvalue и rvalue, то lvalue это все, что может быть помещено слева, а rvalue - справа. Если a=5+2; компилируется, то да a - lvalue. 5+2 очевидно, rvalue.
Аноним 28/01/19 Пнд 20:58:11 13368894
>>1336883
>void main()
Спасибо) просто запутала инфа, где говорится, что временная переменная, которая умирает после того как функция заканчивается, не может быть левым
это сложно понять было для меня
Аноним 28/01/19 Пнд 21:11:12 13369065
>>1336889
Не путай rvalue и rvalue reference
rvalue - это все, что может быть справа от присваивания. Вообще все.
lvalue - это все, что может быть слева от присваивания. Тоже вообще все.
Ссылки обычно lvalue - то есть если ZZ у тебя ссылка (void yoba(int& ZZ)), ты можешь написать ZZ=238 и ничего тебе не будет

А rvalue reference - это ссылка, которая, в отличие от обыкновенной lvalue ссылки ты не можешь написать ZZ=238. В этом смысл - rvalue reference это такая ссылка с ограничениями.

Нужно это, чтобы можно было семантически показать, что твоя ссылка - ссылка на временное значение, которое можно уничтожить при желании. Как-то так.
Аноним 28/01/19 Пнд 21:11:18 13369076
>>1336883
a может быть справа. Rvalue это то, от чего нельзя взять ссылки.
Аноним 28/01/19 Пнд 21:28:49 13369297
>>1336875
Сам оператор + возвращает rvalue.
a = b + c;
выражение (b + c) в целом тоже будет rvalue, даже если b и c были lvalue, то есть не получится скомпилировать
b + c = a;
Аноним 28/01/19 Пнд 21:52:23 13369598
>>1336883
>lvalue это все, что может быть помещено слева, а rvalue - справа
Самое колхозное объяснение из всех, что я видел.
>>1336889
>временная переменная
Бессмысленный набор слов. Временными бывают объекты.
>>1336906
Слишком толстый троллинг тупостью.
>>1336907
>Rvalue это то, от чего нельзя взять ссылки.
Следующее по колхозности объяснение.
>>1336929
>Сам оператор + возвращает rvalue.
Кстати, в стандарте об этом ни слова.
Аноним 28/01/19 Пнд 21:53:22 13369619
>>1336959
Аутист-вахтер приперся. Держи в курсе о своем охуенно ценном мнении.
Аноним 28/01/19 Пнд 21:54:50 133696310
>>1336961
Этот колхозник порвался, несите следующего.
Аноним 28/01/19 Пнд 21:57:20 133696611
>>1336963
Я, в отличие от тебя, объясняю просто и понятно, а ты предпочитаешь выебываться, но не писать нихуя по существу, потому что знаешь, что сам напишешь хуйню.
У тебя претензии кроме как "колхозно" есть? Нет? Ну и пройди нахуй.
Аноним 28/01/19 Пнд 21:57:53 133696712
>>1336959
а своего объяснения ты так и не дал
Аноним 28/01/19 Пнд 21:58:06 133696813
>>1336961
Это конкурирующий совхоз, не обращай внимания.
Аноним 28/01/19 Пнд 21:58:21 133696914
>>1336966
>Я, в отличие от тебя, объясняю просто и понятно
Это тебе от скудоумия кажется.
>>1336967
>а своего объяснения ты так и не дал
И чо?
Аноним 28/01/19 Пнд 22:00:00 133697015
>>1336969
>Это тебе от скудоумия кажется.
Пруфы моего скудоумия. Если ты считаешь, что на >>1336875 нужно отвечать каким-то другими словами, то это пруф того, что ты аутист (не способный в социальный контекст) и вахтер (зашел в тред похамить и рассказать о том, какой ты у мамы самый умный). А вот пруфов моего скудоумия у тебя нет, потому что ты тупее меня.
Аноним 28/01/19 Пнд 22:04:50 133697516
>>1336959
>в стандарте об этом ни слова
В стандарт я конечно лезть не буду.
Но где может храниться результат a + b кроме как во временном объекте, который и есть rvalue? если конечно + не переопределен В a записывется? или может быть в b?
Аноним 28/01/19 Пнд 22:07:24 133697817
>>1336970
>Пруфы моего скудоумия.
Ты не в состоянии воспринимать пруфы, т.к. скудоумен.
>ты аутист (не способный в социальный контекст)
Я же написал. Колхозное объяснение. Это и есть социальный контекст. Объяснение от селюка для селюков.
>вахтер
Заметь, ты первый перешёл на личности (в >>1336961), не я в >>1336959. Так что иди отсюда тушить свою колхозную сраку, пока сеновал не поджёг.
>>1336975
>В стандарт я конечно лезть не буду.
>Но где может храниться результат a + b кроме как во временном объекте, который и есть rvalue?
Все знают, что это prvalue. Но стандарт об этом не говорит явно. Хотя обещает во введении к выражениям рассказать про value category каждого оператора и требования к value category его операндов.
Аноним 28/01/19 Пнд 22:18:04 133698518
>>1336978
>Все знают, что это prvalue
нууу, я всегда был не такой как все...
Аноним 28/01/19 Пнд 22:18:32 133698719
>>1336978
>Ты не в состоянии воспринимать пруфы, т.к. скудоумен.
Засливан.
>Я же написал. Колхозное объяснение. Это и есть социальный контекст. Объяснение от селюка для селюков.
Нет. Объяснение для селюков не значит, что оно от селюка. Ты аутист просто, раз этого не понимаешь.
Как и то, что задающий вопросы не селюк, а просто учится. Случилось следующее: не селюк, а учащийся, которому разрешено много, задал вопрос, анон попытался ему объяснить ответ.
Кто здесь селюк? Та-дам - тот самый токсичный вахтер, который вместо того, чтобы придти и ответить на вопрос ньюфага, начал самоутверждаться.
>Заметь, ты первый перешёл на личности
В чем проблема говноеда назвать говноедом?
>Все знают, что это prvalue
Лол. Охуенная аргументация продолжается - ВСЕ ЗНАЮТ.
>>1336975
>Но где может храниться результат a + b кроме как во временном объекте, который и есть rvalue
А кто тебе сказал, что a+b обязательно должен возвращать временный объект? https://ideone.com/Ze5lsY
Не должен.
Аноним 28/01/19 Пнд 22:18:42 133698820
>>1336975
>во временном объекте, который и есть rvalue?
Кстати да, никаких временных объектов там нет.
Аноним 28/01/19 Пнд 22:22:35 133699321
>>1336987
> токсичный
Сорян, ты не колхоз оказывается, а колхоз_ка.
>В чем проблема говноеда назвать говноедом?
Для меня ни в чём, а вот для тебя проблема — ты сорвался в истерику с первого сообщения.
> https://ideone.com/Ze5lsY
Колхоз_ка, читай внимательно:
>>1336975
> + не переопределен
Аноним 28/01/19 Пнд 22:35:33 133700722
>>1336987
> возвращать временный объект
Что по-твоему значит "возвращать временный объект"? То, что в выражении у return будет временный объект или что (a+b) будет временный объект?
Аноним 28/01/19 Пнд 22:35:40 133700923
Парни, а можно когда пишите "ты не прав" кому-то, прикреплять верный вариант или свое мнение? было бы полезно почитать и вникать
Аноним 28/01/19 Пнд 22:44:43 133701824
15389160059571.jpg (32Кб, 420x434)
420x434
>>1336959
>>1336975
>>1336978
>>1336987
Поехавшие. Оператор + может возвращать хоть void, хоть мой хуй. Особенно переопределенный.
Аноним 28/01/19 Пнд 22:46:30 133702125
>>1337018
Мы тут изначально говорили про встроенный.
Только селюк, чтобы продемонстрировать, как он хорошо разбирается в контекстах, полез понтоваться переопределёнными операторами.
Аноним 28/01/19 Пнд 22:48:44 133702426
>>1337018
Ну ебана, позырь с чего началось >>1336875
>a=5+2
У него там int подразумевается. Какой void? Зачем переопределенный?
Аноним 28/01/19 Пнд 22:52:39 133702927
Аноним 28/01/19 Пнд 22:53:02 133703028
Ребята, можно тлдр да/нет
я С++ учу 1.5 месяца по официальным MS-курсам
сейчас я на теме "функция" и прошел только ее перегрузку, я не проходил перегрузку операторов
и так, могу ли я леджит пока воспринимать левое и правое как
а=b+c где "а" это левое а "b+c" правое?
Аноним 28/01/19 Пнд 22:54:06 133703129
>>1337029
Архива тредов-то нету
Аноним 28/01/19 Пнд 22:54:48 133703330
>>1337030
>и так, могу ли я леджит пока воспринимать левое и правое как
>а=b+c где "а" это левое а "b+c" правое?
Именем колхоза, разрешаю тебе.
Аноним 28/01/19 Пнд 22:56:15 133703431
>>1336993
>Сорян, ты не колхоз оказывается, а колхоз_ка.
Ого, мамин альтрайт.
>Для меня ни в чём, а вот для тебя проблема — ты сорвался в истерику с первого сообщения.
Конечно, когда говноеду говорят, что он говноед - это истерика. Ведь не может же говноед оказаться говноедом. Он же на двач всех хуесосить пришел.
>Колхоз_ка, читай внимательно:
Читать внимательно что, что все знают?
Оператор у встроенного типа вообще ссылку не возвращает, он возвращает значение. Вроде бы доебка, но ты же самый правильный хуесос, который читал стандарт.
Аноним 28/01/19 Пнд 22:57:43 133703632
>>1337034
>Оператор у встроенного типа вообще ссылку не возвращает, он возвращает значение.
Он вообще ничего не возвращает, т.к. это не вызов функции. Даже концептуально.
Аноним 28/01/19 Пнд 22:59:11 133703833
Screenshot2019-[...].png (29Кб, 904x265)
904x265
Аноним 28/01/19 Пнд 23:08:05 133704834
>>1337038
Так я и думал, что ты это кинешь.))))

Читай https://timsong-cpp.github.io/cppwp/n4659/over.built#1 и ссылки оттуда внимательно.

[over.built] используется только когда хотя бы один из операндов имеет не-встроенный тип. И используется только для overload resolution, для выбора встроенного оператора. Сами же эти операторы не вызываются даже концептуально.

> These candidate functions participate in the operator overload resolution process as described in [over.match.oper] and are used for no other purpose.

1. Для встроенных операторов не применяется [over.match.oper]
https://timsong-cpp.github.io/cppwp/n4659/over.match.oper#1 :
> If no operand of an operator in an expression has a type that is a class or an enumeration, the operator is assumed to be a built-in operator and interpreted according to Clause [expr].
2. Даже когда [over.match.oper] применим и какой-то из операторов из [over.built] выбран, срабатывает "used for no other purpose", который в том числе означает, что эти операторы даже концептуально не вызываются. Т.к. вызов функции это уже other purpose, а не overload resolution.
Аноним 28/01/19 Пнд 23:09:15 133704935
1548706153746.jpg (49Кб, 700x522)
700x522
Поясните плиз за tcp сокеты.
Вот есть например сокет. Я зная его адрес и порт, могу отправить на него что нибудь, например текст, да? То есть пишу фукцию отправки, и текст ведь сразу оказывается на сокете? То есть на его стороне этот текст уже можно считать? Или нужно сначала как то открыть этот сокет?
Аноним 28/01/19 Пнд 23:09:53 133705036
>>1337048
>1. Для встроенных операторов не применяется [over.match.oper]
* для встроенных типов
Аноним 28/01/19 Пнд 23:11:19 133705137
Аноним 28/01/19 Пнд 23:13:37 133705538
Плюсоёбы во всех смыслах
Аноним 28/01/19 Пнд 23:15:48 133705639
>>1337055
В каких ещё всех? Нарываешься?
Аноним 28/01/19 Пнд 23:18:26 133705840
>>1337056
Ебатели языка "плюсы" доебались до оператора "плюс" и ебутся
Аноним 28/01/19 Пнд 23:20:55 133706441
>>1336906
> Нужно это, чтобы можно было семантически показать, что твоя ссылка - ссылка на временное значение, которое можно уничтожить при желании.
А зачем это нужно? Чисто для удобства чтения кода?
Аноним 28/01/19 Пнд 23:28:06 133707042
>>1337007
При наличии перегрузки операторов у тебя может возвращаться что угодно (и это очень удобно). В случае отсутствия перегрузки операторов у тебя, как тебе написали до меня, возвращается prvalue.

int yoba(int i) {return 5;}

yoba(5) = 5; можно написать? Нет. Но не потому что возвращается временный объект, возвращается просто rvalue. То, что я писал тут >>1336906 , не путай rvalue и rvalue reference.

У встроенных операторов типы а-ля int operator+(int, int) и так далее.

В целом, не еби мозг, занимаются каким-то левым дрочем, а потом оказывается, что С++ сложный. Вся эта хуйня нужна только только того, чтобы понимать, как работает RVO, NRVO и move-семантика. От того, что ты это знаешь лучшим программистом ты не будешь. Но, возможно, какой-то аутист не назовет тебя колхозником потому что иммолейт импрувед.

>>1337064
В основном для move-семантики, то есть чтобы работало быстрее. Сравни vector::push_back и vector::emplace_back. В первом случае будет создано больше лишних объектов, а втором ты компилятору говоришь, что помести в вектор то, что я тебе дал и мне это уже не нужно. В этом случае он сможет обойтись без лишних копирований.
Так же без этого весьма геморройно использовать unique_ptr - его же копировать нельзя, а что-то с ним надо делать.

Аноним 28/01/19 Пнд 23:32:30 133707143
1548707548058.jpg (38Кб, 400x400)
400x400
>>1337070
Если честно, не совсем понимаю, что делает vector::push_back и почему в его случае будет создано больше объектов. И не могу оценить прибавку в производительности, потому что не знаю, сколько времени выполняется данная команда.
Аноним 28/01/19 Пнд 23:52:57 133707944
>>1337048
Падажжи. Так "все знают, что результат a + b это prvalue", или эти операторы не вызываются даже концептуально?
Аноним 28/01/19 Пнд 23:59:20 133708345
>>1337079
>Так "все знают, что результат a + b это prvalue", или эти операторы не вызываются даже концептуально?
Ты так спрашиваешь, как будто эти 2 утверждения друг другу противоречат.

Для a и b не-классовых и не-enum типов (например, если оба — int) [over.built] вообще не применяется.
Так что считать то, что в [over.built] приводится `LR operator+(L, R)` для арифметических типов доказательством того, что a + b это prvalue для int a, b не получится.
Аноним 29/01/19 Втр 00:16:34 133709246
>>1337083
>Ты так спрашиваешь, как будто эти 2 утверждения друг другу противоречат.
Именно так. Результат a+b это не prvalue, это ничто. Вызова-то нет, значит нет и результата. Например
int i = (5+3)/(5+3) может быть скомпилировано в int i = 1. Какой результат у +? Никакого. Это просто ноды в AST.
Поэтому они были вынуждены добавить такую клозу - мол, чуваки, типы у нас такие, но вообще вы этого не видели.
Аноним 29/01/19 Втр 00:23:42 133710147
>>1337071
>Если честно, не совсем понимаю, что делает vector::push_back и почему в его случае будет создано больше объектов
На самом деле не всегда. В зависимости от того, есть ли у твоего объекта move-конструктор, copy-конструктор, временный ли твой объект сам (а-ля push_back(Yoba()) - это за счет оптимизаций может вообще с одним вызовом конструктора решиться), или постоянный, а еще от реализации push_back. Я всех тонкостей не помню и каждый раз беру принты и смотрю, как оптимальнее в моем случае. Последний раз такое было пару лет назад, потому что редко, знаешь ли, подобные вещи бывают бутылочным горлышком.
Это так хуйня, из-за которой С++ считают сложным языком, а на практике с тонкостями проще на месте разобраться.
Аноним 29/01/19 Втр 00:26:11 133710348
>>1337092
> Результат a+b это не prvalue, это ничто. Вызова-то нет, значит нет и результата.
Откуда этот радикализм?
Литералы, кроме строковых, это prvalue (https://timsong-cpp.github.io/cppwp/n4659/expr.prim.literal)
`5` — это вызов чего? Хотя бы притащи что-нибудь из [over.built].

Или ты считаешь что раз вызов функции с нессылочным возвращаемым типом это prvalue, то любое prvalue должно быть вызовом функции с нессылочным возвращаемым типом?

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

Нет. Я видел обсуждение где пытались про отсутствующее описание свойства (не value category) одного встроенного оператора сказать, что оно не отсутствует, а следует из [over.built], на что был дан ответ от мембера комитета что для случая встроенных типов [over.built] не применяется и фиксить надо [expr]. Хочешь верь, хочешь — нет.
Аноним 29/01/19 Втр 00:28:12 133710449
>>1337092
>Это просто ноды в AST.
Вызов функции это тоже ноды в AST)))
29/01/19 Втр 05:54:51 133718650
нихуя у вас страуструп
Аноним 29/01/19 Втр 09:10:44 133721251
>>1337103
>>1337092
>>1337083
>>1337079
>>1337070
>>1337048

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

Допустим, я смотрю на выражение (a + b) как на возвращающее результат, по аналогии с функцией.

Вот можно ли привести пример кода, где такая аналогия не сработает? Ну, например, код будет вести не так, как ожидалось.

Или же это просто спор о том, что в чорном ящике происходит?
Аноним 29/01/19 Втр 09:28:23 133721852
image.png (11Кб, 1171x68)
1171x68
Аноним 29/01/19 Втр 10:04:08 133723553
>>1337212
>Или же это просто спор о том, что в чорном ящике происходит?
В чорном ящике, которого нет.
Аноним 29/01/19 Втр 10:20:07 133724754
>>1337049
tcp по идее сперва нужно открыть. udp позволяет слать сразу, но в любом случае на другой стороне у тебя должен висеть слушатель.
Аноним 29/01/19 Втр 14:08:26 133735855
>>1337101
А что такое принты, напомни пожалуйста.
Аноним 29/01/19 Втр 14:11:06 133736056
>>1337247
А слушатель - это кто? Функция какая то?
И на сокет данные в каком виде приходят? Это же вроде как просто поток единиц и нулей, то есть слушатель должен будет ещё и дешифровать все это сам?
Аноним 29/01/19 Втр 15:50:20 133742457
image.png (215Кб, 750x558)
750x558
Почему эта книга такой ёбнутой цены стоит?
Аноним 29/01/19 Втр 20:18:18 133753258
Вот создал я tcp сокет. Как мне вернуть его адрес и порт? Какой функцией? Читаю доку Qt, но там почему то нет такой функции.
Аноним 29/01/19 Втр 20:31:46 133754359
>>1337532
А унаследованные функции смотрел? И не проще тсп сервер и клиента использовать?
Аноним 29/01/19 Втр 21:06:08 133756560
>>1337543
А обычно между сокетами данные не отправляют, да? Только с сокета на сервер?
И вообще, клиент ведь может несколько сокетов делать для связи с сервером, или так лучше не делать? А закрывать их надо руками или они сами? Как несколько сокетов вообще влияют на производительность?
Аноним 29/01/19 Втр 21:17:13 133757461
>>1337565
Почему с сокета на сервер? У сервера тоже есть сокет, не так ли?
Аноним 29/01/19 Втр 21:22:41 133758162
>>1337574
У сервера hostAddress. Который мы прописываем для сокета клиента, чтобы он читал с него данные. Так ведь?
Аноним 29/01/19 Втр 21:24:07 133758563

потому что здесь и сейчас
у них нет будущего
женщины на это ведутся
им нужны эмоции

Аноним 29/01/19 Втр 21:38:53 133759564
>>1337585
Оставь этот тред крестоблещащий,
Динамикой дщерь соблазненная.
Аноним 29/01/19 Втр 22:28:45 133761665
1548790122865.PNG (54Кб, 1413x762)
1413x762
Аноны, помогите. Код на пикче. Вроде бы все просто, ошибок никаких нет. Но почему то после сборки постоянно пишет "Программа неожиданно завершилась". И хуй знает, почему.
Опытным путем, закомменчивая строки, выяснил, что это из-за 19 строки. Но в чем проблема там - хз.
Аноним 29/01/19 Втр 22:39:53 133762766
>>1337616
server->serverPort() у тебя возвращает число. Попробуй заменить на QString::number(server->serverPort()).
Да и зачем комментить строки, запускаешь в режиме дебага, оно тебе само breakpoint поставит на том месте, где программа крашится. И call stack посмотреть можно будет.
Аноним 29/01/19 Втр 22:42:18 133763067
>>1337627
Я итак в режиме дебага запускаю, но почему то нихуя не показывает. В консоли сборки пишет, что процесс завершился успешно. В выводе приложения пишет хуйню с пика.
Аноним 29/01/19 Втр 22:46:31 133763168
>>1337627
> server->serverPort() у тебя возвращает число. Попробуй заменить на QString::number(server->serverPort()).
Не помогает. Да и в примере, в котором я смотрел код, все так же. Даже если я возьму код оттуда и заменю им свой, все равно будет писать "Программа неожиданно завершилась". Пиздец какой то. Для Qt Creator такие ситуации - это норма?
Аноним 29/01/19 Втр 23:27:56 133765769
1548793674024.PNG (78Кб, 1594x859)
1594x859
>>1337631
Короче, понял, как запускать отладку.
Какой то read access violation у меня.
Алсо, сервер создается, но IP адрес у него почему то 0.0.0.0.
В описании QTcpServer::serverAddress() написано Returns the server's address if the server is listening for connections; otherwise returns QHostAddress::Null. Почему серверу присваивается нулевой адрес, если у меня listen прописан?
Аноним 30/01/19 Срд 02:03:31 133768670
Мне вот интересно, зачем у типов битность.
short — целевой тип будет оптимизирован по размеру и иметь ширину не меньше 16 бит.
long — целевой тип будет иметь ширину не меньше 32 бит.
long long — целевой тип будет иметь ширину не меньше 64 бит.

Это только для совместимости с архитектурами систем?
 То есть long long будет выдавать ошибку в системе виндовс х32?
Аноним 30/01/19 Срд 02:48:24 133769271
>>1336773 (OP)
Hello world плюсики, вот ненавижу я ебаться с любими символьными задачами еб их мать, таки заставили.
В общем есть текстовый файл e.g любая книга там, нужно парсить на слова. Слово — набор символов по правилу a-zA-zА-яа-я0-9 разделенных любым не !правило символом e.g word space (пробел), запятая, да что угодно. Пытаюсь именно через fsanf сделать, красиво то бишь, таким образом fscanf(отсюда,"%[a-zA-z\u0401\u0451\u0410-\u044f\u0430-\u044f]s",сюда);
Если в файле первое слово на инглише -- распознается оно целиком и на этом все, я подозреваю что функция в цикле одно и тоже слово распознает, то есть не переключается на поиск следующего как при fscanf(pIn,"%s",pBuf);. Если в файле первое слово на руссцком то распознается только до первого мелкого символа и тоже стопорится на первом слове. Есть вариант именно через fscanf сделать распозвнование слов ?
Аноним 30/01/19 Срд 02:52:34 133769372
>>1337686
>тип будет оптимизирован
>тип будет иметь ширину
> ...
Это все зависит от архитектуры и компилирования. По - идее можешь хуй класть, а можешь запариться и все сделать красиво.
30/01/19 Срд 06:32:46 133771473
>>1337692
Hello world плюсики
В общем есть тарелка, оттуда надо есть суп.
Пытаюсь именно ножом есть красиво, но он режется.
Есть вариант как именно ножом поесть супа?
Аноним 30/01/19 Срд 07:26:30 133772174
>>1337692
>именно через fscanf
Причем тут плюсики?
Аноним 30/01/19 Срд 11:19:16 133778675
>>1337686
>То есть long long будет выдавать ошибку в системе виндовс х32?
Нет, схуяли?
массивы ы 30/01/19 Срд 13:46:52 133783776
памагите
Аноним 30/01/19 Срд 14:53:55 133786577
>>1337786
А всякие uint_64 зачем?
Аноним 30/01/19 Срд 14:54:03 133786678
>>1337786
А в чем тогда смысл
Аноним 30/01/19 Срд 15:57:26 133790279
Зачем учить почти мертвый язык, на ХХ несколько вакансий, где нужен опыт от 3 лет, как сюда можно вкатится и возможно ли это?
Аноним 30/01/19 Срд 16:08:49 133791080
image.png (1453Кб, 2018x2228)
2018x2228
Аноны, есть ли какой-то гайд на подобии пика, чтобы были расписаны сферы использования плюсов и необходимые знания для работы в этих сферах? Сейчас уже пол года изучаю язык, и внезапно остановился, потому-что хуй знает что вообще дальше делать, ибо в учебных пособиях расписано практически одно и то же, а что учить дальше я понятия не имею из-за недостатка опыта. Сейчас вот змейку консольную сделал. Мне лично интересны нейросети но у нас курс по ним начнется только через год. Стоит ли сидеть и учить самому, или это сфера в которую лучше не лезть без профильных знаний?
Аноним 30/01/19 Срд 17:09:50 133796981
>>1337910
Тот, кто достаточно опытен, чтобы запилить подобный гайд, подобной хуйней заниматься не будет.
Берешь не сильно крупный опенсорс с гитхаба и пробуешь пофиксить любой баг из issues. Попробуй сам, не получится - напиши мейнтейнерам.
Альтенратива - пилить пет-проекты самому, хуже.

> интересны нейросети
Учи питон теперь, хули
> но у нас курс по ним начнется только через год.
Это, конечно, проблема, ведь если ты начнешь изучать сам, это тебе только помешает и тебе пиздец
Аноним 30/01/19 Срд 17:25:29 133797782
>>1337902
студентов в вузах чаще всего учат на сишке и крестах
потом часть из них идет работать за еду во всякие нии, геймдев и прочую парашу
так и живут крестобляди
Аноним 30/01/19 Срд 17:27:32 133797983
>>1337977
Крестобляди ОЧЕНЬ легко работать на западе. Потому что кресты являются унылым говном вообще везде, поэтому джоны учить кресты не хотят. А тут ты такой молодой и красивый
Аноним 30/01/19 Срд 17:53:08 133800584
>>1337721
>>1337714
Ясно, ну хули от вас еще ожидать было. Ералаш ебаный
Аноним 30/01/19 Срд 17:54:11 133800785
>>1337714
Хотя этот прав на самом деле, я всегда такой хуйней маюсь, хз почему мне это доставляет.
Аноним 30/01/19 Срд 17:56:23 133801086
>>1337979
на швятом западе
дааа
Аноним 30/01/19 Срд 18:12:47 133802187
>>1338010
Ну, факт. Я через кресты вкатился и сейчас пишу на них процентов 20 времени. А кому я был нужен со стандартным стеком? Никому
Аноним 30/01/19 Срд 22:22:33 133825688
>>1338021
Если не секрет в какой области работаешь?
Аноним 30/01/19 Срд 22:24:47 133826089
Аноним 30/01/19 Срд 22:29:32 133826890
>>1337910
Это сфера в которую нужно лезть, дома ты ничего на научишься, таких материалов в широком доступе просто нет и у всех своя специфика. Если ты хочешь вкатываться в с++, то заимей базовые знания математического анализа и дискретной математики, чтобы хотя бы задания понимать тестовые и пробуй устраиваться.
Аноним 30/01/19 Срд 22:30:23 133827091
>>1338260
Бля как же грустно осознавать что такое проходит мимо, и я никогда не смогу туда вкатиться..
Удачи тебе анонче.
Аноним 30/01/19 Срд 22:35:00 133827992
>>1338270
хули мимо, серьёзные языки учит 3.5 человека, 90% ит скота пробует вкатиться в веб, потому что он дико распирен всякими барыгами курсов, здесь же вкатиться более реально
Аноним 30/01/19 Срд 22:40:17 133828693
>>1338279
>хули мимо, серьёзные языки учит 3.5 человека, 90% ит скота пробует вкатиться в веб, потому что он дико распирен
Распиарен потому, что отбить вложеннок бабло гораздо проще. Вакансии на веб исчисляются просто тысячами в радиусе 10км от меня, например.
А что я буду представлять зная с/с++? Кроме этого требуют еще чуть ли не PhD по матану чтобы вкатиться, либо 100500 лет опыта.
Рад за тебя анон, если не пиздишь.
Аноним 30/01/19 Срд 22:45:34 133829194
>>1338286
>вложенное
быстрофикс
Аноним 30/01/19 Срд 23:00:32 133830495
>>1338286
У меня вакансии исчисляются десятками, соискателей конечно тысячи. По с++ вакансий в два раза меньше, чем по php, но не мало, по java вакансий почти в два раза больше, чем по php. Если у тебя тысячи, то по с++ будут тысячи/сотни тебе мало? Я с C# устраивался, когда было 3 вакансии на весь город и все с опытом, а ты тут ноешь. Требования ты преувеличивешь, они тебе кажутся завышенными, потому что ты нихуя не знаешь, ты поучи, что в требованиях написано и поймёшь, что они вполне адекватные и минимальные. Распиарен, потому что на курсах зарабатываешь больше, чем в офисе макакой.

Вообще в программировании ты нахуй никому не нужен, будущее программистов весьма хуёвое, оно будет напоминать сегодняшнего водителя. Поголовная автомобилизация, все пользуются машинами, всё доставляется машинами, всё перевозится, каждый чих, каждый пук, стопку из 300 листов А4 возят целый день по городу, сумасшедший дом, всем нужны машины, без машины никуда. Но вместе с тем почти каждый человек с яйцами имеет права и может управлять машиной, в результате чего водители имеют маленькую зп и хуже червя пидора, конечно если это не водитель какого-нибудь полковника, который сам майор или быть может это водитель какой-то йоба-строительной техники, которой умеет управлять 1 человек на 100 000. Вот и с программистами будет так же, ты станешь нахуй никому ненужной обслугой, которой, как грязи, бизнес никогда не позволит, чтобы ему рабочий класс диктовал какие-то условия.
Программисты дорогие? Наплодим тысячи программистов, чтобы рыночек порешал. В таких жёстких условихя в это говно либо нужно не вкатываться вообще, либо вкатываться так, чтобы быть программистов-майором у какого-нибудь полковника на подсосе, либо программистом, который знает ебалу, которую знает 1 человек на 100 000. Вот и выбирай что тебе учить.

Аноним 30/01/19 Срд 23:01:27 133830796
>>1338268
>Это сфера в которую нужно лезть, дома ты ничего на научишься, таких материалов в широком доступе просто нет и у всех своя специфика
Неправда, есть опенсорс, который сам по себе лучше 90% коммерции. Не сам код, а соответствующая тусовка - мейллисты и т. п. У меня был наставником один из разработчиков Swift, например.
Сделай один хороший пуллреквест куда-нибудь, и работа у тебя в кармане, при чем сразу на позиции мидла.

>>1338286
>Распиарен потому, что отбить вложеннок бабло гораздо проще
А в работе охранником отбить вложенное бабло еще проще.
В этом и прикол, что сюда идут только те, кто может пройти зефирный тест. Сама по себе работа как работа. В реакте например я так и не разобрался.
Аноним 30/01/19 Срд 23:03:08 133830997
>>1338304
>Программисты дорогие? Наплодим тысячи программистов, чтобы рыночек порешал.
Но это невозможно. Результат такой политики виден в Индии, плодят, плодят, да нихуя наплодить не могут.
Аноним 30/01/19 Срд 23:08:08 133831798
>>1338309
Ну так наплодили и их продуктами пользуется весь мир и бизнес с этого поимел сверхприбыли, потребитель тоже доволен, потому что по нему прошлись рекламой, он и не знает, что ест говно и можно иначе, наоборот рад и просит ещё. Понятно, что индусами ты серьёзных вещей не сделаешь, но для львиной доли рынка серьёзные вещи и не нужны, ит продажи строятся на том, чтобы внушить потребителю, что ему нужен этот продук, хотя на самом деле нет, это касается не только консумеров, но и энтепризе.
Всё держится на объёбе, и это на самом деле хорошо, благодаря этому объёбу работа хотя быть есть.
Аноним 30/01/19 Срд 23:25:04 133833699
Аноны, что лучше учить после Шилда, вкатываться в QT или STL библиотеку? Продолжил обучение плюсов пока что книгой "Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ Скотт Майерс", но там не поясняют за то, что делают новые фичи в плюсах, а говорят как их юзать. Я лох в английском(но работаю над этим), поэтому не могу вкатиться в англ книгу(ждать пока не выучу англ до уровня чтения спец литературы не вариант). Есть что-то на русском про новые стандарты?
Аноним 30/01/19 Срд 23:26:18 1338338100
>>1338336
Читай STL, иначе большая часть советов из современной книги будет тебе просто не понятна.
Аноним 30/01/19 Срд 23:32:25 1338342101
>>1338304
>программистом, который знает ебалу, которую знает 1 человек на 100 000
Хочу это.
Ты имел ввиду с/с++?
Аноним 31/01/19 Чтв 00:04:48 1338353102
chay-smeh-kompy[...].jpg (31Кб, 400x400)
400x400
>>1338307
>есть опенсорс, который сам по себе лучше 90% коммерции
>опенсорс лучше 90% коммерции
>опенсорс
>лучше коммерции
>опенсорс
>лучше
Аноним 31/01/19 Чтв 00:05:52 1338354103
>>1338307
>наставником
Что значит наставником? Где их добывать? На гитхабе?
Аноним 31/01/19 Чтв 00:08:17 1338355104
>>1338353
Посмотри исходники винды на досуге
Аноним 31/01/19 Чтв 00:32:55 1338364105
>>1338354
Я тебе раскрою страшную вещь, но за опенсорс не платят, поэтому там нужно быть полным бесполезным долбоебом, чтобы тебя не приняли. Если ты полезен проекту, тебе будут помогать - объяснять какие-то вещи, ревьюить твой код, пока он не станет нормальным для пуллреквеста, и так далее. Естественно, нужно уметь в гайдлайны проекта - если ты пишешь код на уровне laba1.cpp, то конечно тебя нахуй пошлют.
Стыдно вспомнить, но я git rebase научился пользоваться именно после матюков.
Возьми проект, не сильно большой (там много бюрократии и ты нахуй не нужен - профессионалы на зарплате сидят коммитят), не сильно маленький (там два васяна годами пилят то, что хотят), короче тысяч 5 коммитов, с нетоксичным мейнтейнером (короче он не должен посылать нахуй с обсуждениях), по интересной тебе теме, зайди в issues и посмотри, что ты можешь пофиксить. У любого проекта на С++ ДОХУИЩА багов типа "здрастьте я юзер, я пукнул когда луна была в юпитере и у меня выпал сегфолт", который всем просто лень фиксить. А дело там скорее всего в паре строчек, и что кому-то лень фиксить, а для тебя принятый пуллреквест и строчка в authors.txt
У меня еще такая хуйня была, юзаю библиотеку с BSD-лицензией, в ней баг, который решен в виде пуллреквеста и висит год. Я на этот баг напоролся, охуел, но в общем наткнулся на этот пуллреквест. Ну и хули, написал автору, мол, давай я реквесты принимать буду, а то очень нехороший баг, а ты забил на свою репу, и теперь я мейнтейнер с правом приема пулреквестов. А автор этот член комитета стандартизации С++.

Только не участвуй во флеймах и прочей токсичной поеботе. Если такая хуйня начинается, лучше смени проект.

Аноним 31/01/19 Чтв 01:44:16 1338384106
>>1338364
> А автор этот член комитета стандартизации С++.
Так чем закончилось в итоге?
Поебались? Он пригласил тебя в свои СШП в качестве молоденького супруга? Рассказывай, не томи.
Аноним 31/01/19 Чтв 07:01:28 1338420107
>>1338364
Спасибо! Огромное!
Я вот просто без задней мысли, зашел на гитхаб, и нашел кое-что по душе - игру из юношества моего :)
Чуваки пилят форк.
Аноним 31/01/19 Чтв 08:06:57 1338432108
image.png (11Кб, 498x117)
498x117
>>1337657
Доставь код из main.cpp.
Утром проверял код с пикрил, у меня всё работает.
Аноним 31/01/19 Чтв 08:12:15 1338435109
>>1337657
Блин, не надо ничего из main.cpp) Я кажись догадался. У тебя statusLabel не создан, а ты берёшь и по указателю пытаешься что то в него поместить. У тебя даже в отладчике написано это в списке справа "statusLabel 0x0".
Аноним 31/01/19 Чтв 12:24:56 1338530110
Аноним 31/01/19 Чтв 12:36:58 1338535111
а С++ объектно-ориентированый язык?
Аноним 31/01/19 Чтв 12:46:18 1338541112
>>1338530
Очевидный QtCreator
>>1338535
Страуструп говорил что нет. Мультипарадигменый.
Аноним 31/01/19 Чтв 14:11:52 1338586113
>>1338435
Бля внатуре похоже так. Чувак, приду домой, проверю, если починится, я тебя расцелую
Аноним 31/01/19 Чтв 15:01:06 1338596114
>>1338535
он как хорошая жена - ночью в постели как шлюха, но на людях сама скромность!
Аноним 31/01/19 Чтв 17:23:52 1338673115
Безымянный.png (31Кб, 1134x740)
1134x740
Програмач помоги бля ! Почему ругается как исправить ? Нихуя не пойму !
Аноним 31/01/19 Чтв 17:47:17 1338683116
>>1338673
Убери равно, поставь вокруг строки круглые скобки.
Аноним 31/01/19 Чтв 18:04:06 1338691117
>>1338683
Чёт не помогло, но проблему решило то после того как я поставил квалификатор const в конструкторе. НО всё равно не пойму почему, в GDB всё работало с первоначальным кодом.
Аноним 31/01/19 Чтв 18:05:06 1338692118
>>1338691
Литералы это конст чар.
Аноним 31/01/19 Чтв 18:44:17 1338726119
Начал разбираться с OpenGL и хочу задать вопрос: какого хуя всё так сложно то. Один ебучий треугольник нарисовать 120 строк кода. Кто уже освоил, скажите, вам по началу сложно было или я один такой тупой?
Аноним 31/01/19 Чтв 18:56:15 1338734120
>>1338726
>Один ебучий треугольник нарисовать 120 строк кода.
Этот код пишешь один раз всего, потом копипастишь или оборачиваешь в либу.
Кстати, на Vulkan вывод треугольника - больше тысячи строк.
>вам по началу сложно было
Первый раз все сложно. Самое сложное там не программный интерфейс, а понимание компьютерной графики.
Аноним 31/01/19 Чтв 19:17:12 1338753121
Нужно шарить в Машине Тьюринга/Макарова/Поста, чтобы быть нормис программистом?
Аноним 31/01/19 Чтв 19:17:49 1338755122
>>1338753
>Макарова
Маркова
фикс
Аноним 31/01/19 Чтв 19:24:26 1338769123
Аноним 31/01/19 Чтв 19:38:31 1338780124
1548952705564.mp4 (3808Кб, 1280x720, 00:00:16)
1280x720
1548952705564.PNG (2Кб, 116x92)
116x92
>>1338435
Работает, анончик, вот тебе котятки.
Теперь осталось разобраться, почему айпишник нулевой присваивается.
Аноним 31/01/19 Чтв 19:47:14 1338787125
>>1338753
Нет, это для глубокой теоретической информатики. Даже в теории алгоритмов сейчас вместо тьюринга в качестве абстрактной машины используют рам-модель.
Аноним 31/01/19 Чтв 21:35:26 1338840126
>>1338734
>копипастишь или оборачиваешь в либу
А почему это сразу не завернули в опен жл?
Больжедор 31/01/19 Чтв 21:37:08 1338842127
Когда мне нужен массив всегда юзаю вектор, разве это плохо?
Аноним 31/01/19 Чтв 21:39:51 1338844128
>>1338304
>будущее программистов весьма хуёвое, оно будет напоминать сегодняшнего водителя
Плохая аналогия. Программировать в принципе могут не все, а нормально программировать - вообще очень маленький процент населения. Даже с нынешним наплывом вкатывальщиков, рыночек все равно всех проглотит и добавки попросит. Прогресс постоянно подкидывает новую работенку. Например, кто пятнадцать лет назад думал об ML и Data Science за пределами академий?
Больжедор 31/01/19 Чтв 21:49:43 1338847129
>>1338304
>водитель
>программист
На мой взгляд ты жопу с пальцем сравниваешь.
Аноним 31/01/19 Чтв 21:54:49 1338848130
>>1338840
Потому что есть десятки чуть других способов вывода треугольника, и большинство из них нужны.
Аноним 31/01/19 Чтв 21:57:55 1338851131
>>1338847
Ну какой-то здравый смысл есть. Я тоже раньше думал, что вот начнут массово детишек в школе питону учить, и тети сраки в бухгалтерии пдф-ки будут скриптом склеивать, а с базой будут на SQL работать. Кодинг-то не такой сложный вроде бы. Хуй. У большинства людей мозги не так повернуты, чтобы даже в визуальном редакторе ноды соединить правильно. Какой-то гайки в голове не хватает.
Больжедор 31/01/19 Чтв 22:00:45 1338852132
>>1338851
>Какой-то гайки в голове не хватает.
Даже без этого жопа с пальцем, как сравнить официанта и инженера-геолога. А с этим так вообще.
Аноним 31/01/19 Чтв 22:12:08 1338859133
Screenshot1.png (31Кб, 801x336)
801x336
Что значит, если NULL == 0? Когда NULL == 0, а когда не равен 0?
Аноним 31/01/19 Чтв 22:19:17 1338861134
>>1338842
ем супы только с эклерами вприкуску
разве это плохо?
Аноним 31/01/19 Чтв 22:20:49 1338862135
>>1338859
В крестах вроде всегда равен по стандарту. В сишке - нет. Были какие-то компиляторы для древних архитектур, где ненулевое значение.
Аноним 31/01/19 Чтв 22:21:24 1338863136
>>1338859
Думаю он имел ввиду что использование NULL не всегда является однозначным, и если тебе нужен именно нулевой указатель, то в С++11 появилось специальное ключевое слово, которое гарантированно означает то, что тебе нужно.
Аноним 31/01/19 Чтв 22:22:49 1338864137
>>1338852
У него сравнение в том смысле, что все водить умеют, но не каждый водитель. Как все писать умеют, но не каждый писатель. Вот так же и с программистами, все будут уметь кодить, но за деньги кодить будут или макаки или профессора.
Больжедор 31/01/19 Чтв 22:23:29 1338865138
image.png (722Кб, 960x720)
960x720
>>1338861
У Страуструпа было написано используйте вектор везде где только можно в книге. Погуглил, даже в презентации он это сказао. Последняя строчка. Ну чем он плох? Это ж удобный безопасный массив, с ним не надо ебаться, как можно быть против?
Больжедор 31/01/19 Чтв 22:23:53 1338866139
>>1338864
Тогда я его понял неправильно вообще, лол.
Аноним 31/01/19 Чтв 22:23:55 1338867140
>>1338859
>>1338862
Даже если NULL не задефайнен в 0, должна вызываться f(int). Он же превращается после препроцесса в целочисленный литерал. Откуда неоднозначность?
Аноним 31/01/19 Чтв 22:25:15 1338868141
>>1338753
можешь их накодить на плюсах, будет весело
легко проверять их, скармливая упражнения из академических учебников..
Аноним 31/01/19 Чтв 22:25:48 1338869142
>>1338865
Зачем нужен ненадежный вектор, инвалидирующий все поинтеры в случае аллокации, когда есть божественная дека, лишенная этого недостатка и в качестве бонуса дающая спереди?
Аноним 31/01/19 Чтв 22:27:06 1338872143
Аноним 31/01/19 Чтв 22:27:50 1338874144
Больжедор 31/01/19 Чтв 22:28:52 1338875145
>>1338869
У деки другой смысл, рандом акссес за О(н), речь о том, что чем плохо вместо массива вектор юзать всегда. Деку вместо массива не поюзаешь.
Аноним 31/01/19 Чтв 22:29:15 1338876146
>>1338867
>Откуда неоднозначность?
Неоднозначности нет. Есть вариант, что ты хочешь вызывать f(void), но у тебя где-то заинклудится и вызовется f(int) и выстрелит тебе в ногу. С nullptr такой проблемы нет.
Аноним 31/01/19 Чтв 22:29:47 1338877147
>>1338875
Извиняюсь за подпись, хотел посмотреть что за поле имя и забыл.
Аноним 31/01/19 Чтв 22:32:11 1338879148
>>1338875
А как работает вектор, напомните? Он же дает произвольный доступ к элементам, но при этом может менять размер?
Аноним 31/01/19 Чтв 22:32:24 1338880149
>>1338869
>рандом акссес за О(н),
Разве? Там же вроде массив указателей на субмассивы одинакового размера. То есть сначала ищется указатель на субмассив (за O(1)), а потом в нем элемент по индексу.
Аноним 31/01/19 Чтв 22:32:41 1338881150
>>1338859
>>1338867
Сейчас проверил. Если написать f(NULL), компилятор ругается на двусмысленность. Видимо в современных компайлерах NULL в какой-то имплементейшон-дефайнед тип задефайнен, что кастуется как в int, так и в поинтер.
Аноним 31/01/19 Чтв 22:33:52 1338882151
Аноним 31/01/19 Чтв 22:34:11 1338883152
>>1338879
Обёрнутый в удобную упаковку с ручками динамический массив. А недавно один умный чувак сказал мне, что я ебанат и зачем использовать вектор, когда достаточно обычного массива, но как же ручки, потом безопасность и тд. Непонятно.
Аноним 31/01/19 Чтв 22:34:43 1338884153
>>1338867
NULL где-то может быть за- или пере- дефайнен вообще не в int

>>1338876
Тогда может появиться неоднозначность в подборе функции.
Аноним 31/01/19 Чтв 22:35:41 1338886154
>>1338879
>Он же дает произвольный доступ к элементам, но при этом может менять размер?
Да. Но ты не можешь хранить указатели на элементы вектора. При увеличении размера он может аллоцировать память, и перемещать элементы туда. С декой - можешь (если не удаляешь элементы из середины).
Аноним 31/01/19 Чтв 22:36:45 1338888155
>>1338880
Ну там от реализации зависит, либо вставка за О(н), либо доступ, мне когда двусторонняя очередь представляется как-то не понимается, откуда там должен быть рандом аксес, положь в конец, положь в начало, возьми с конца, возьми с начала и тд.
Аноним 31/01/19 Чтв 22:36:54 1338889156
Screenshot2.png (4Кб, 269x213)
269x213
Screenshot3.png (1Кб, 114x92)
114x92
>>1338881
У меня нормально работает, студия 17
Аноним 31/01/19 Чтв 22:38:16 1338891157
Аноним 31/01/19 Чтв 22:38:41 1338892158
>>1338888
По стандарту и вставка, и доступ за конст.
Аноним 31/01/19 Чтв 22:39:06 1338893159
>>1338883
>что я ебанат и зачем использовать вектор, когда достаточно обычного массива
От ситуации зависит. Если тебе надо выделить на стеке пяток интов, то вектор действительно глупо использовать.
Аноним 31/01/19 Чтв 22:39:29 1338894160
>>1338886
С динамическим массивом та же херня будет по идее, не?
Аноним 31/01/19 Чтв 22:39:42 1338895161
>>1338886
А зачем тебе указатели на его элементы?
Аноним 31/01/19 Чтв 22:41:03 1338896162
>>1338892
В деке как структуре зависит от реализации. И по мне так то, что в деке как структуре возможен рандом аксес бред немного.
Аноним 31/01/19 Чтв 22:41:09 1338897163
>>1338894
>С динамическим массивом
Что такое "динамический массив"?
Аноним 31/01/19 Чтв 22:41:53 1338898164
>>1338893
Почему? Разве он настолько много жрёт?
Аноним 31/01/19 Чтв 22:42:26 1338899165
>>1338895
>А зачем тебе указатели на его элементы?
Чтобы обращаться к ним через указатель, а не по индексу.
Аноним 31/01/19 Чтв 22:43:01 1338902166
>>1338897
Массив с переменным размером?
Аноним 31/01/19 Чтв 22:44:05 1338904167
void* - указатель на тип воид или указатель типа воид?
Аноним 31/01/19 Чтв 22:44:06 1338905168
>>1338899
А по индексу тебе не нравится?
Аноним 31/01/19 Чтв 22:44:11 1338906169
>>1338898
>Почему? Разве он настолько много жрёт?
Он аллоцирует память в хипе, а это может быть дорого даже на современных машинах.
Аноним 31/01/19 Чтв 22:45:29 1338908170
>>1338906
Что значит дорого? А надо все в стеке делать? С хипом лучше не связываться?
Аноним 31/01/19 Чтв 22:45:46 1338909171
>>1338906
>это может быть дорого даже на современных машинах.
Ясно, ну похоже это ответ, я думал это давно уже не проблема.
Аноним 31/01/19 Чтв 22:45:51 1338910172
>>1338904
Вообще особая штука. Указатель на что угодно, но в арифметике ведёт себя как char*.
Аноним 31/01/19 Чтв 22:46:22 1338912173
>>1338905
>А по индексу тебе не нравится?
Тем, что указатель самодостаточен, ты можешь передать его куда-нибудь, сохранить, а с индексом для обращения к элементу нужен еще и сам вектор.
Аноним 31/01/19 Чтв 22:49:09 1338914174
>>1338912
Ну по мне так странно требовать этого после реаллокации, с декой-то там блоками хуярится.
Аноним 31/01/19 Чтв 22:51:44 1338917175
>>1338908
>Что значит дорого?
Что лучше очень часто не вызывать.
>А надо все в стеке делать? С хипом лучше не связываться?
Если функция часто вызывается, то лучше маллок в ней не делать.
Аноним 31/01/19 Чтв 22:52:35 1338920176
>>1338917
А если аллоцировать, а потом подчищать сразу?
Аноним 31/01/19 Чтв 22:53:30 1338923177
>>1338920
В два раза хуже сделаешь.
Аноним 31/01/19 Чтв 22:53:53 1338924178
Почему компилятор при дебаге иногда выдает переменным значения, отличные от тех, которые выведет cout? Всё дело в процессах, которые выполняются в рантайме?
Аноним 31/01/19 Чтв 22:55:19 1338927179
>>1338924
>компилятор при дебаге
Почти квантовая поебень, наблюдение начинает влиять на ход эксперимента.
Аноним 31/01/19 Чтв 22:58:27 1338930180
Аноним 31/01/19 Чтв 22:59:17 1338932181
>>1338930
Ну так ты время тратил на каждое выделение, а теперь ещё и на каждое освобождение будешь тратить.
Аноним 31/01/19 Чтв 23:00:54 1338934182
g.png (426Кб, 600x630)
600x630
>>1338920
Представляешь примерно, как аллокатор общего вида работает? Он менеджит дохрена памяти, должен обращаться периодически к ОС, не допускать фрагментации, ходить по куче всяких списков и тд. И так каждый раз при вызове malloc или free. Маллок тут, маллок здесь на каждой операции программы - вот и просраны миллисекунды, медленно переходящие в секунды при длительной работе.
Если тебе нужна память именно на куче - выдели её один раз для твоей операции, и освободи в конце программы.
Аноним 31/01/19 Чтв 23:01:42 1338935183
>>1338927
То есть дебаг говно без задач и остается чекать все через сиауты?
Аноним 31/01/19 Чтв 23:03:07 1338937184
>>1338932
А, так дело во времени? А я думал, вся проблема в трате памяти.
Аноним 31/01/19 Чтв 23:04:54 1338938185
>>1338935
Конечно нет, просто относись спокойно к спецэффектам, вот без дебага было как: в двух тредах мютекс лок мьютекс анлок, тыц тыц, в cout выводит mutex1 mutex2 mutex1 mutex2, нормально, а с дебагом то же самое mutex1 mutex1 mutex1 mutex2 mutex1 mutex2 полный рандом.
Аноним 31/01/19 Чтв 23:05:09 1338939186
>>1338883
Если под обычным массивом он подразумевал int yoba[], то он тоже ебанат, потому что обычный массив в С++ называется std::array.
А так вектор хорош в 99% случаев, еще 1% он плох, но в 99% из этого процента это будет преждевременной оптимизацией. Так что не парься.
Аноним 31/01/19 Чтв 23:07:16 1338941187
>>1338912
>Тем, что указатель самодостаточен
Пока твой вектор жив.
>а с индексом для обращения к элементу нужен еще и сам вектор.
И это хорошо, потому что если вектор мертв, то он не жив
Аноним 31/01/19 Чтв 23:07:32 1338942188
Аноним 31/01/19 Чтв 23:08:33 1338945189
>>1338939
>под обычным массивом он подразумевал int yoba[]
Его, тк я переспрашивал мб стд аррай? , да и вот с std::array хуета, пушо один хуй аллокация будет хотел сказать я, но да погуглил, std array на стеке целиком, прикольно, век живи век учись. Спасибо двач.
Аноним 31/01/19 Чтв 23:09:30 1338946190
int i{} = int i() и.т.п ?
Аноним 31/01/19 Чтв 23:10:09 1338948191
>>1338942
Да такая специальная залупа для передачи управления между тредами как я понял, вот у тебя прога в одном треде работает, потом хоп мьютекс лочит тред и всё, а в другом треде ожидание пока он разлочится и хоп, захватился этим и тд, погугли, он сам за себя говорит.
Аноним 31/01/19 Чтв 23:11:42 1338949192
>>1338948
Мьютекс один на несколько тредов или у каждого треда свой?
Аноним 31/01/19 Чтв 23:12:32 1338950193
>>1338946
Нет. Попробуй
int i();
std::cout << i;
А потом гугли the most vexing parse.
Аноним 31/01/19 Чтв 23:12:46 1338952194
>>1338942
Mutual Exclusion. Штука, которую может "захватить" только один тред. Используется для того, чтобы в любой момент времени только один тред владел какими-то данными или исполнял какой-то код. Остальные, обычно, ждут, пока мьютекс разлочится, чтобы захватить его самим.
Аноним 31/01/19 Чтв 23:13:36 1338954195
>>1338946
int i(); это функция с именем i возвращающая тип int. Если хочешь вызвать дефолтный конструктор, пиши int i;
Аноним 31/01/19 Чтв 23:13:45 1338956196
>>1338949
Не помню, это был разовый эксперимент в винапи, я гуглил и походу разбирался как сделать, наверное общий, но наверное может быть и больше, там какой-то ололо интерфейс был, как связать тред и мьютекс или типа того. Погугли.
Аноним 31/01/19 Чтв 23:15:19 1338958197
>>1338950
У меня и там и там 0 получился.
Аноним 31/01/19 Чтв 23:17:03 1338961198
>>1338954
Я хочу инициализировать "i" нулём.
Аноним 31/01/19 Чтв 23:17:36 1338962199
>>1338952
Это что то типа Fence в Directx 12?
Аноним 31/01/19 Чтв 23:40:32 1338974200
>>1338937
>А, так дело во времени? А я думал, вся проблема в трате памяти.
Маллок - это системный вызов, а они медленные. Медленные - это верхний порядок в районе несколько сотен тысяч вызовов в секунду, когда все процессорное время чисто на маллоки будет уходить. Если функция нечасто вызывается, то можешь не париться вообще.
Аноним 31/01/19 Чтв 23:50:55 1338978201
>>1338962
Никогда не работал с directx. Судя по диагональному прочтению, fence - штука, позволяющая ждать и объявлять определённые события. Эти скорее больше похоже на conditional variable или Events.
ЕМНИП в "Соверменных Операционных Системах" Таненбаума (или в любой книге про многопоточное программирование) описаны все основные примитивы синхронизации потоков.
Аноним 31/01/19 Чтв 23:54:02 1338980202
>>1338974
>Маллок - это системный вызов
Не обязательно. Он может вызвать какой-нибудь VirtualAlloc/sbrk, а может и не вызвать.
Аноним 01/02/19 Птн 00:07:16 1338984203
>>1338980
>Он может вызвать какой-нибудь VirtualAlloc/sbrk, а может и не вызвать.
Там кроме этого еще мьютекс как минимум.
Аноним 01/02/19 Птн 00:13:58 1338986204
>>1338984
Кстати да, не подумал об этом. Но я думаю аллокаторы держат маленькие арены отдельно для каждого треда, чтобы избежать слишком частого дёрганья этого глобального мьютекса.
Аноним 01/02/19 Птн 00:22:40 1338990205
>>1338986
>Но я думаю аллокаторы держат маленькие арены отдельно для каждого треда, чтобы избежать слишком частого дёрганья этого глобального мьютекса.
Не получится. Ты можешь вызывать маллок в одном треде, а фри в другом. Как минимум фри синхронизировать придется.
Аноним 01/02/19 Птн 00:30:28 1338999206
>>1338726
Я так на DirectX11 пока рисовал треугольник чуть не пизданулся. Посмотрел, какой охуенный треугольник получился, и дропнул это дело.
Аноним 01/02/19 Птн 05:11:31 1339047207
>>1338954
>Если хочешь вызвать дефолтный конструктор
У int нет никаких конструкторов.
Аноним 01/02/19 Птн 05:12:38 1339048208
>>1338935
>То есть дебаг говно без задач
Нiт, это твой код говно
Аноним 01/02/19 Птн 05:13:47 1339049209
>>1338910
>Указатель на что угодно, но в арифметике ведёт себя как char.
Арифметика с void
невозможна.
Аноним 01/02/19 Птн 05:16:41 1339050210
>>1338867
>Даже если NULL не задефайнен в 0, должна вызываться f(int). Он же превращается после препроцесса в целочисленный литерал.
С разморозкой, начиная с C++11 NULL может быть определён как nullptr, который к целым числам не преобразуется.
Аноним 01/02/19 Птн 05:24:12 1339051211
>>1338896
>В деке как структуре зависит от реализации.
А может всё-таки от требований стандарта?
>И по мне так то, что в деке как структуре возможен рандом аксес бред немного.
Максимум может быть амортизированное константное время доступа.
Аноним 01/02/19 Птн 10:13:30 1339102212
image.png (23Кб, 1065x227)
1065x227
Это снова экволибрист-аутист, хелло плюсики, выхожу на связь. В это раз мне уперлось заставить тренарный оператор выполнять cout. Я знаю что ему от меня нужно ebala() желаетльно с возращаемым значением, ну хули я сделаю - то. Может я его как - то неправильно употребляю ?
Аноним 01/02/19 Птн 10:15:58 1339103213
Аноним 01/02/19 Птн 10:16:07 1339104214
>>1339102
Вместо false потому будет тот же cout но в fstream.
Аноним 01/02/19 Птн 10:16:49 1339106215
Аноним 01/02/19 Птн 10:17:00 1339107216
>>1339102
Хотя стоп. Тут не в скобках дело.
Типы с любыми скобками будут несовместимыю
Аноним 01/02/19 Птн 10:20:34 1339112217
image.png (16Кб, 757x187)
757x187
Аноним 01/02/19 Птн 10:32:36 1339123218
>>1338726
> Один ебучий треугольник нарисовать 120 строк кода.
Пиздабол. Именно просто нарисовать с уже готовым всем остальным в однус троку можно. Матрцы проекции/хуекции в случае с трекгольником 2D, хуйня то бишь. А вообще OpenGL проебал дайрект иксу от мелкомягких где - то в 90 - ых, ну ты понял.
Аноним 01/02/19 Птн 10:33:46 1339124219
>>1338734
> а понимание компьютерной графики.
Двачую этого люто.
Аноним 01/02/19 Птн 10:37:58 1339128220
>>1339112
b ? std::cout : std::cout << "hui pizda";
Аноним 01/02/19 Птн 10:41:13 1339130221
>>1339128
Не, пространство имен у меня жестко прописано. Суть в том что cout не возвращает значения вот и все, приходится, в данном случе, принудительно спрашивать.
Аноним 01/02/19 Птн 10:48:59 1339135222
>>1338780
Раз уж я взялся тебе помогать, в функцию listen(const QHostAddress &address = QHostAddress::Any, quint16 port = 0) по умолчанию передаются переменные QHostAddress::Any значит, что прослушиваться будут интерфейсы IPv4 и IPv6. Для IPv4 будет прослушиваться адрес 0.0.0.0
Если передать нулевой порт, будет автоматом выбран любой свободный порт, что у тебя и происходит.
Аноним 01/02/19 Птн 10:56:54 1339142223
1577219safearti[...].png (4282Кб, 1668x2220)
1668x2220
До этого упарывал питон и немного js.
База - циклы, ветвления etc js списана с си, как пони.
Но что за хуйня идёт дальше? Указатели, ссылки?! Куда не посмотришь, теперь эти звёзды в кошмарах снятся.
Может кто посоветовать литературу, которая бы играла роль вазелина при переходе на си с более высокоуровневых?
Аноним 01/02/19 Птн 11:07:52 1339158224
цппдрисня.png (7Кб, 1246x59)
1246x59
>>1339142
Си в другом треде. Вкатится в дцппшную ебанину до последнего стандарта нужно иметь железное очко и крепкие нервы. Если тебя уже звезды напрягают то лучше беги не оглядываясь, глупец.
Аноним 01/02/19 Птн 11:17:24 1339166225
>>1339142
>Может кто посоветовать литературу, которая бы играла роль вазелина при переходе на си с более высокоуровневых?
http://wg21.link/std17
Аноним 01/02/19 Птн 14:04:11 1339264226
Аноним 01/02/19 Птн 14:05:34 1339266227
>>1338999
А мог бы сохранить его в отдельном классе и рисовать потом несколько треугольников.
Аноним 01/02/19 Птн 14:06:49 1339267228
Аноним 01/02/19 Птн 15:03:23 1339287229
image.png (140Кб, 1423x841)
1423x841
Аноны, может кто подсказать в чём проблема с Соилом? В инете о нём нихуя нету, его будто вообще никто не использует. При попытке вкинуть в проект файл SOIL.c выдает 100 ошибок, что где-то в библиотеке gl.h нехватает скобок
Аноним 01/02/19 Птн 15:09:37 1339293230
>>1339287
Либу подключи, либо скомпилируй.

А вообще - stb_image
Аноним 01/02/19 Птн 15:22:38 1339300231
image.png (40Кб, 1425x236)
1425x236
>>1339293
Либа подключена, пересобрал ее по гайду для своей студии. Вроде всё на месте. Мне подобные ошибки давало когда я только glad и glfw3 подключал, но там решалось всё вкидыванием файла glad.c в проект. А тут при вкидывании SOIL.h выдает пик.
Я так понимаю файлы где-то конфликтуют, но уже час ебусь и не пойму где.
Аноним 01/02/19 Птн 15:22:39 1339301232
Аноним 01/02/19 Птн 15:30:59 1339319233
Аноним 01/02/19 Птн 15:33:06 1339323234
>>1339112
А почему нельзя cout << (expr ? "something" : "") << endl; ?
Нихуя у тебя и не получается, потому что обе ветви тернарного оператора должны иметь один и тот же тип. Или хотя бы быть приводимы друг к другу, если не ошибаюсь.
Аноним 01/02/19 Птн 15:35:52 1339327235
>>1339142
Скроллил треды /pr, случайно упоролся по С. Захожу и сюда иногда, планирую в последствии вкатываться в плюсики.
Никакого дальноидущего плана, просто для души и по приколу.

>Указатели, ссылки?!
Детские какульки по сравнению с сопроматом, играючи просто.
Аноним 01/02/19 Птн 15:43:27 1339333236
bhrt.jpg (5Кб, 200x200)
200x200
Аноним 01/02/19 Птн 16:31:56 1339363237
>>1339266
Слабо трифорс на direct x
Аноним 01/02/19 Птн 16:32:49 1339364238
>>1339327
А что не так с сопроматом в с++?
Аноним 01/02/19 Птн 16:36:06 1339365239
Пользовался ли кто данной ECS приблудой?
https://github.com/skypjack/entt
Если да, то как вам по сравнению с аналогами, не завалялся ли пример какой-нибудь "змейки" с использованием.
Аноним 01/02/19 Птн 16:47:06 1339371240
Аноним 01/02/19 Птн 16:48:35 1339372241
>>1339300
Там есть какая-то ебанутость, что хедеры опенгла и винды надо подключать в строго определенной последовательности. Погугли эту тему
Аноним 01/02/19 Птн 16:48:37 1339373242
>>1339371
Охуел Страуструпа шизиком обзывать?
Аноним 01/02/19 Птн 16:54:45 1339375243
>>1339373
я про шизиков, которые деку советуют. Страуструп прав.
Аноним 01/02/19 Птн 17:45:48 1339395244
>>1339051
std::deque реализация двусторонней очереди, двусторонняя очередь может быть на списке двойном сделана, там за о(н) доступ и я это считаю правильным, потому что это блядб двусторонняя очередь, какой нахуй рандом аксес, ты очередь видел вот люди в очереди стоят, чтобы добраться до 5 человека нужно пролистнуть пять и добраться, а так получается мы тупо берём пятого в ней и делаем с ним чтото, пока другие стоят и ждут. Беспредел.Сделелали бы отдельную хуету типа std::block_list и там соглы, никаких вопросов, а так бредово.
Аноним 01/02/19 Птн 17:52:31 1339398245
>>1339372
Да я уже stb_image скачал. А так эту хуйню я и сам заметил, там из-за ебанутых #ifndef порядок важен очень, иначе часть либы не подключиться и будет миллион ошибок. Я ебал в рот эти ресурсы по опенглу, на сайте висит книга которая должна быть копией сайта, но при этом там разный материал
Аноним 01/02/19 Птн 19:01:39 1339413246
>>1339135
Слушай, а сервер ведь только один порт слушать может одновременно? То есть экземпляр QTcpServer? А если я хочу несколько клиентов обслуживать, то мне надо будет несколько QTcpServer-ов инициализировать?
Аноним 01/02/19 Птн 19:29:36 1339433247
>>1339413
На одном порту может висеть много соединений с разными клиентами
Аноним 01/02/19 Птн 19:32:34 1339437248
>>1339433
А как сервер будет отличать разные соединения? Ну вот например у клиента два сокета, на одном командные сигналы, через другой данные отправляются. А на стороне сервера все на один порт приходит. Еще и от других клиентов то же самое. И как серверу различать эти разные данные?
Аноним 01/02/19 Птн 19:35:55 1339440249
>>1339398
А тебе именно OpenGL нужен? Есть SFML - плюсовая обёртка на SDL, что, в свою очередь, сишная обёртка над OpenGL.
Я сейчас тренируюсь прогать именно на этой штуке, куда проще, чем опенгл + на оффсайте хорошие примеры.
Аноним 01/02/19 Птн 19:42:43 1339443250
r00220010702mul[...].gif (3Кб, 403x306)
403x306
>>1339437
>А как сервер будет отличать разные соединения?
Посмотри структуру пакета TCP. По source port'у клиента он будет отличать.
Вообще почитай Танненбаума Компьютерные сети как художественную литературу, книга толстая, но за неделю такого чтения все вопросы отпадут.
Аноним 01/02/19 Птн 19:46:36 1339447251
>>1339443
То есть сервер должен заранее знать, на каком порту что идет?
Таненбаума не люблю, у него слишком хуевая структура книг. Как будто ее студенты писали копипастом за зачет в семестре.
Аноним 01/02/19 Птн 19:54:06 1339461252
>>1339447
>То есть сервер должен заранее знать, на каком порту что идет?
Нет, порт клиента будет рандомный. После установки соединения клиент и сервер должны договориться. В твоем случае лучше всего клиенту послать установку команд или данных сразу после установки соединения. Таким образом у твоего состояния появляется стейт.

Но на дворе 2019 год, люди сидят с ноутбуков через вайфай самолета, летящего по разным странам, а все это происходит через TOR. Делать при таких условиях stateful протокол, в котором у тебя что-то зависит от IP клиента - хуевая идея. IP клиента может меняться хоть каждую секунду.
Тебе нужно делать stateless протокол, в котором клиент посылает сообщение, где каждый раз идентифицирует себя каким-то идентификатором сессии и затем описывает что именно он посылает.
А еще лучше не выпендриваться и взять готовое решение типа http или вебсокетов.
Аноним 01/02/19 Птн 19:56:02 1339464253
>>1339461
> Тебе нужно делать stateless протокол, в котором клиент посылает сообщение, где каждый раз идентифицирует себя каким-то идентификатором сессии и затем описывает что именно он посылает.
То есть слать по одному соединению все? И команды, и данные?
Аноним 01/02/19 Птн 20:09:14 1339480254
>>1339464
Конечно. Клиент должен посылать сообщения, каждое сообщение должно содержать в себе
1. Версию
2. Идентификатор сессии
3. Размер данных
4. Сами данные
Данные в свою очередь могут состоять из команды+параметры или же кусок файла, в самимости от заголовка этих данных.
Первое сообщение должно запрашивать у сервера идентификатор сессии. Далее если даже соединение разорвется или у клиента сменится IP, клиент его восстановит и продолжит

В зависимости от типа данных протокол желательно сделать текстовым - то есть версия это просто набор буквоцифр, затем пробел, затем сессия в виде набора буквоцифр и так далее. С самими данными сложнее, если они могут быть текстовыми (то есть в них отсутствует символ \0), лучше слать текстом, который завершится символом \0 и это будет концом сообщения, иначе придется выкручиваться за счет поля с размером. Само поле лучше оставить в любом случае, потому что парсеры бывает ломаются, и так у тебя будет больше шансов понять, что там случилось.
Аноним 01/02/19 Птн 20:19:46 1339495255
>>1339480
А вообще есть смысл использовать TCP, если использоваться будет только локалка, или проще все через файловую систему запилить?
Аноним 01/02/19 Птн 20:21:03 1339498256
>>1339495
В 2019 году нужно использовать HTTP(S) и пилить REST API.
В это даже роутеры могут.
Аноним 01/02/19 Птн 20:22:24 1339504257
>>1339498
> HTTP(S)
Это же интернет-сайты, нет?
Аноним 01/02/19 Птн 20:25:03 1339506258
>>1339504
HTTP отличный протокол практически для всего, кроме тяжелого реалтайма.
Аноним 01/02/19 Птн 20:28:01 1339512259
>>1339506
Тяжелый реалтайм - это как? Несколько тысяч клиентов?
Аноним 01/02/19 Птн 20:31:53 1339523260
>>1339512
Тяжелый - который серверу и клиенту тяжело поднять, поэтому приходится ебать байты.
Аноним 01/02/19 Птн 20:32:59 1339524261
>>1339523
Почему тяжело поднять? Не совсем понял.
Аноним 01/02/19 Птн 20:33:30 1339526262
>>1339440
SFML - это никаким боком не обертка над SDL, а отдельная реализация схожих вещей на плюсах в академичном ООП. SDL - это не обертка над OpenGL, а лишь одна из частей этого, причем не обязательная. Что ты вообще пишешь.
Аноним 01/02/19 Птн 20:43:23 1339540263
>>1339524
Ну епт, для роутера и сервера на 666 ядер тяжелый реалтайм это разные вещи, не догадываешься?
Правило простое, если HTTP тебе хватает, используй HTTP. Если же это для тебя выливается в большие траты на железо (например, ты ютуб), выдумывай что-то еще.
Аноним 01/02/19 Птн 20:45:18 1339541264
>>1339540
Еще для игр везде предложи http использовать.
Аноним 01/02/19 Птн 20:46:34 1339543265
>>1339541
А чем игры отличаются, школоигротрон? В точности такое же правило.
Аноним 01/02/19 Птн 20:48:17 1339547266
>>1339543
Тем, что для только небольшого количества типов игр подойдет http (вебсокеты).
Аноним 01/02/19 Птн 20:49:54 1339551267
изображение.png (7Кб, 377x374)
377x374
>>1339547

Мужики, объясните, почему при таком объявлении длинны массива и самого массива int будут утечки памяти.
Аноним 01/02/19 Птн 20:53:09 1339553268
1549043582376.webm (3116Кб, 540x960, 00:00:11)
540x960
>>1339540
Ну ладно, спасибо тебе за советы, анончик. Держи няшу.
Аноним 01/02/19 Птн 20:53:54 1339554269
>>1339551
мужиком ты становишься когда приносишь вываренный череп врага в родную деревню, вечером все закатывают вечеринку, жарят свинью на костре, и под бой барабанов ты идешь ебать свою ровесницу в вигвам или че там они строили
Аноним 01/02/19 Птн 20:55:38 1339556270
>>1339547
ничего что вебсокеты не работают поверх http?
Аноним 01/02/19 Птн 20:55:51 1339557271
>>1339551
Зачем тебе длина в виде указателя на инт?
Аноним 01/02/19 Птн 20:55:54 1339558272
>>1339554
Мужик это крестьянин
Аноним 01/02/19 Птн 20:56:43 1339560273
>>1339556
Ничего, это просто как альтернатива приведено.
Аноним 01/02/19 Птн 20:57:07 1339561274
>>1339547
Только там где требуется низкая задержка не подойдет, там проще UDP срать. И я про это писал
Аноним 01/02/19 Птн 20:57:16 1339562275
>>1339560
В играх же UDP юзают?
Аноним 01/02/19 Птн 20:57:19 1339563276
>>1339558
Мужик - это без наколки крестов или петухов.
Аноним 01/02/19 Птн 20:57:29 1339564277
Аноним 01/02/19 Птн 20:57:38 1339565278
Аноним 01/02/19 Птн 20:58:06 1339567279
>>1339557
Для проверки выхода за пределы массива.
Аноним 01/02/19 Птн 20:58:50 1339570280
>>1339563
В тюрьме то же значение практически, простой рабочий человек, не блатной и не петух.
Мужик это НЕ воин, как ты написал тут >>1339554
Аноним 01/02/19 Птн 20:58:53 1339571281
>>1339563
Ты сильно промахнулся. Из какой ты пещеры вылез?
Аноним 01/02/19 Птн 20:59:09 1339572282
>>1339562
Зависит от игр, на серваках часто udp и его реализации eNet там.
Аноним 01/02/19 Птн 21:00:12 1339574283
>>1339567
То есть это указатель на конец массива? Тогда нахуя ты его называешь длиной.

length пишется так, а не lenght
Судя по коду утечек может и не быть, хо
Аноним 01/02/19 Птн 21:00:29 1339575284
>>1339567
Так и к чему тебе там указатель на инт, а не просто инт?
Аноним 01/02/19 Птн 21:00:31 1339576285
тя хуй знает что ты там наворотил в реалзации
Аноним 01/02/19 Птн 21:01:58 1339578286
>>1339562
UPD юзают где гарантии доставки не нужны. Как правило они не нужны там, где малость задержки важнее корректности. Поэтому я написал про реалтайм
Аноним 01/02/19 Птн 21:04:41 1339579287
изображение.png (17Кб, 460x631)
460x631
>>1339575
Привычка, понятное дело, что нету смысла.

>>1339574
Мне сегодня препод объяснял, что нужно как я понял через прибавление, то есть сначала создаём int, затем ему значение ноль присваиваем, не адрес, а именно значение.


Аноним 01/02/19 Птн 21:11:16 1339583288
>>1339579
Ну так создаешь длину массива как int, потом при добавлении элемента в массив этот int++, наверное это он тебе говорил. Не указателя на int.
Аноним 01/02/19 Птн 21:12:58 1339584289
>>1339579
Как у тебя Length->GetValue компилируется, если это указатель на int? Ты согласованные скрины кидай хотя бы.
Я утечек не вижу, в конструкторе 2 new, в деструкторе 2 delete.

Наверное, если в конструкторе Length->GetValue кинет исключение, то утечет память Lenght, но учитывая общую говняность кода этим можно пренебречь.
Аноним 01/02/19 Птн 21:17:11 1339585290
Бля, какая залупа эти стандарты С++11, вроде не тупой, но нихуя не понятно
Аноним 01/02/19 Птн 21:18:47 1339588291
изображение.png (76Кб, 1342x768)
1342x768
>>1339583
>потом при добавлении элемента в массив

ШО? Это же не лист или вектор, тут сначала надо вычислить длину, а потом уже создать количество инт, равное длине.

>>1339584
Да, вот.

>но учитывая общую говняность кода этим можно пренебречь

Почему? Подробности плес.
Аноним 01/02/19 Птн 21:21:07 1339591292
>>1339585
Используй старые.

/thread
Аноним 01/02/19 Птн 21:21:21 1339592293
Аноним 01/02/19 Птн 21:24:30 1339596294
Если у меня функция нихуя не проверяет и не выбрасывает ошибок, то её нужно помечать как noexcept?
Аноним 01/02/19 Птн 21:25:26 1339597295
>>1339585
Попробуй modern effective c++ что-ли почитать. На сам деле новые стандарты делают многие вещи гораздо проще.
Аноним 01/02/19 Птн 21:25:30 1339598296
>>1339588
>Почему? Подробности плес.
-1. Самописный массив место стандартного. Но ты, допустим, учишься (чему?)
1. _Int и _Char вместо темплейтов
2. Указатель на int вместо int
3. Общая бессмысленность - Cls_Value_Int - это нахуя? Хранить интегер в куче просто так?
4. lenght вместо length

Стиль тоже так себе, мне не импонирует. Почитай там саттера и александреску "101 хуйня про С++"
Аноним 01/02/19 Птн 21:26:24 1339600297
>>1339597
Я и старый то не совсем понимаю. Вот auto где применять и в каких случаях он полезен?
Аноним 01/02/19 Птн 21:28:01 1339601298
>>1339600
vector<int>* yoba = new vector<int>(5, 3)
vs
auto yoba = new vector<int>(5,3)
Аноним 01/02/19 Птн 21:28:45 1339603299
>>1339596
Wrong hole.
Нужно смотреть не саму твою функцию, а где она будет вызываться.
Аноним 01/02/19 Птн 21:29:13 1339604300
>>1339600
Везде где только можно, он гарантирует что переменная определена.
Аноним 01/02/19 Птн 21:31:28 1339606301
>>1339601
А, понел, типа чтобы два раза не писать vector или любой другой класс?
Аноним 01/02/19 Птн 21:33:18 1339609302
>>1339598
>Самописный массив место стандартного.

Что ты под этим подразумеваешь? Да, учусь. Я это пишу ещё и потому, чтобы не копировать многократно обработку этого цикла, просто создать и использовать готовые методы с нужными проверками, которые я также прописал в функциях.

>темплейтов

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

>Общая бессмысленность - Cls_Value_Int - это нахуя? Хранить интегер в куче просто так?

опять же для удобства, иногда бывает надо напрямую получить доступ к переменной в классе, а делать 100500 set и get явно плохой вариант.

Последнее опечатка же.

Стиль такой, чтобы не запутаться, не люблю стены текста с огромным количеством вложений.
Аноним 01/02/19 Птн 21:33:55 1339610303
>>1339606
Да. Особенно в шаблонах приятно так делать
//T - некий контейнер типа вектор
template<typename T> yoba(T x) {
auto a = t.begin();
}
вместо
T::forward_iterator a = t.begin(); // ну или как-то так
Аноним 01/02/19 Птн 21:35:09 1339613304
>>1339610
Круто. А такая запись ничем не чревата?
Аноним 01/02/19 Птн 21:39:22 1339618305
>>1339609
>Что ты под этим подразумеваешь? Да, учусь.
Вместо этого лучше бы почитал код STL'ного вектора и почему он устроен так, а не иначе. Я за свою жизнь насмотрелся на самописные контейнеры, заебало уже, ну нахуя, почему на питоне никому не приходит в голову первым делом запилить свой собственный словарь или еще что-то, а все пользуются библиотекой, а на С++ считают важным эту библиотеку переписывать.
>опять же для удобства, иногда бывает надо напрямую получить доступ к переменной в классе, а делать 100500 set и get явно плохой вариант.
Не вижу связи, как тебе класс-обретка для инта поможет в этом
Аноним 01/02/19 Птн 21:40:07 1339619306
>>1339613
Ну, это называется вывод типов и иногда он может быть чреват - худшей читаемостью кода либо тем, что ты думаешь, что тип один, а компилятор вывел другой. Drink responsively
Аноним 01/02/19 Птн 21:41:55 1339621307
>>1339619
То есть лучше писать по старинке?
Аноним 01/02/19 Птн 21:43:44 1339622308
>>1339619
> думаешь, что тип один, а компилятор вывел другой
Навел мыщку на имя и сверился со своими думами.
Аноним 01/02/19 Птн 21:43:51 1339623309
Аноним 01/02/19 Птн 21:44:38 1339626310
>>1339622
Особенно в коде типа
template<typename T> yoba(T t) {
auto a = t.begin();
}
Аноним 01/02/19 Птн 21:46:08 1339630311
>>1339618
> ну нахуя

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

>Не вижу связи, как тебе класс-обретка для инта поможет в этом

Как минимум не будет мозолить глаза, как класс она приятнее, не шучу.
Аноним 01/02/19 Птн 21:48:52 1339632312
>>1339630
>Чтобы понять зачем это было придумано.
Ну поэтому я поставил это под -1.
Хотя крестовый вектор ты все равно не переизобретешь.
>Как минимум не будет мозолить глаза, как класс она приятнее, не шучу.
Так себе мотивация.
Аноним 01/02/19 Птн 21:51:13 1339638313
>>1339632

В любом случае ты сильно помог мне подсказав про шаблоны, теперь меня ждёт очередной прорыв и сильное сокращение трудозатрат.
Аноним 01/02/19 Птн 21:55:17 1339643314
>>1339638
Почитай дизайн и эволюцию с++, там написано, откуда шаблоны взялись
Аноним 01/02/19 Птн 21:56:49 1339647315
>>1339643
Хорошо, но после Шилдта.
Аноним 01/02/19 Птн 21:58:24 1339651316
>>1339647
Шилдт основной источник говна в твоей голове
Аноним 01/02/19 Птн 22:00:03 1339653317
>>1339651
И кого же рекомендуют просвящённые?
Аноним 01/02/19 Птн 22:08:44 1339657318
>>1339653
Вся проблема С++ в том, что хорошей книги для начинающих просто нет. У Страуструпа тоже говно.
Лично я рекомендую читать Кернигана и Ричи, Дизайн и эволюцию, Мейерса, Саттера, компилировать это все с своей голове и таким образом становиться хорошим программистом. Но это я рекомндую, больше так никто не делал.
Аноним 01/02/19 Птн 22:09:44 1339658319
>>1339657
А может лучше не читать, а больше практики?
Аноним 01/02/19 Птн 22:10:42 1339659320
>>1339657
Дизаен и Эволюция заинтересовала, правда её чот в интернете нету, видать придётся ползти на Удельную или где там книжная ярмарка бывает.
Аноним 01/02/19 Птн 22:13:56 1339662321
>>1339659
Надо чередовать. Если будешь читать то, что сам не переживал, пропустишь мимо ушей. А если дохуя практики, то будешь изобретать хуевые велосипеды уровня 70-х годов.
Аноним 01/02/19 Птн 22:15:17 1339664322
>>1339659
В интернете есть, посмотри где-нибудь на торрентах, раз правообладатель везде анально огораживает все
Аноним 01/02/19 Птн 22:17:35 1339667323
>>1339657
По моему скромному мнению, надо изучать от С к С++ дабы хотя бы понять, зачем что-то было внедрено в него.

>>1339662
Это да, вот выше мне подсказали про шаблоны, до этого шугался, теперь написав много одинаковых классов с разными типами данных пришёл к ним.

>>1339664
На рутракере глядел, не нашёл, может плохо смотрел, ведь мне нужна Русская версия, а там есть ещё и на оригинале, видимо программист, не знающий англ языка это нонсенс, а ведь он меня так раздражает.
Аноним 01/02/19 Птн 22:33:47 1339688324
Аноним 01/02/19 Птн 22:36:58 1339694325
Аноним 01/02/19 Птн 23:17:24 1339719326
2222222.png (19Кб, 551x165)
551x165
Ебаная магия
Аноним 01/02/19 Птн 23:19:45 1339722327
>>1339719
Напомните, чем (в данном случае) отличаются auto и decltype(auto) ?
Аноним 01/02/19 Птн 23:20:41 1339724328
>>1339722
авто по правилам деклтайпа выводит
Аноним 01/02/19 Птн 23:22:15 1339726329
Screenshot5.png (20Кб, 640x214)
640x214
Аноним 01/02/19 Птн 23:38:18 1339731330
>>1339323
Потому что в зависимости от условия мне нужно чтобы выполнялся cout или что - то другое (в данном случае вывод в стрим), не ужели это не понятно из скрина, вот жеж пишу >>1339104 ? Вот как тут можно увидеть что я пытаюсь вывести то или иное в зависимости от условия ?

>Нихуя у тебя и не получается
>потому что обе ветви тернарного оператора должны иметь один и тот же тип. Или хотя бы быть приводимы друг к другу, если не ошибаюсь.
Во - первых получилось уже, во вторых, то о чем ты пишешь это следствие из того что перед оператором обычно становится return/переменная и тд куда он отсылает либо первое значение либо второе, то есть в первую очередь значения должны быть, ну а по типам там уже в завимиости от того куда отправляю, типы можно и свои какие угодно нарисовать.
Аноним 01/02/19 Птн 23:49:35 1339737331
>>1339731
Я канешно извеняюсь...
Но еб твою мать, если в зависимости от условия нужно что-то выполнять или не выполнять, то у меня для тебя хорошая новость:
В язык добавлена конструкция специально для таких случаев, она называется оператор if.
Аноним 01/02/19 Птн 23:54:40 1339743332
int yoba = 1;
yoba ? (cout << "peka", 0) : 0;

Господи, помилуй мя грешнаго
Аноним 01/02/19 Птн 23:56:07 1339745333
Сиплаплас не нужно нах
Аноним 01/02/19 Птн 23:58:39 1339749334
1271003239.png (112Кб, 736x736)
736x736
>>1339743
Запятую хоть перегрузил?
Аноним 02/02/19 Суб 00:12:46 1339753335
>>1339743
Ох уж эти копролюбители тернарных операторов.
Аноним 02/02/19 Суб 00:22:38 1339755336
>>1339731
>Вот как тут можно увидеть что я пытаюсь вывести то или иное в зависимости от условия ?

Потому что твой ебаный код - это в точности вот это:
if (flag>0) false;
else cout << "хуйня" << endl;
И значит это, что ты в зависимости от условия хочешь либо что-то вывести, либо ничего не выводить.
А cout << "", ВНЕЗАПНО, ничего не выведет. Охуеть, да?

>во вторых, то о чем ты пишешь это следствие из того что перед оператором обычно становится return/переменная и тд куда он отсылает либо первое значение либо второе, то есть в первую очередь значения должны быть, ну а по типам там уже в завимиости от того куда отправляю, типы можно и свои какие угодно нарисовать.
Блядь, ты прикалываешься?
Может, ты сначала почитаешь про тернарный оператор и больше не будешь писать в своем коде такую хуйню?
Оператору ?: вообще насрать, что перед ним ставится, хоть ничего ему не ставь. Ты в курсе вообще, что ты можешь написать true ? void : void ? Это оператор, блядь, у него аргументы должны быть приводимы, а не левая сторона выражения. Если тернарный оператор вернёт строку, а ты попытаешься присвоить ее переменной типа int, ты получишь совсем другую ошибку.

Почему ты, блядь, не постишь со словами "никампилица" код типа 1 + vector<int>(10)? Или это почему-то для тебя очевидно?
Аноним 02/02/19 Суб 00:26:55 1339756337
>>1339688
>>1339643
>>1339657
> Страуструп
Как же бесит его стиль изложения, я охуенный, я крутой, я изобрел то, придумал се, а еще я философ, проводил всем вялым по губам в Кембридже и т.д.
Мерзкий уебок с комплексом неполноценности. Уебал бы мразь.

Аноним 02/02/19 Суб 00:27:43 1339757338
>>1339731
>>1339755
>>1339104
А если уж говорить касательно того, что ты хочешь в зависимости от значения флага выводить либо в консоль, либо в файл, то почему ты ставишь заглушку в виде false?
И если бы ты, опять же, задумался, то почитал бы доки и сделал бы так:
(flag > 0 ? fout : cout) << "текст";
Но ведь это же не говнокод, правда?нет, это тоже говнокод
Аноним 02/02/19 Суб 00:56:03 1339762339
Аноним 02/02/19 Суб 01:02:43 1339764340
Аноним 02/02/19 Суб 01:47:24 1339769341
>>1339737
Частным случаем описаниея которой является тренарный оператор.
>>1339753
Ох уж эти любители писать if ()
{}
else if ()
{}
else {} вместо ??::
>>1339755
Я прочитал несколько предложений и мне очень не понравилось, извини, но мне не интересна беседа с тобой о чем - либо.
Аноним 02/02/19 Суб 01:54:57 1339771342
>>1339588
> if(...)
> {
> выражение
> }
> ...
> for(...)
> {
> выражение
> }

Ору.
Аноним 02/02/19 Суб 02:27:55 1339779343
>>1339771
Че, к кодстайлу хочешь приебаться? А я может еще и табами выравниваю, и хуле ты мне сделаешь?
Аноним 02/02/19 Суб 02:28:57 1339781344
Ребята а может кто-то начинающему на простых словах объяснить что такое указатели * которые работают с оперативной памятью и чето то оттуда берут? не вкурил до конца в чем их бенефит
Аноним 02/02/19 Суб 02:37:51 1339783345
>>1339781
>не вкурил до конца в чем их бенефит
уебвывай тогда с доски
Аноним 02/02/19 Суб 02:38:56 1339784346
Аноним 02/02/19 Суб 02:40:58 1339785347
>>1339784
не обязательно писать сюда куда именно ты пошел, главное что с доски съебал.
Аноним 02/02/19 Суб 02:45:28 1339786348
>>1339785
Достойный ответ(стрелки)
Предлагаю закрыть еблище, червяк который почему-то возомнил себя человеком
Аноним 02/02/19 Суб 02:45:35 1339787349
Аноним 02/02/19 Суб 02:50:46 1339790350
>>1339783
>>1339784
>>1339785
>>1339786
>>1339787
Вот тебе ( >>1339781 ) пример работы с указателями, не блпгодари.
Автор | >>1339783 | >>1339785 |

>>1339787
Не знаю о чем ты, я аообще мимо на эту доску зашел так как писал про тринарный оператор и сейчас с нее съебу, ИМХО просто писать что ты нихуя не понял при этом не написать что именно и как пытался (что читал, примеры кода), объясните простыми словами про такую очевидно простуи и важную вешь как указатели все равно что заявить о своем умственном недуге, а посему самое эффективное разъяснение это послать нахуй.
Аноним 02/02/19 Суб 02:57:54 1339793351
Ну если для тебя "бенефит" сложно перевести как "профит", то уточняй. А по сабжу, я не понял в чем их преимущество над обычными переменными т.к больно сложная концепция
типа чем int *a лучше int a
поэтому попросил довольно просто визуализировать ситуацию, где будет применяться указатель, а не обычная хуйня и все, а ты начал вести себя как ебаное животное, и ждать в ответ на свой выпад что-то иное
Аноним 02/02/19 Суб 03:07:09 1339796352
>>1339793
Без указателей ты даже массив a не сделаешь. Указатели первичны, массивы вторичны. a это на самом деле *(a + i). Более того, ты можешь написать i[a], потому что это то же самое. Улавливаешь?
Аноним 02/02/19 Суб 03:08:48 1339797353
>>1339395
>std::deque реализация двусторонней очереди, двусторонняя очередь может быть на списке двойном сделана, там за о(н) доступ
От deque::operator[] требуется не более чем амортизированная константа. Хватит бредить.
Аноним 02/02/19 Суб 03:12:28 1339799354
>>1339793
>Ну если для тебя "бенефит" сложно перевести как "профит",
Борется с соломенным чучелом, молодца.
> Пытался разобраться
> я не понял в чем их преимущество над обычными переменными
> т.к больно сложная концепция
> ты ебаное животное
Ясно. Ну иди любой мало мальский полезный АТД организуй без них, ах да, helloworld.cpp же этого не требует, уточняй в следущий раз.
Аноним 02/02/19 Суб 03:16:41 1339801355
>>1339796
Да, щас более менее начинаю , но надо почитать больше про это все
но пока не представляю где я *a напишу вместо обычной
>>1339799
> АТД
я уточнял, я писал что начинающий, мне нахуй пока не уперлось их применение там, чего я не знаю
а проходил я только функции и массивы
Аноним 02/02/19 Суб 03:24:49 1339802356
>>1339801
Ладно, я съебываю уже отседа. Если бы ты сразу написал так >>1339793 я бы вообще ничего не написал, как - то так.

Аноним 02/02/19 Суб 03:35:30 1339804357
>>1339801
Да везде на самом деле. Есть у тебя контейнер, инвертарь в игре, например, это будет массив указателей на предметы. Ты, не зная, указатели сделаешь массив индексов в некотором глобальном массиве предметов и оно будет работать, но это хуже. То есть

struct Predmet{
void do();
};

далее

struct Chuvak {
vector<Predmet звездочка> karman;
};

либо

vector<Predmet> premdety;

struct Chuvak {
vector<int> karman;
};

В первом случае у тебя будет

Chuvak chuvak;
//... заполняем карманы
(*chuvak.karman[0]).do();

вто втором

predmety[chuvak.karman[0]].do()

Естественно первый способ лучше, потому что ты не привязываешься к какому-то массиву, а указываешь непосредственно на предмет. Но обойтись без указателей можно, поэтому новички и не понимаю, о боже, оперативная память, АДРЕСА какие-то, как страшно жить, лучше по-старинке буду индексы массивов везде передавать, и долго отказываются понять, что это такое.
Аноним 02/02/19 Суб 03:46:59 1339805358
>>1339804
>(*chuvak.karman[0]).do();
Без понтов уже жить не можешь?
chuvak.karman[0]->do();
Аноним 02/02/19 Суб 03:47:32 1339806359
>>1339805
Не мешай педагогическому процессу, пидор.
Аноним 02/02/19 Суб 05:07:07 1339817360
>>1339797
Охуенно ты на double-ended list амортизированную константу сделаешь, да.
Аноним 02/02/19 Суб 05:09:10 1339818361
Аноним 02/02/19 Суб 05:23:05 1339819362
>>1339817
Всем насрать, как ты это сделаешь.
Аноним 02/02/19 Суб 05:26:49 1339820363
>>1339819
Большая разница, если как в stl то амортизированная константа, а если на листе, то О(Н), и пиздец нелогично то, что в очереди(!) сука рандом аксес за О(1). Можно было сделать другую структуру типа список массивов, чем по сути и является std::deque и никаких вопросов не было бы. А так бредово, мы от самой структуры спускаемся к реализации, это как в мапе можно было бы цвет ноды возвращать, эта хуеты не должно быть снаружи, а она как фича выставляется.
Аноним 02/02/19 Суб 05:30:07 1339823364
>>1339820
>как в мапе можно было бы цвет ноды возвращать
Тип мапа это красно-чёрное дерево, что сложного добавить метод , которая бы возвращала цвет ноды, но нахуя? Снаружи это словарь, как и std::deque снаружи двусторонняя очередь, нахуя оставлять рандом аксес операторы, их вообще там быть не должно.
Аноним 02/02/19 Суб 05:31:14 1339824365
Аноним 02/02/19 Суб 05:31:42 1339826366
>>1339823
Ну сука, давайте к стеку operator[] тоже приделаем тогда, а хули. Короче бред пиздец.
Аноним 02/02/19 Суб 05:33:09 1339827367
>>1339824
Хуетки. И приму, нехуй мне тут напоминать, ясно тебе? Если я шизик это не значит, что я неправ и у меня нет чувства вкуса, чувства прекрасного. А приделать operator[] к очереди полнейший пиздец.
Аноним 02/02/19 Суб 05:34:44 1339828368
>>1339827
Довен, двусторонняя очередь уже есть — это std::list
Там никакого operator[]
Аноним 02/02/19 Суб 05:35:34 1339829369
>>1339828
>двусторонняя очередь уже есть — это std::list
Это двусторонний список, блядь. По твоему мне зря в вузе структурами данных мозг ебли?
Аноним 02/02/19 Суб 05:36:48 1339830370
>>1339828
И блядь как по твоему deque расшифровывается? Сука тупой.
double-ended queue
Аноним 02/02/19 Суб 05:37:14 1339831371
Аноним 02/02/19 Суб 05:37:32 1339832372
>>1339830
Ну и где там запрет иметь random access?
Аноним 02/02/19 Суб 05:39:05 1339833373
>>1339832
Нигде, на листе тоже никакого запрета нет, ебашь пожалуйста за О(Н) перебирай, если ебанат такой. Это сука очередь, её смысл в том, что ты не можешь в середину залезть и вытащить что-то оттуда или положить что-то туда, она не предназначена для этого, блядь.
Аноним 02/02/19 Суб 05:40:31 1339834374
>>1339832
В стеке и queue тоже нет запрета, хуле бы не влепить туда operator[], ну а чё, нормальная же тема.
Аноним 02/02/19 Суб 05:41:34 1339835375
>>1339829
>Это двусторонний список, блядь. По твоему мне зря в вузе структурами данных мозг ебли?
Структурами может не зря ебли, но зря не ебли логикой, поэтому ты вышел дебилом.

Двусторонняя очередь это абстрактное понятие в виде требования к набору операций (заталкивание и доставание элементов спереди и сзади), и это в std::list есть.

std::deque создавали в том числе ради рандом эксеса.
Аноним 02/02/19 Суб 05:42:59 1339836376
>>1339834
Это не контейнеры, а врапперы - ты можешь захотеть врапнуть лист, например, поэтому у них интерфейс ограничен.
Дек же это контейнер, то, что он расшифровывается как-то похуй
Аноним 02/02/19 Суб 05:43:08 1339837377
>>1339835
Блядь, лист это лист, дека это дека, это разные вещи, в лист ты можешь вставлять в середину, например, дека не для этого.
Аноним 02/02/19 Суб 05:44:36 1339838378
>>1339836
И что? По умолчанию там дека как контейнер используется, если лист поставил в темплейт параметре сам еблан и тд Оп
Аноним 02/02/19 Суб 05:44:52 1339839379
>>1339837
Я тебя удивлю, но в стеке процессора есть рандом акцесс, например
Аноним 02/02/19 Суб 05:45:21 1339840380
>>1339838
Ох уж эти аргументы ad eblanum.
Аноним 02/02/19 Суб 05:46:08 1339842381
>>1339836
Опять же это только с точки зрения цпп они врапперы, а так та же дека враппер для листа или массива.
>>1339839
Ну так а нахуй он там, это ничего мне не доказывает, стек это стек, в нём не должно быть рандом аксес или это уже не стек, а мутант ебучий какой-то.
Аноним 02/02/19 Суб 05:48:12 1339843382
>>1339829
>По твоему мне зря в вузе структурами данных мозг ебли?
Кароче, единственная твоя претензия что в C++ под названием deque обозначается не то, что было в методичке Урюпинского Заборостроительного. Утёнок as is.
Аноним 02/02/19 Суб 05:49:21 1339844383
>>1339842
С каких это пор интерфейс сущности определяется по тому, что она делать НЕ должна, а не потому, что она делать должна? Есть push и pop - это стек. То, что у стека есть дополнительные функции, не стеком его не делает.
Аноним 02/02/19 Суб 05:50:03 1339845384
>>1339840
Ну так а нахуй тебе явно указывать лист, а потом рассчитывать, что рандом аксес не за О(н) отрабатывать будет. Суть-то в том, что в queue нет никакого рандом аксеса, а в двусторонней с какого-то хуя есть. Пиздец некрасиво, я говорю, ну нужна вам структура с таким функционалом, ну запилите вы какой-нибудь std::list_array или типа того и хуй с вами. Но нет, запилить очередь-не очередь, ибо нам поебать.
Аноним 02/02/19 Суб 05:50:24 1339846385
>>1339842
так та же дека враппер для листа или массива.
deque это полноценный контейнер
Аноним 02/02/19 Суб 05:52:27 1339847386
>>1339843
Моя претензия в том, что это бред, если вы называете что-то очередью, то пусть, пожалуйста, это что-то будет вести себя как очередь, пусть, пожалуйста, у неё не будет методов, которые превращают это во что-то не то, пользуясь особенностью внутренней реализации, не даёт функционала внутренней реализации вовне. Вполне адекватное ожидание, блядь.
Аноним 02/02/19 Суб 05:55:40 1339849387
>>1339847
>это что-то будет вести себя как очередь,
Он ведет себя как очередь, оба метода очереди (запихнуть в конец и вытащить с начала) предоставлены.
У тебя претензии не то что он ведет себя как очередь, а то, что он может вести себя как-то еще. А это хуйня, а не претензия, если бы это было бы проблемой, такой вещи, как наследование интерфейсов не существовало бы. А оно существует в любом языке.
Аноним 02/02/19 Суб 05:55:44 1339850388
>>1339844
Зачем из стека делать что-то большее, чем стек? Блядь, я вижу стек, я читаю стек, я ожидаю, что эта хуета поведёт себя так и только так, как может вести себя стек, мне поебать, что он внутри, а он снаружи мне с какого-то хуя предлагает в косынку сыграть и пиццу заказать мне от него только пуш и поп блядь надо и размер. Понимаешь меня? МЕня
Аноним 02/02/19 Суб 05:56:39 1339851389
>>1339849
Меня напрягает, когда вещи не то(а НЕ ТОЛЬКО ТО это тоже не то) чем кажутся. Такой хуйни не должно быть, сука.
Аноним 02/02/19 Суб 05:59:35 1339852390
>>1339851
То есть ты хочешь нахуй отказаться от полиморфизма. Ну заебись, че.
Аноним 02/02/19 Суб 06:01:35 1339853391
>>1339852
Нет, если ты хочешь сделать деку-со-спецэффектами, то так и скажи класс дека-со-спецэффектами : дека или что там, а это просто хуета, когда детали реализации выносятся наверх и подаётся что это типафича, а на деле хуйня.
Аноним 02/02/19 Суб 06:05:41 1339856392
>>1339853
И именно реализации, только в такой реализации от operator[] на деке есть какой-то смысл.
Аноним 02/02/19 Суб 06:09:41 1339859393
>>1339853
С такой логикой надо из всех контейнеров половину методов выкинуть
Аноним 02/02/19 Суб 06:10:27 1339862394
>>1339853
То есть я понимаю, что такой проёб не просто так, наверняка это какой-то дикий костыль, без которого было бы геморно и похуй, надо так надо, но всё началось с того, что челу норм использовать деку как альтернативу массиву, хотя рандом аксес там торчащий из реализации костыль и ну хуй знает, короче. Так дела не делаются.
>>1339859
Неправда, первый раз столкнулся, как правило в стл всё пиздец как чётенько и по делу.
Аноним 02/02/19 Суб 06:11:37 1339863395
>>1339853
Отсутствие оператора [] у списка это тоже детали реализации, вынесенные наверх.
Аноним 02/02/19 Суб 06:14:42 1339864396
>>1339863
Какой-то хуёвый реверс, что значит отсутствие, вынесенное наверх, когда блядь вынести можно только присутствие? Ну да, отсутствие в массиве интов операционной системы это детали реализации, вынесенные наверх. Не неси хуйни.
Аноним 02/02/19 Суб 06:14:47 1339865397
>>1339862
Да никто не воспринимает дек как дабл эндед кью. Точно так же, как никто не воспринимает вектор как вектор из линейной алгебры. Или например std::set это всегда дерево, а никакой не хэш.
Это философия С++ тащемта, абстракции не должны стоить производительности.
Аноним 02/02/19 Суб 06:21:58 1339867398
>>1339865
Я воспринимаю, как бы смысл от них, если они не то, чем они являются, нахуй нужен такой стл где стринг это не строка, например.
>это всегда дерево, а никакой не хэш.
Разница между упорядоченный и неупорядоченный существенна, да и сет/мап это множество/словарь, а не дерево, вот как раз то, что оно дерево это уже реализация, которую нахуй не нужно нам знать и мы её, в отличие от хуйни с декой, и не знаем.
> абстракции не должны стоить производительности
Ну вот может быть, что operator[] там костыль, на котором половина стл держится, уверен, что этому есть причина, иначе бы там не было его.
Аноним 02/02/19 Суб 06:23:27 1339868399
>>1339867
>Я воспринимаю
Ну типа что вектор в линейной алгебре, элемент пространства, по сути упорядоченный гомогенный набор элементов, чем он и является в крестах.
Аноним 02/02/19 Суб 06:26:16 1339869400
>>1339867
>Я воспринимаю, как бы смысл от них, если они не то, чем они являются, нахуй нужен такой стл где стринг это не строка, например.
Тем, не менее, у std::string есть такие методы, как reserve и capacity. Низкоуровневые детали.
>>1339868
Вектор в линейной алгебре имеет кучу свойств типа существования vector operator+(vector, vector).
А вектор в С++ это динамический массив
Аноним 02/02/19 Суб 06:30:58 1339870401
>>1339869
Суть передана, всё же понятие вектор есть и в программировании, где оно означает именно крестовый вектор. Вики не даст соврать
>Вектор — (последовательность, кортеж) однородных элементов. Это наиболее общее определение в том смысле, что может быть не задано обычных векторных операций вообще, их может быть меньше, или они могут не удовлетворять обычным аксиомам линейного пространства. Именно в таком виде вектор понимается в программировании, где, как правило, обозначается именем-идентификатором с квадратными скобками (например, object[]).
>>1339869
Для стринг это нормально, стринг по сути vector<char> с оговорками.
Аноним 02/02/19 Суб 06:33:33 1339871402
image.png (22Кб, 353x434)
353x434
Наверное все спят, но, все же, может мне кто - нибудь объяснить.
Какого хуя First example выводит все слова чторазделены пробелом, то есть проходится по всему файлу а Second example всегда хуячит одно и тоже слово, то есть функция fscanf все время с одной и той же позиции ищет вхождение, но ведь в First example тоже также тогда должно быть, какого хуя там ей понятно что предидущее вхождение нужно скипать и искать следующее пока eof не настанет. Ну что за ебатория - то...
Аноним 02/02/19 Суб 06:33:41 1339872403
>>1339870
>Для стринг это нормально, стринг по сути vector<char> с оговорками.
И для дека нормально
Аноним 02/02/19 Суб 06:37:25 1339873404
>>1339872
В случае с декой, которая чисто программистское понятие, такая хуйня не прокатит. Да пофиг, то, что это костыль это ладно, я не против, а вот то, что этот костыль используется как фича, вот это тупо. Будешь такой код читать, где чел юзает деки вместо массивов и хуеть. И вроде как бы похуй, но вроде как бы и топор-отвертка получается, дрова норм рубит, но сука постоянно этот ебучий кусок отвёртки на обухе в глаза бросается, нахуя он, а потом видишь, как кто-то этим куском шурупы крутит за топор и вообще охуеваешь.
Аноним 02/02/19 Суб 06:41:39 1339875405
>>1339871
Возвращаемое значение fscanf проверяй, довун.
Аноним 02/02/19 Суб 06:43:08 1339877406
>>1339873
Впрочем тот чел с таблетками прав, меня опять на ровном месте понесло с нихуя скорее всего, какая-то мелочь кажется пиздец какой важной, завтра прочитаю и стыдно будет, опять загнался по хуйне.
Аноним 02/02/19 Суб 06:43:49 1339878407
>>1339875
При чем тут возращаемое значение (количество преобразований) ? В первом случае fscan помещает в pBuf слово за слово постепенно с каждой итерацией новое и так до конца файла. Во - втором случае она помещает в pBuf каждый раз первое вхождение (считай первое слово) и все, ни идет дальше. Разъесни почему ?
Аноним 02/02/19 Суб 06:45:27 1339879408
>>1339878
>Во - втором случае она помещает в pBuf каждый раз первое вхождение
Нет, только в первый раз.
Потом просто значение не меняется.
> Разъесни почему ?
Не может идти дальше. Тупик.
Аноним 02/02/19 Суб 06:51:26 1339881409
image.png (1Кб, 119x97)
119x97
>>1339879
Ну да, нормально значение только в первый раз заносит, в остальные вообще пусто. Так какого хуя тупик - то ? Я же просто комбинирую и в отличие от первого случая указываю какие символы должны быть в слове, то есть что не выбрасывать, до какого символа читать грубо говоря.
Аноним 02/02/19 Суб 06:52:42 1339883410
>>1339881
>Так какого хуя тупик - то ?
Ты сам создал тупик в виде [A-z].
Аноним 02/02/19 Суб 06:56:50 1339884411
>>1339883
почему тогда в первом случае "%s" не тупик ? в " " указывает то что ищем/получаем так ? "%s" значит до пробела/skip whitespace и чем это принципиально отличается от "A-z" что трактуется как все пока не встретится что - то что не !"A-z" а в комбинации с %s это что - то только до пробела.
Аноним 02/02/19 Суб 07:03:45 1339885412
Аноним 02/02/19 Суб 07:12:49 1339889413
>>1339885
Ну и хули теперь делать ?
Аноним 02/02/19 Суб 07:14:11 1339891414
>>1339889
Скипай символ, если fscanf фейлится.
Аноним 02/02/19 Суб 07:17:35 1339892415
>>1339891
Как, я уже нихуя логику это срани не понимаю...
Аноним 02/02/19 Суб 07:20:02 1339894416
>>1339891
Пэкспереминтировал, в первый раз эта хуита возвращает 1 (типа че - то нашла) дальше естественно только 0, как тут заставить ее начать искать дальше ...
Аноним 02/02/19 Суб 07:23:23 1339895417
>>1339894
Кароче, бери std::string, читай туда всю строку через std::getline и разбивай по регулярке (std::sregex_iterator)
Аноним 02/02/19 Суб 07:25:26 1339896418
>>1339895
Блядь я использования <regex> и пытаюсь избежать, хуя ты кэп.
Аноним 02/02/19 Суб 07:26:59 1339897419
>>1339896
Хуя ты пытаешься его избежать?
Аноним 02/02/19 Суб 07:37:06 1339900420
>>1339897
Потому что я более - менее знаком с RegExp и для меня какой - то бред использовать его всего то для выделения ебаных слов из файла.
Аноним 02/02/19 Суб 07:38:45 1339901421
>>1339900
>знаком, но использовать не желаю
Пиздец ты дурак, ну так ебись тогда со сканфом, лол.
Аноним 02/02/19 Суб 07:41:46 1339903422
>>1339900
Алсо ты можешь как мудила посимвольно считывать и проверять, что твои ебучие символы попадают в интервал нужный.
Аноним 02/02/19 Суб 07:48:02 1339907423
>>1339903
>>1339901
Бля, анон, я сам сейчас проиграл на всю комнату, мне самому буквально 20 сек назад пришло прогонять буфер через sscanf(pBuf, "%[a-zA-Z]",pBuf); ,ебать надо спать идти уже точно. Спасибо тебе все равно, без тебя бы таки забил хуй и пошел бы доставать <regex>
Аноним 02/02/19 Суб 07:49:48 1339908424
>>1339907
Да не за что. Зря ты регексов так чураешься, не понимаю такого. Но пофиг, добра.
Аноним 02/02/19 Суб 07:51:20 1339910425
>>1339908
Согласен, взаимно <3
Аноним 02/02/19 Суб 09:02:44 1339930426
image.png (39Кб, 512x512)
512x512
Таки на этом мучения не закончились, чтоб оно неладно...
sscanf(from, "%[a-zA-z]", to) Выводит любое eng слово в любом регистре, в т.ч смешанном, заебок, но, нужно добавить ссаную кирилицу. Пробовал и %[а-яА-я] и %[a-zA-Z\u0401\u0451\u0410-\u042f\u0430-\u044f] в последнем случае выдает все eng-слова, но ебаный русский только в all-capitalize виде "ПРИВЕТ" выведет полностью, а "Привет" только "П", "привет" вообще не выведет, сцука, причем так будет если даже прописать только %[а-я] или %[А-я].

А потом они спрашивают почему я не люблю работать с каким - либо текстом, блядь да потому что это всегда анальная эквилибристика еще и ситуативная, блядь, а не программирование.
Аноним 02/02/19 Суб 09:05:09 1339932427
>>1339930
По факту блядь ну все готово 3k+ строк кода, хуева туча всего, все отлажено и причесано и я сижу и ебусь с ебаным текстом дольше чем не самые простые задачи решать времени. Нинавижу это говно.
Аноним 02/02/19 Суб 09:56:16 1339948428
Поясните за CMake. Чё эта?
Аноним 02/02/19 Суб 11:13:48 1339993429
>>1339932
>>1339930
Покапавшись стало ясно что мозги ебет, кто бы мог подумать, кодровка. Энглишь поэтому норм проходит, а вот русланд хоть и нормально выделяется до пробела, дальше - то я описываю условие через коды в unicode, а текст насколько я понимаю не внем хранится, хотя я пробовал кормить все кодировки. Из больших символов например не распознаются Щ и Ы еще. Ну или я хз....
Аноним 02/02/19 Суб 11:37:31 1340001430
Аноним 02/02/19 Суб 13:29:31 1340040431
Аноним 02/02/19 Суб 17:40:11 1340214432
>>1339779
>я может еще и табами выравниваю, и хуле ты мне сделаешь?
Но ведь по-хорошему так и надо.
Аноним 02/02/19 Суб 18:07:03 1340230433
>>1339779
Школьник использует дефолтные настройки IDE - вот это да
Аноним 02/02/19 Суб 18:12:11 1340232434
>>1340214
>Но ведь по-хорошему так и надо.

Сейчас набегут питоношкольники, которым ANSI не указ.
Впрочем, даже у K&R открывающая скобка на одной строке с декларацией.
Аноним 02/02/19 Суб 18:13:45 1340233435
как сделать свою супер игру на c++ ну скажите как пожалуйста)) где почитать
Аноним 02/02/19 Суб 18:14:42 1340235436
>>1340233
в треде жабопидоров
Аноним 02/02/19 Суб 18:18:44 1340237437
Аноним 02/02/19 Суб 18:22:17 1340238438
>>1340233
Два пути — всё с нуля или взять UE4 и сразу начать делать.
Аноним 02/02/19 Суб 18:24:22 1340240439
Аноним 02/02/19 Суб 18:44:17 1340247440
>>1340240
И через десять лет покажешь альфу своей игры.
Учи геометрию, кинематическую физику, OpenGL и GLSL.
И моделирование, без него никак.
И вообще иди в /gd
Аноним 02/02/19 Суб 19:32:20 1340259441
>>1340233
Качаешь опенсорсный движок, компилируешь...
Аноним 02/02/19 Суб 20:32:30 1340293442
Что можно прикольного поделать с windows api ?
Аноним 02/02/19 Суб 20:40:32 1340301443
[code]var c++ = Universe.getShit();[/code]
Аноним 02/02/19 Суб 20:42:05 1340304444
>>1340247
>И моделирование, без него никак.
А вот например в пубг все модельки позаимствовали из опен сорса.
Аноним 02/02/19 Суб 20:42:41 1340306445
>>1340293
Не знаю, с помощью хука внедрись в калькулятор, или сообщения элементам окон попосылай
Аноним 02/02/19 Суб 21:11:56 1340332446
Аноним 03/02/19 Вск 00:48:56 1340486447
изображение.png (152Кб, 982x541)
982x541
Чому здесь к плюсам ассоциативность применяется, а к вызовам функций нет?
Аноним 03/02/19 Вск 01:03:29 1340495448
>>1340486
Ассоциативность это a+b=b+a, при чем тут вызовы функций вообще
Аноним 03/02/19 Вск 01:11:55 1340498449
изображение.png (40Кб, 716x790)
716x790
>>1340495
Нет, это в математике a+b=b+a.
В c++ это другое, см. последнюю колонку в таблице.
Аноним 03/02/19 Вск 01:57:14 1340521450
>>1340498
Ээ, в твоей табличке 4 строка сверху - function call
Аноним 03/02/19 Вск 02:01:59 1340523451
>>1340521
Ну так я и не могу понять.
И плюса и у function call установлена left-to-right ассоциативность.
Почему она игнорится у function call?
Аноним 03/02/19 Вск 02:03:07 1340525452
>>1340495
Это коммутативность
(a + b) + c = a + b + c Левая ассоциативность
a + (b + c) = a + b + c Права ассоциативность
Аноним 03/02/19 Вск 02:13:19 1340527453
Аноним 03/02/19 Вск 02:20:45 1340530454
изображение.png (152Кб, 982x541)
982x541
Ну давай тогда так.
Почему в твоем примере применяется ассоциативность к (), а на пикрил не применяется, а уже отсылают к порядку вычислений, который не определен?
Аноним 03/02/19 Вск 02:22:51 1340531455
>>1340530
А где тут ассоциативность, если у тебя нет двух operator() подряд?
Тут важен только приоритет операций, а у вызова функции он выше, чем у умноежния и сложения
Аноним 03/02/19 Вск 02:33:13 1340534456
>>1340531
>нет двух operator() подряд?
Нигде не видел такого определения ассоциативности, чтобы требовались подряд идущие операторы.
Везде говорится о том, что ассоциативность разруливает ситуацию, когда встречаются операторы с одинаковым приоритетом.
Аноним 03/02/19 Вск 02:39:11 1340536457
>>1340534
Окей, но в твоем примере и этого нет. Там из списка a++ a-- type() type{} a() a[] . -> только a() и есть.
Аноним 03/02/19 Вск 02:41:50 1340537458
>>1340237
С того, что челик пишет четыре строчки вместо одной.
Аноним 03/02/19 Вск 02:46:16 1340539459
>>1340537
Одну профессионалы не пишут. Надо три:
if (yoba) {
...
}

Две - сраный лисп, одна - студент с laba.cpp
Четыре - чел пришел с паскаля какого-нибудь
Аноним 03/02/19 Вск 02:48:00 1340540460
изображение.png (12Кб, 776x121)
776x121
Аноним 03/02/19 Вск 02:50:07 1340542461
>>1340539
Не знаю, мне лень скобки ставить и лишний раз нажимать Enter, так что я всегда пишу просто

if(yoba) printf("Eto ty? \n");
Аноним 03/02/19 Вск 02:52:13 1340544462
>>1340540
Короче. Тебе делать больше нехуй? Есть простое правило - сомневаешься, поставь скобки. Вот и все. Страдаешь херней какой-то. Лучше программировать это тебе не поможет.
Аноним 03/02/19 Вск 02:53:01 1340546463
>>1340542
Как и положено студенту с laba.cpp.
Еще и печатаешь небось подглядывая символов 100 в минуту.
Аноним 03/02/19 Вск 02:54:06 1340547464
>>1340544
Чем меньше скобок, тем лучше. Иначе получится что-то вроде ((((((((()))))))))).
Аноним 03/02/19 Вск 02:56:04 1340549465
Аноним 03/02/19 Вск 02:56:15 1340550466
>>1340546
Гораздо меньше. Лучше подумать, а потом сделать. Особенно, если речь о C++. А ещё я не пользуюсь IDE и компилирую через консоль.
Аноним 03/02/19 Вск 02:57:07 1340551467
>>1340544
Лол, у меня такое ощущение, что в том примере никак невозможно расставить скобки так, чтобы произвольно задать порядок вызова функций. Как скобки не ставь, будет либо тож самое, либо нарушится порядок сложения и умножения.
Только расчленять на отдельные выражения.
Аноним 03/02/19 Вск 03:11:13 1340560468
>>1340551
Непроизвольный порядок вызова функций выглядит так: f(g(x)). yoba()() частный случай этого. Если результат одной функции не зависит от результата другой, они могут вызываться как угодно. Даже в случае
a(t)+b(t)c(t) если ты думаешь, что b(t) вызовется первым из-за приоритета, это не так. Приоритет касается только парсинга в AST, a(t)+b(t)c(t) будет распарсено как
a(t)+(b(t)@c(t)), то есть будет нода +, у нее две ноды, call с поднодами a и t, и умножить с поднодами b(t) и c(t). А порядок вызова это уже на этапе компиляции, и тут компилятор может запихнуть как ему удобно
Аноним 03/02/19 Вск 10:33:17 1340645469
>>1339771
У меня для тебя.

ЧИТАЕМОСТЬ, ЯСНОСТЬ КОДА

Не удивляйся, если тебе ебало набьют за твою дикую любовь к микрокоду, который только тебе понятен.
Аноним 03/02/19 Вск 13:35:11 1340714470
>>1340645
>который только тебе понятен.
Во - первых в данном случае лишняя операция, а не только читаемость. Исходя из того что код в первую очередь должен работать и желательно быстро его как раз таки нужно делать наиболее читаемым не для дауна человека, а для машины. В этом и состоит смысл программирования, как можно точнее и короче объяснить ЭВМ чем ей вообще нахуй заняться. Если человек не может прочитать это, значит мы находимся в доме-приюте для слабоумных, погромисты-дауны не агрессивны сами по себе, значит перед нами просто не погромист, а значит он вообще нихуя не понимает и порду набъет в люьом случае, или не набъет в любом случае. Банально, читаемость как раз - таки становится в разы лучше так как из 500 строк кода становится +-150, где быстрее можно ориентироваться ? Наблюдая всю картину уже куда легче сконцентрировать внимание где нужно и там не уже не составит труда разобраться.

mimo shel