М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 26 марта 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

640 Кб, 570x636

Оффициальный™ традиционный® C++ тред #22 23 Фев, 00:17 #663494 В конец треда | Веб

Спасибо за страдания мои:
За тысячестраничные талмуды,
За всратые олдфажные гуи
За NULL'ы и взаимные инклуды.

Спасибо, что мой препод-алконавт
Не знал, как подключать библиотеки.
За goto, за стандарта тухлый драфт,
За комитет, застрявший в прошлом веке.

За SFINAE спасибо, за segfault,
За void main и мудрости Алены,
За Герба, положившего свой болт
На крашащие студию шаблоны.

Спасибо за безграмотных юнцов,
Упорно в тред постящих говнолабы
В надежде, что анон в конце концов
Решит их или даст совет хотя бы.

За все я благодарен C++ -
Пока сквозь дебри путь держу отважно,
Я - программист, а не макак-индус.
А остальное, в сущности, неважно.

TL;DR Читаешь https://goo.gl/kVaela , делаешь примеры и суешь в http://ideone.com , ошибки копипастишь в гугл, непонятное ищешь в предыдущих тредах, спрашиваешь в этом треде, если не нашел. Если тебя послали на хуй или не ответили, то ты спросил платину, читай предыдущие треды внимательнее. И прочитай FAQ, расположенный ниже, в нем много полезного.

Унаследованная памятка:

Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Старший брат: >>629715 (OP)
Предыдущий: >>653023 (OP)

FAQ:

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
+ C++ действительно быстрый - по скорости они вместе с C с большим отрывом уделывают любой другой язык. Замедление относительно C находится в районе 0-20% а в ряде случаев C++ оказывается даже быстрее, причем проявляется только при использовании высокоуровневых конструкций (в крестах ты никогда не платишь за то, чего не используешь).
+ C++ один из наиболее выразительных и мощных языков, позволяющий использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи.
+ C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

Q: Но он же давно устарел!
A: Современный C++ весьма далек от языка, которым он был в 1998 году. В настоящее время кресты живее всех живых, их развитие движется семимильными шагами, а новые стандарты принимаются каждые три года, сохраняя при этом полную обратную совместимость с предыдущими. К сожалению, из-за обилия некачественной литературы по крестам, в которой игнорируются новые средства языка, бытует мнение о его "несовременности".

Q: Сейчас все пишут на %languagename, а кресты сосут у него!
A: Нужно понимать, что используемый язык должен соответствовать поставленной задаче. Никому не придет в голову писать на C++ скрипты или веб-фронтенд, но лишь немногие языки могут соперничать с ним по разнообразию решаемых задач.

Q: Окей, я решил вкатиться. Какие же книги мне читать?
A: Специально для тебя аноны /pr собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания, без хуев! Выбирай категорию и обмазывайся:

Для нюфань:
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования C++ (2014) - https://goo.gl/kVaela
Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2011) - https://goo.gl/nAFUXa

<устарело> Герберт Шилдт - C++. Базовый курс (2010) - https://goo.gl/qMLAFl
<устарело> Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004) - https://goo.gl/QvjR6x

Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
Скотт Мейерс - Эффективный и современный C++ (2015) - https://goo.gl/Im8VYQ
Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR

Проектирование:
Следует пролистать все перед переходом от лаб к написанию настоящего софта.
Последний пункт есть квинтэссенция ГИБКОСТИ, поэтому стоит прочитать его в любом случае, чтобы охуеть от того, как можно делать.
Ален Голуб - Веревка достаточной длины, чтобы выстрелить себе в ногу (2001) - https://goo.gl/fBmuxp
Джеймс Коплиен - Программирование на C++ (2005) - https://goo.gl/Y1WGdU
Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC

Ахтунг! Предыдущие два раздела дополняют, а не заменяют классические книги о лучших практиках разработки без привязки к конкретному языку (Макконнелл, Uncle Bob, GoF).

Наиболее детальные описания языка:
Бьерн Страуструп - Язык программирования C++ (на ангельском) (2013) - https://goo.gl/XkAiOX
<устарело> Бьерн Страуструп - Язык программирования C++ (2010) - https://goo.gl/iZBDiV
Стандарт C++14 (на ангельском) - https://github.com/cplusplus/draft/raw/master/papers/n4140.pdf
Последняя на данный момент версия черновика стандарта C++17 (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4567.pdf

Тонкости языка (для гурманов):
Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512

Также для легкого чтения подойдет книжка c историей создания C++:
Бьерн Страуструп - Дизайн и эволюция C++ (1994) - https://goo.gl/FqbPwo

Отдельные аспекты:
Читать по необходимости.
Энтони Уильямс - Параллельное программирование на C++ в действии (2012) - https://goo.gl/qJfBkD
Николаи Джоссатис - C++. Стандартная библиотека (2012) - https://goo.gl/PEyiMH
Дэвид Абрахамс, Алексей Гуртовой - Шаблонное метапрограммирование на C++ (2009) - https://goo.gl/isSt7j
Дэвид Вандевурд, Николаи Джоссатис - Шаблоны C++. Справочник разработчика (2003) - https://goo.gl/0M4NpG
Роберт Седжвик - Фундаментальные алгоритмы на C++ (2001) - https://goo.gl/4jwxSl (части 1-4), https://goo.gl/yDuQgG (часть 5)

Q: Хуле тут так сложно? Я открыл учебник, там какой-то ад!
A: Попробуй учебники, изданные после 2011 года. Фичи последних стандартов не только добавили выразительности, но и серьезно упростили жизнь разработчиков. Теперь программировать на C++ стало проще, чем когда-либо! Это не отменяет необходимости прочитать несколько серьезных книжек, чтобы написать на нем что-то годное. Тем не менее, да, C++ это по-настоящему сложный язык. Его никак не получится выучить за 21 день, ну вот совсем никак. Именно высокий порог вхождения повышает твою ценность как специалиста, не позволяя нанять вместо тебя индуса за еду. Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал. С большой вероятностью это приведет к разочарованию и потере времени. Гораздо лучше будет начать с другого языка и базовых вещей алгоритмы, архитектура пека, операционные системы, а уже потом вернуться к крестам.

Q: Ты охуел? В этих книгах по тысяче страниц! Хочу коротких статей.
A: Вот тебе блоги, факи, референсы и всякое такое:

Годный блог, в котором все просто и понятно тян не нужны кококок борщ - http://alenacpp.blogspot.ru
Блог с хорошо расписанными фичами новых стандартов - http://scrutator.me
Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/ или более подробно на ангельском http://en.cppreference.com/w
Блог Герба Саттера (на ангельском) - http://herbsutter.com
Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru
Блог еще одной тянки, много о Qt и оптимизации (на ангельском) - https://katecpp.wordpress.com
Куча других блогов (на ангельском) - https://www.quora.com/What-are-the-best-blogs-on-C++
Большой FAQ по C++ (на ангельском) - https://isocpp.org/wiki/faq

Q: Я не умею читать.
A: Можешь посмотреть какой-нибудь онлайн-курс:

Видеокурс на тытрубе - https://www.youtube.com/watch?v=atVgLRzl3rI
Еще один - https://youtube.com/watch?v=MOpF5lk3cLY
Среди прочих есть несколько курсов по C++ - https://stepic.org

И еще есть вот такое, если проникся:
Видео с CppCon (на ангельском) - https://youtube.com/user/CppCon/videos

Q: Я готов начать погроммировать! Куда мне писать код?
A: Под шиндошс удобно использовать IDE Microsoft™ Visual Studio®. Базовую версию (2015 Community) можно бесплатно скачать отсюда: https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия). Чтобы начать писать код, нужно запустить Visual Studio, кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл, в дальнейшем можно добавить другие файлы и хедеры. Чтобы скомпилировать и запустить проект, нужно нажать "Сборка - Собрать решение", а затем "Отладка - Запуск без отладки".

Под *nix, как правило, уже предустановлен компилятор gcc (если нет, используй sudo aptitude install gcc), так что достаточно сохранить хэллоуворлд, набранный в текстовом редакторе, и выполнить g++ helloworld.cpp и ./a.out. Но удобнее установить какую-нибудь IDE, например, весьма удобную CodeLite (sudo aptitude install codelite codelite-plugins), и работать в ней. Ее также можно использовать и в шиндошс, но тогда сперва придется установить MinGW (http://mingw.org).

Еще у нас есть IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует - https://www.jetbrains.com/clion

Можно также не устанавливать ничего, а запускать свои хэллоуворлды на http://ideone.com, выбрав в левом нижнем углу язык C++14.

Q: Не буду я все делать сам! Подавайте сюда софт, который все сделает за меня и подотрет мне жопу!
A: Без проблем:

Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio - http://cppcheck.sourceforge.net
Детектор утечек для Visual Studio. Предельно прост в прикручивании - https://vld.codeplex.com
Гугловские утилиты для контроля корректности кода - https://github.com/google/sanitizers
Гугловский фреймворк для автоматизации тестирования - https://code.google.com/p/googlemock

Q: Мне надоело писать велосипеды, какие у вас тут популярные либы?
Q: Нужно зделать %монструозная_хуйня_нейм, но я обосрался от одной мысли о написании ее с нуля, что же делать?
A: Гляди сюда:

boost

Бесспорно, это самый популярный набор C++-библиотек. Не будет лукавством сказать, что C++ во многом обязан популярностью именно ему. Воистину всеобъемлющий, boost способен удовлетворить твои самые скотские фантазии. В нем есть практически все - от математических функций до сетевых компонент, от инструментов тестирования до динамических типов. Функции для работы с твоей мамашей там тоже есть. Разумеется, все это швабодное и работает на любых платформах. И да, boost является своеобразным инкубатором хороших библиотек, поэтому наиболее удачные из них с большой вероятностью можно будет увидеть после принятия очередного стандарта уже как часть стандартной библиотеки.

Недостатком boost можно считать его размер - более 300 мегабайт. Большинство компонент boost не являются независимыми, и попытка использовать один единственный контейнер обернется фактическим подключением 2/3 всего присутствующего в комплекте. Таким образом, если boost не будет использоваться на полную, лучше юзать другие, более специализированные библиотеки.

http://www.boost.org - скачать бесплатно без смс.
http://www.solarix.ru/for_developers/cpp/boost/boost-library-list.shtml - краткие аннотации к большинству компонентов.
http://sindicollo.blogspot.ru/2008/09/boost.html - документация к некоторым компонентам.
http://www.boost.org/doc - документация (на ангельском).

Литература:
Ариндам Мукерджи - Learning Boost C++ Libraries (на ангельском) (2015) - https://goo.gl/b0gPN1

Qt

Существует швабодный кроссплатформенный фреймворк-надмножество C++ под названием Qt. Он содержит довольно большое количество компонент (для работы с сетью, базами данных, для юнит-тестирования и др.), но киллер-фичей и основным полем его применения являются возможности по разработке графических интерфейсов. Qt сам по себе, как расширение языка, предоставляет для этого более удобные средства, чем обычные библиотеки, а использование специализированных IDE наподобие Qt Creator позволяет в буквальном смысле собирать интерфейсы мышкой, а код писать только по существу.

Тем не менее, использование Qt нельзя однозначно назвать хорошей практикой. Во многом это уже не C++, а другой язык, со своими концепциями и паттернами. Qt-код требует дополнительного препроцессинга при помощи встроенных в Qt утилит (т.н. метаобъектная компиляция), поэтому не получится просто подключить Qt как обычную библиотеку и использовать свой любимый компилятор без дополнительного софта. Нельзя сказать, что это существенное препятствие, но есть мнение, что использование Qt нарушает дух C++, раздувает машинный код и порождает макак-любителей кодогенерации.

В настоящее время основные версии Qt - 4.8 и 5.х, полной обратной совместимости между ними нет как в пистоне, ага.

http://www.qt.io/ru - скачать бесплатно без смс.
http://doc.crossplatform.ru - документация к 4.8.
http://doc.qt.io - более полная документация к обеим версиям (на ангельском).

Литература:
Макс Шлее - Qt 5.3. Профессиональное программирование на C++ (2015) - https://goo.gl/aZ66gK
Макс Шлее - Qt 4.8. Профессиональное программирование на C++ (2012) - https://goo.gl/Slb1In (книга) + https://goo.gl/toUDWc (исходники примеров)
Марк Саммерфилд - Qt. Профессиональное программирование (только Qt 4.х) (2011) - https://goo.gl/qpkZFm (книга) + https://goo.gl/LIIECh (исходники примеров)

Другие хорошие библиотеки:

Несколько специализированных библиотек для часто встречающихся задач. Все маленькие, быстрые и простые в освоении:
libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году) - http://curl.haxx.se
SFML - работа с графикой и аудио - http://www.sfml-dev.org
FLTK - графические интерфейсы - http://fltk.org

И еще куча библиотек на любой вкус - http://en.cppreference.com/w/cpp/links/libs

Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке http://cppquiz.org/ , пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.

Ответы>>663591>>665528>>667388>>670120>>670522>>673225>>673290>>674885>>674984>>675535

23 Фев, 00:17 #2 #663495

Обновление шапки отложено из-за масштабности, но уже не за горами. Покайтесь, ибо грядет!

Предыдущие треды на архиваче:
#1 https://arhivach.org/thread/94971/
#2 https://arhivach.org/thread/94972/
#3 https://arhivach.org/thread/99414/
#4 https://arhivach.org/thread/100995/
#5 https://arhivach.org/thread/105148/
#6 https://arhivach.org/thread/109335/
#7 https://arhivach.org/thread/112797/
#8 https://arhivach.org/thread/114519/
#9 https://arhivach.org/thread/117109/
#10 https://arhivach.org/thread/120019/
#11 https://arhivach.org/thread/122683/
#12 https://arhivach.org/thread/124637/
#13 https://arhivach.org/thread/125532/
#14 https://arhivach.org/thread/127327/
#15 https://arhivach.org/thread/128133/
#16 https://arhivach.org/thread/134437/
#17 https://arhivach.org/thread/135285/
#18 https://arhivach.org/thread/139690/
#19 https://arhivach.org/thread/144812/
#20 https://arhivach.org/thread/147540/
#21 https://arhivach.org/thread/149983/

Старые ненумерованные треды:
https://arhivach.org/thread/45477/
https://arhivach.org/thread/48611/
https://arhivach.org/thread/60085/
https://arhivach.org/thread/66322/
https://arhivach.org/thread/69413/
https://arhivach.org/thread/73221/
https://arhivach.org/thread/77999/
https://arhivach.org/thread/79194/
https://arhivach.org/thread/82038/
https://goo.gl/vvs9GP
https://goo.gl/ZnBsYt

Отдельные Qt-треды:
https://arhivach.org/thread/15387/
https://arhivach.org/thread/65590/

23 Фев, 00:51 #3 #663513

Это ты снес старый перекат?

Ответы>>663765

sage 23 Фев, 02:29 #4 #663591

>>663494 (OP)
>эта смищная картинка с самой блевотной игрой в истории человечества
>этот унаследованный стиль обиженки
>этот костыль, собирающий статистику

Ответы>>663697>>663765

23 Фев, 11:26 #5 #663693

>>663487
Kak?

23 Фев, 11:28 #6 #663694

>>663487
И меня мотивируй

23 Фев, 11:34 #7 #663697

>>663591
>>эта смищная картинка с самой блевотной игрой в истории человечества
Поссал на уриниста.

23 Фев, 13:08 #8 #663765

>>663513
>>663591
Барин добрый: на конюшне порет только раз в месяц и не до кости :3 <3

23 Фев, 13:48 #9 #663792

Какой сейчас положняк по гую в Шиндовс 10?

Ответы>>663800

23 Фев, 14:13 #10 #663800

>>663792
Qt5. Остальное – никак.

Ответы>>663804

23 Фев, 14:19 #11 #663804

>>663800
Как он со студией дружит? Много говна за собой возит?

Ответы>>663820

23 Фев, 14:38 #12 #663815

Допустим есть такой код

void main(){}

Компилируем его, получаем исполняемый бинарный файл. Как из этого бинарного файла получить что-то типа такого
>"\x31\xf6\x4d\x31\xff\x66\x41\xbf\x1f\x16\x66\x41\x81\xef\x10\x11\x41\x57\x49\x89\xe7\x48\xbf\xd0\x9d\x96\x91\xd0\x8c\x97\xff\x48\xff\xc7\x48\xf7\xdf\xf7\xe6\x04\x3b\x57\x54\x5f\x41\xff\xd7"
?

Ответы>>663818>>663819>>663953

23 Фев, 14:43 #13 #663818

>>663815
скрипты линкера, objcopy

23 Фев, 14:43 #14 #663819

>>663815
Читаешь побайтово, к каждому байту (в HEX представлении) добавляешь "\x", имеется ввиду конкатенация строк.

23 Фев, 14:46 #15 #663820

>>663804
Установщик есть под штудию (для 15й только бета пока) Гигобайт с лишним.

23 Фев, 14:47 #16 #663824

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

Ответы>>663829

23 Фев, 14:53 #17 #663829

>>663824
Абсолютно согласен. Жаль для меня нет альтернативы.

Ответы>>663831

23 Фев, 14:56 #18 #663831

>>663829
Проект сконвертить в cmake и юзать
CLion, Eclipse, QtCreator
Это только на вскидку, что умеет работать с отладчиком студии

Ответы>>663833>>663835

23 Фев, 14:58 #19 #663833

>>663831
Я DirectX11 юзаю. В студии отладчик для графики есть. И на Unreal Engine пишу. Тоже без студии не обойтись.

23 Фев, 14:59 #20 #663835

>>663831
А не, проебался, clion не умеет.

23 Фев, 17:43 #21 #663953

>>663815
питхоном считываешь файл в байтстроку и ещё печатаешь

Ответы>>663954

23 Фев, 17:44 #22 #663954

>>663953
её

23 Фев, 18:37 #23 #664004

Так как себя мотивировать, плюсаны?

Ответы>>664033

300 Кб, 638x826

23 Фев, 19:13 #24 #664033

>>664004
Почитай.

Ответы>>664044

395 Кб, 500x463

23 Фев, 19:23 #25 #664044

>>664033
Дум же на си написали.
Вообще, мне все говорят что игры писать очень сложно и ничего у меня не получится.

Ответы>>664051>>664054>>664148

sage 23 Фев, 19:29 #26 #664051

>>664044
Ну и сиди дальше на шее у мамки, нытик.

23 Фев, 19:30 #27 #664054

>>664044
А ты уже пробовал что-то писать? Может недо движок писал? Или игровую логику?

Ответы>>664058

23 Фев, 19:31 #28 #664058

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

Ответы>>664063

23 Фев, 19:34 #29 #664063

>>664058
Ну тогда советую тебе взять юнити и учить C#. И работу проще найти. Будешь казуалки для мобилок делать. Я вот работу так и не нашел.

Ответы>>664068

23 Фев, 19:36 #30 #664068

>>664063
Но я хочу учить не мертворождённый язык. Тем более что я слышал что игры делают в 90% случаев на с++. Ладно, сегодня отдохну, а завтра за работу.

23 Фев, 19:50 #31 #664086

Изучаю книгу "Абстракция данных: стены и зеркала". Дюже удивился, что даже в методе вставки элемента в произвольную позицию списка там делаются проверки на неотрицательность позиции и проверка того, выделилась ли память для ноды, или у калькулятора ее не хватило, и в случае фатала выбрасываются исключения. Это все нужно в реальной работе, или такая дотошность избыточна?

Ответы>>664091>>664095>>664111

23 Фев, 19:52 #32 #664091

>>664086
Не увидел здесь дотошности.

23 Фев, 19:57 #33 #664095

>>664086
Если ты пишешь зачем-то велосипедный контейнер, то да, обязательно. Но обычно ты можешь использовать готовый список, например, std::list, в котором все проверки и исключения инкапсулированы.

Ответы>>664097>>664099

23 Фев, 19:58 #34 #664097

>>664095
>велосипедный контейнер
Я ебанутый и прочитал как волосатый мотороллер.

23 Фев, 20:01 #35 #664099

>>664095
Я просто решаю задачи с хакерранка, да и на собеседованиях все это нужно знать.

Ответы>>664129

23 Фев, 20:10 #36 #664111

>>664086
А еще интересно, почему они в этой книге в качестве позиции используют int и потом делают проверки вместо того, чтобы использовать unsigned?

Ответы>>664129>>664598>>664738

23 Фев, 20:22 #37 #664129

>>664111
Для простоты же. Обычно используется size_t и т.п.
>>664099
На собеседованиях тебя не заставят писать что-то с учетом всех деталей, как для продакшена. Могут попросить перечислить, какие ты бы сделал проверки, но не более того.

23 Фев, 20:29 #38 #664148

>>664044
Дорога произрастает под стопами идущего.

23 Фев, 20:38 #39 #664159

Смотрите, есть задача напечатать список в обратном порядке. Интуитивно я понял, как ее решать, но не могу объяснить себе, почему после вывода последнего элемента выводятся все остальные с конца.

Код: https://ideone.com/B4oVgn

При вызове функций в стек пушится кадр с переданными аргументами, адрес возврата, EBP и создаются локальные переменные. Интересен момент, когда произошел последний вызов функции. Мне кажется, надо было писать std::cout после скобок, тогда было бы проще разобраться. Вот произошел последний вызов с аргументом NULL, и мы оказались сразу за скобками, где std::cout. Печатаем и выполняем ret, из стека выталкивается кадр. Что теперь? Когда вышли из последнего вызова, то снова попадаем на строчку, где происходит печать и т.д.? Объясните мне.

Ответы>>664163>>664176>>664190

23 Фев, 20:39 #40 #664163

>>664159
Хотя нет, если писать std::cout за скобками, тогда будет обращение по нулевому указателю.

23 Фев, 20:44 #41 #664176

>>664159
Что за сайт?

Ответы>>664180

23 Фев, 20:46 #42 #664180

>>664176
https://www.hackerrank.com/challenges/print-the-elements-of-a-linked-list-in-reverse

23 Фев, 20:49 #43 #664190

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

Ответы>>664199

23 Фев, 20:53 #44 #664199

>>664190
Я догадался, но не могу это представить.

Ответы>>664220

23 Фев, 20:59 #45 #664220

>>664199
Ну представь себе вертикальную стопку книг. Ты накладываешь одну книгу на другую (адресс возврата, локальные переменные и т.д.). С каждым вызовом функции ты накладываешь новые книги. Когда ты выходишь из функции, то ты убираешь книги. На самом деле стек растет вниз, а данные мы никак не убираем, а просто перемещается на этот адрес возврата.

Ответы>>664234

23 Фев, 21:10 #46 #664234

>>664220
Стек я себе представляю, я не могу себе объяснить, почему печатается предыдущий элемент. Мы выходим из вызова предыдущей функции, и - что? Что напечается? Данные из элемента, у которого next передали в функцию, из которой только что вышли?

23 Фев, 21:11 #47 #664236

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

Ответы>>664254

23 Фев, 21:34 #48 #664254

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

Ответы>>664285

23 Фев, 21:50 #49 #664285

>>664254
Ну представь, что ты долго раскручиваешь в дизассемблере небольшую программу, которая непонятно как работает. И наконец у тебя складывается полный образ этой программы, ты представляешь все переходы и видишь весь алгоритм. Вот это и есть понимание, а не "карач там функция вызывает сама себя)))"

24 Фев, 00:30 #50 #664598

>>664111
Когда тебе нужно вычесть из unsigned, ты можешь получить отрицательное число. Страуструп и ко сами признались, что зря стали использовать size_t для контейнеров

Ответы>>664671

24 Фев, 01:00 #51 #664671

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

24 Фев, 02:02 #52 #664722

Какую либу посоветуете для многопоточности? Boost пойдет? Проблем с разными платформами не будет?

Ответы>>664725

24 Фев, 02:15 #53 #664725

>>664722
>Какую либу посоветуете для многопоточности?
Ебу дал?

Ответы>>664726

24 Фев, 02:17 #54 #664726

>>664725
А что? stl-я хватит?

Ответы>>664727

24 Фев, 02:21 #55 #664727

>>664726
>664725
>А что? stl-я хватит?

Да, на всех платформах есть стандартная библиотека 11 стандарта. На 15 студии кое-что не реализовано, но по мелочи

Ответы>>664728

24 Фев, 02:23 #56 #664728

>>664727
Ладно. Спасибо.

24 Фев, 02:52 #57 #664738

>>664111
https://ideone.com/VaP0Ql поэтому.

Ответы>>664752>>664921

24 Фев, 03:20 #58 #664752

>>664738
А инт всегда к ансайну приводится в таких выражениях?

24 Фев, 04:41 #59 #664759

Сапчен. тут крч у меня эклипсина ругается.
проектик с мейкфайлом и синтаксический анализатор все фичи С++11 выделяет ошибочными все работает но глаз щипит
по сути нужет путь к верной stl папочке как лечить? куда рыть??

Ответы>>667254

24 Фев, 11:36 #60 #664912

Какой может быть смысл у это строки? cin>>n,m;

Ответы>>664914>>664920

24 Фев, 11:41 #61 #664914

>>664912
И зачем в string оба метода size и length?

24 Фев, 11:47 #62 #664920

>>664912
>cin>>n,m;
Гугли оператор запятая. Сначала выполнится (cin>>n), а потом (cin>>m).
>зачем в string оба метода size и length
Для удобства. Все привыкли что длинна строки а не размер. А size скорее всего есть потому, что он есть во всех контейнерах.

Ответы>>664921

24 Фев, 11:49 #63 #664921

>>664920
>>664738
А вот это зачем?

Ответы>>664925

24 Фев, 11:54 #64 #664925

>>664921
Зачем или почему так? У тебя преобразовывается -1 в тип unsigned. Его значение будет равным (-1)%(2^32). И будет равным 2^32-1. Что точно больше 5.

Ответы>>664928

24 Фев, 11:58 #65 #664928

>>664925
>Зачем или почему так?
Зачем. Можно же просто все unsigned больше отрицательных. Или не -1 в unsigned преобразовывать, а 5u в signed. Хотя и тут могут быть переполнения. Неужели правильно работающего варианта не сделать?

24 Фев, 12:01 #66 #664929

5u - явное преобразование. Убери u и всё будет норм.

Ответы>>664930

24 Фев, 12:05 #67 #664930

>>664929
Это понятно. А сравнивать unsigned и отрицательные нельзя?

Ответы>>664932

24 Фев, 12:08 #68 #664932

>>664930
Можно. Но как видишь пользы от такого сравнения нет.

Ответы>>664934

24 Фев, 12:09 #69 #664934

>>664932
Понял. Спасибо.

140 Кб, 1272x575

24 Фев, 13:17 #70 #665002

Есть одна задача. Решая в лоб проверяю каждую подстроку и получаю 70% балов. Пытаюсь решить за O(n) и получаю 50%. Условие на пике моё решение здесь https://ideone.com/VrxvVl На тесте 8 6 (())(()) он посчитал ())(() правильно скобочной последовательностью т.к. не обратил внимание на ())((), а смотрел только на крайние скобки. Как исправить чтобы задача решалась за O(n)?

Ответы>>665151>>665250>>665406

24 Фев, 15:18 #71 #665093

Я что-то не могу понять как перегружать оператор [][]. Может кто пояснить?

Ответы>>665142>>665168

24 Фев, 15:59 #72 #665142

>>665093
Эх.. зелёный.

24 Фев, 16:04 #73 #665151

>>665002
1. Стек
2. Напиши функцию AreParenthesesBalanced.

Ответы>>665166

24 Фев, 16:16 #74 #665166

>>665151
>Стек
Это же решение в лоб. И как тогда пройдёт такой тест?
14 6
(())(())()()()

>AreParenthesesBalanced
Что это?

Ответы>>665361

24 Фев, 16:21 #75 #665168

>>665093
Оператор[] должен вернуть объект, у которого есть оператор[].
Если оператор[][] записать в виде методов, то будет
obj[j] => obj.operator[](i).operator[](j)

Ответы>>665169>>665277

24 Фев, 16:21 #76 #665169

>>665168
там obj[и][ж]

24 Фев, 17:50 #77 #665250

>>665002
Не люблю олимпиадки, но решил размять мозги.
Говно, но работает: http://www.es6fiddle.com/il0yhijt/

Ответы>>665272>>665378

24 Фев, 18:13 #78 #665272

>>665250
Зачем на js? Хоть поясни алгоритм.

24 Фев, 18:17 #79 #665277

>>665168
Я правильно понял? Нужно класс в классе делать?

Ответы>>665288

24 Фев, 18:29 #80 #665288

>>665277
Не нужно а можно. Лучше переопределить operator().

Ответы>>665289

24 Фев, 18:31 #81 #665289

>>665288
>Лучше переопределить operator().
Ок. Я задание со stepic делал. Там нужно было именно так.

Ответы>>665290

24 Фев, 18:34 #82 #665290

>>665289
Ну тогда да или прокси класс, или operator[] может возвращать одномерный массив, тогда возможны вызовы с [][] - но это естественно не для всего подойдет.

RetardedHorse 24 Фев, 18:40 #83 #665301

Сап, делаю игру в консольке, как сделать одновременное движение нескольких фигуры(прорисовку фигур я сделал). Куда копать? Многопоточность, таймеры???

Ответы>>665313>>665348

24 Фев, 18:46 #84 #665313

>>665301
Показывай код

34 Кб, 540x358

24 Фев, 19:01 #85 #665326

Анон, есть IDE для ньюфага? Лучше всего что-то типа Notepad++, но с компилятором.
CODE:: Blocks реально монстр, раньше писал на Dev-C++, но он протух уже год как.
VS - это просто пиздец, я же только хеллоуворды пишу пока.

Ответы>>665329>>667252

24 Фев, 19:04 #86 #665329

>>665326
CLion и QtCreator уже щупал?

Ответы>>665337

24 Фев, 19:16 #87 #665337

>>665329
>CLion
Ты серьезно? Я срусь от VS, а ты мне такое советуешь.
Мне что-то типа Dev-C++, Notepad++, только не дохлое.

Ответы>>665344>>665350

24 Фев, 19:25 #88 #665344

>>665337
Я серьезно. В свое время от блоков, бобов и эклипса обосрался, а как увидел не менее монструозный гринхаус — сразу стало норм. Так что перепробуй сначала все большие IDE, а потом попробуй SciTE и geany.

24 Фев, 19:30 #89 #665348

>>665301
В цикле апдейтишь положение фигур (сдвигаешь на небольшое растояние, если нужно), потом отрисовываешь.

24 Фев, 19:35 #90 #665350

>>665337
Тебе что нужно от IDE?
Assistants? Бери Eclipse или CLion или QtCreator
Система сборки? Бери CMake/QMake и не юзай IDE вообще.
Дебагер? Бери что угодно.
VS он боится, охуеть вообще.

sage 24 Фев, 19:47 #91 #665361

>>665166
>Это же решение в лоб
Что тебе не нравится? Мой алгоритм работает за O(n).

Ответы>>665378

24 Фев, 19:57 #92 #665378

>>665361
> Мой алгоритм работает за O(n)
Если ты про >>665250 то там квадрат - один цикл по всей строке, второй внутренний цикл по подстроке не константного размера (размер зависит от условия и может быть порядка размера входной строки). Если у тебя другой алгоритм то судя по "Напиши функцию AreParenthesesBalanced" у тебя тоже там квадрат так как скорее всего на некоторых итерациях (число которых не константно) ты будет просматривать всю подстроку не константного размера.

Ответы>>665382>>665383>>665392

sage 24 Фев, 20:00 #93 #665382

>>665378
>Если ты про
Нет, в треде, похоже, никто не может в структуры данных.

sage 24 Фев, 20:00 #94 #665383

>>665378
>у тебя тоже там квадрат так как скорее всего на некоторых итерациях
Там вообще одно сравнение и маленькое ветвление.

sage 24 Фев, 20:02 #95 #665384

Как залить решение на вашу парашу?

http://dl.gsu.by/tableByTimes.jsp?cid=19&nid=1422328&u.g=173&sortId=3&sortOrderId=1

Ответы>>665392

24 Фев, 20:12 #96 #665392

>>665378
Не надо на меня гнать. Алгоритм конечно хуйня, но далеко не квадратичный. В лучшем случае будет ровно два обращения к каждому элементу, например.
>>665384
Просто, без задней мысли, открываешь ideone и заливаешь!

Ответы>>665393

sage 24 Фев, 20:13 #97 #665393

>>665392
>Просто, без задней мысли, открываешь ideone и заливаешь!
Не, я хочу посмотреть, сколько процентов будет.

Ответы>>665481

sage 24 Фев, 20:17 #98 #665397

В общем, держите. Сосач не может в изящность и алгоритмы.
https://ideone.com/Z9IeLw

Ответы>>665403>>665406

24 Фев, 20:23 #99 #665403

>>665397
Таким образом у тебя квадрат будет. Кроме полного прохода по входной строке, также на неконстантном количестве итераций будет проводится проход (вызов AreParenthesesBalanced) по подстроке не константного размера (которая еще и может быть размером с входную).

Ответы>>665476

24 Фев, 20:26 #100 #665406

>>665397
А где решение самой задачи? В >>665002 не это требовалось же.

Ответы>>665411

sage 24 Фев, 20:28 #101 #665411

>>665406
Я условие не читал, запостил свое решение другой задачи с хакерранка.

24 Фев, 21:10 #102 #665476

>>665403

https://ideone.com/b6ai2K

Абстрактное решение за время O(n) и O(1) памяти.

Ответы>>665480

24 Фев, 21:15 #103 #665480

>>665476
а не, хуйня

24 Фев, 21:16 #104 #665481

>>665393
Зарегайся. Или давай сюда код я залью. Только не js он там руби, питон и перл поддерживает, но не js

30 Кб, 479x453

24 Фев, 22:00 #105 #665528

>>663494 (OP)
Зачем нужен C++, если есть C?

Ответы>>665534

24 Фев, 22:03 #106 #665534

>>665528
Зачем жрать капусту, когда есть картошка?

Ответы>>667251

24 Фев, 22:55 #107 #665632

Поясните, у меня вопрос - что такое литералы.
Как я понял, литералы есть символьные 'q' и строковые "string", это как бы текст в кавычках.
Я всё правильно понял?

Ответы>>665646

24 Фев, 23:01 #108 #665646

>>665632
Ты можешь написать x = y, с переменной справа, а можешь написать, скажем, x = 1. В этом случае 1 это литерал, т.е. константа, заданная прямо в коде. Есть числовые литералы, булевы, строковые, символьные, а еще пользовательские, когда ты сам задаешь constexpr-конструируемые значения при помощи специального синтаксиса.

Ответы>>665653

24 Фев, 23:06 #109 #665653

>>665646
И еще подвопрос, он вроде в книге еще не рассматривался, поэтому я не могу ответить:
Сформулируйте правило, помогающее решить, безопасно ли то или иное преобразование типов?

Ответы>>665745

24 Фев, 23:59 #110 #665745

>>665653
Это наверное про widening и narrowing преобразования. Преобразования в тип который включает в себя все значения исходного типа безопасно, остальные случаи нет.

Ответы>>665897

25 Фев, 04:18 #111 #665897

>>665745
Какую книгу выбрать, если знаешь С#, что бы поменьше воды было?

Ответы>>665936

25 Фев, 07:03 #112 #665936

>>665897
>Какую книгу выбрать, если знаешь С#, что бы поменьше воды было?

Страуструп в этом плане идеален.

89 Кб, 700x274

25 Фев, 13:02 #113 #666116

Напейсал курсач на Qt, червепрепод увидел слоты и сказал, что это не плюсы.
Как привязать в qt метод к событию на гуе без сигналов-слотов?

Ответы>>666165>>666233>>667350

25 Фев, 13:33 #114 #666155

А если у меня есть:
std::vector<int> v{1};
auto n = v[0]; ,
то auto у меня будет int или std::vector<int>::value_type? И как вообще можно проверить какой тип в переменной auto?

Ответы>>666163

25 Фев, 13:36 #115 #666163

>>666155
Будет int. Я тебе даже больше скажу std::vector<int>::value_type тоже выводится как int.

Ответы>>666167

25 Фев, 13:37 #116 #666165

>>666116
На ебало ему поссы. Это – паттерн реализованный в конкретном коде на плюсах.
Колбеками, например.

25 Фев, 13:38 #117 #666167

>>666163
А в чем тогда смысл value_type?

Ответы>>666170

25 Фев, 13:40 #118 #666170

>>666167
Чтобы узнавать тип вектора.

Ответы>>666175

25 Фев, 13:43 #119 #666175

>>666170
Понял. В шаблонах зайдет запись T::value_type. Спс.

25 Фев, 14:03 #120 #666199

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

Ответы>>666203

25 Фев, 14:09 #121 #666203

>>666199
Конечно, вкидывай задание.

Ответы>>666207

25 Фев, 14:16 #122 #666207

>>666203
а я могу на ящик скинуть?

Ответы>>666210

25 Фев, 14:17 #123 #666210

>>666207
Какой ящик. Сюда кидай.

25 Фев, 14:23 #124 #666216

сюда пдф не вкидывается:(

Ответы>>666219

25 Фев, 14:25 #125 #666219

>>666216
Ты на какой специальности учишься? Может это не твое?
Скрин сделай.

Ответы>>666221

25 Фев, 14:26 #126 #666221

>>666219
там одного не хватит
http://www.fayloobmennik.net/5842997
4 вариант

Ответы>>666227

25 Фев, 14:33 #127 #666227

>>666221
http://cppstudio.com/post/413/
Вот тут всё есть.

Ответы>>666229

25 Фев, 14:37 #128 #666229

>>666227
не, я совсем тупой. видел это:)

Ответы>>666230

25 Фев, 14:38 #129 #666230

>>666229
Ну тогда меняй специальность. Дрисню на одну строчку за тебя делать никто не будет.

Ответы>>666236>>666237

67 Кб, 600x901

25 Фев, 14:41 #130 #666233

>>666116
> червепрепод увидел слоты и сказал, что это не плюсы
Пусть препод покажет свой код.
Я прокомментрую.

25 Фев, 14:44 #131 #666236

>>666230
у меня и так гуманитарная специальность, скелет(?) не нужен, тока a=..,b=..,c=..

25 Фев, 14:45 #132 #666237

>>666230
умоляяяю

Ответы>>666242

25 Фев, 14:48 #133 #666242

>>666237
Напишите ему на хаскелле

Ответы>>666243

25 Фев, 14:49 #134 #666243

>>666242
надо на с++! и нет, я проебал скелет, который спиздил у дногруппника, теперь нужен:(

Ответы>>666265

25 Фев, 15:06 #135 #666265

>>666243
>Вопросу по синтаксису идут на хуй.
>Лабы идут на хуй.

Ответы>>666282

25 Фев, 15:22 #136 #666282

>>666265
плак-плак. сложно что ли? а мне жизнь облегчите, я и так уже седой в свои 17

Ответы>>666291

25 Фев, 15:28 #137 #666291

>>666282
Ты слишком тупой, сори. Отсоси чтоли преподу, как там ещё гуманитарии такие вопросы решают.

Ответы>>666293

25 Фев, 15:29 #138 #666293

>>666291
вот давай я расскажу, как решают, а ты запрогаешь?)

Ответы>>666296>>666299

25 Фев, 15:33 #139 #666296

>>666293
Сделай фото с флажком в анусе, запрогаю

Ответы>>666300

25 Фев, 15:37 #140 #666299

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

Ответы>>666301

25 Фев, 15:39 #141 #666300

>>666296
сука. соблазнительное предложение. а теперь представил в каком я положении? давай сразу на весь семестр лабы?

Ответы>>666312

25 Фев, 15:39 #142 #666301

>>666299
ну я не против, если помогут разобраться

Ответы>>666305

25 Фев, 15:42 #143 #666305

>>666301
>ну я не против, если помогут разобраться
Чтобы помогли разобраться, нужно сначала вопрос задать.

Ответы>>666311>>666322

25 Фев, 15:52 #144 #666311

>>666305
почему сразу мразь?

25 Фев, 15:52 #145 #666312

>>666300
Ты торгуешься еще что ли? Пока не увижу твою голую задницу, разговор диалог бесполезен.
Я - пидор-программист.

Ответы>>666319

25 Фев, 15:56 #146 #666319

>>666312
половина семестровых лаб и тока потом фотка. иначе никак, соре

25 Фев, 15:58 #147 #666322

>>666305
хорошо, раз весело сидим, то вот мой вопрос. чем floap отличается от inc? что это вообще?

12 Кб, 604x56

25 Фев, 16:09 #148 #666337

Господа программисты, я принес сложную задачку

Ответы>>666566

25 Фев, 16:30 #149 #666352

>2016
>c++

25 Фев, 18:05 #150 #666434

Аноны, как используя qt ftp просто открыть файл.
Вот например есть там картинка, я её выбираю в ListWidget и хочу открыть, как это сделать?

Ответы>>666445

25 Фев, 18:16 #151 #666445

>>666434
Гугл говорит QDesktopServices::openUrl(QUrl("/home/realnc/test.pdf"));

25 Фев, 18:47 #152 #666482

Была задачка написать что-то типа fizzbuzz'а, но рисовать спиральку квадратную. По выводу видно https://ideone.com/nZWJkc что должно делать и как вырвиглазно сделал я. Попробуйте сами будет весело. А ещё реквестирую версию моей программы с массивом указателей на функции.

Ответы>>666575

25 Фев, 19:42 #153 #666566

>>666337
Лабы в прикреплённый тред

25 Фев, 19:48 #154 #666575

>>666482
Держи
http://ideone.com/iOT4ZA

Ответы>>666580

25 Фев, 19:53 #155 #666580

>>666575
Спасибо.

25 Фев, 20:42 #156 #666689

Анон хочу написать свой первый фтп клиент на qt.
Подрубился к фтп, работает всё.
Решил сделать его не консольным, заебенил listview. И теперь в гугле не могу найти, как в этот лист запихнуть файлы из фтп.
Подскажите какой метод использовать, чтобы запихнуть.
Понятно что ftp->list() передаёт мне данные, как я понял, но как пихнуть в лист нихуя не понимаю. Помогите аноны!

Ответы>>669454

25 Фев, 20:57 #157 #666730

Есть чат сервер на питоне, который печатает айпи клиента при коннекте. Нужно эти айпишники выводить в textbrowser.
Так вот, как от QProcess получать сигнал во время выполнения программы, а не после ее окончания? readyRead() и readyReadStandardOutput() не работают - весь output печатается в textbrowser только после того, как сервер падает.

Ответы>>667301

25 Фев, 20:58 #158 #666731

Ананасы, такой вопрос. Наверное не совсем по крестам, но всё же: посоветуйте книгу по OpenGL на Mac. Во всех туторах/книгах, которые я находил, примеры были с использованием ссаного WinAPI, я попробовать OpenGL хочется.

Ответы>>666838

25 Фев, 21:49 #159 #666838

>>666731
http://www.opengl-tutorial.org/
Только на англ смотри. Там хоть скрины работают.

25 Фев, 22:35 #160 #666896

Анон, а тебе слабо ответить, почему 3 = n; является ошибкой?

Ответы>>666902

25 Фев, 22:37 #161 #666902

>>666896
3 - литерал. Литерал - rlanue. Всё.

Ответы>>666904

25 Фев, 22:38 #162 #666904

>>666902
Никто даже не соснул :(

25 Фев, 22:42 #163 #666915

СССССССССССССУКА
Я уже час въебал!
Как в win32 получить из текстбокса ебаный ИНТЕЖЕР?!

Ответы>>666924>>666947

25 Фев, 22:45 #164 #666924

>>666915
Сдвинь его на 32 бита вправо, как советует этот >>666910 кун.

Ответы>>666928

25 Фев, 22:48 #165 #666928

>>666924
Я бы тебя послал нахуй, но ты этого не достоин.

25 Фев, 22:55 #166 #666947

>>666915
Получить текст и просунуть в atoi() (сложна (нет)).

Ответы>>666954>>667150

25 Фев, 22:58 #167 #666954

>>666947
>как получить текст
>надо получить текст
Ты дурак?

Ответы>>666958

25 Фев, 23:00 #168 #666958

>>666954
Он спросил как получить интежер. А у тебя проблемы с чтением видимо.
Сложна

25 Фев, 23:57 #169 #667081

Абрикосы, хочу вкатиться в кроссплатформу и планирую начать изучать QT. Я вообще в ту сторону копаю? Камни?

Ответы>>667086

25 Фев, 23:59 #170 #667086

>>667081
>QT
Просто пиздуй работать грузчиком, это не твое.

Ответы>>667102

26 Фев, 00:06 #171 #667102

>>667086
С чего ты взял?

Ответы>>667116

26 Фев, 00:11 #172 #667116

>>667102
Наверное, он имел ввиду, что QT - это видеоплеер.

26 Фев, 00:38 #173 #667150

>>666947
Хм.
А текст ты как получаешь? У меня получается только в TCHAR* его взять, но для atoi он не годится.

Ответы>>667239

26 Фев, 01:54 #174 #667239

>>667150
https://msdn.microsoft.com/en-us/library/yd5xkb5c.aspx
а ещё есть _ttoi() которая скорее всего тебе и нужна

26 Фев, 02:03 #175 #667251

>>665534
Чтобы потом выебать кочан.

26 Фев, 02:05 #176 #667252

>>665326
vim/sublime/nano/whatevershityoulike + clang/g++ * makefiles

Ответы>>667268

26 Фев, 02:09 #177 #667254

>>664759
Удолить еклипс. Поставеть VIM.

26 Фев, 02:25 #178 #667265

Крестаны, сегодня наткнулся на Juce. И сразу задался вопросами. Как так получилось, что за пять лет моих крестостраданий я впервые о нем слышу? Его кто-нибудь вообще использует? Чем оно лучше Qt или, убереги патлатый, gtk+этовсё_от_гнома?

Ответы>>667271

26 Фев, 02:28 #179 #667266

Могу ли я используя вектор присвоить значения сразу, как я делал это с массивами в С?
например вместо
vector <string> alph(3);
alph[0]=0;
alph[1]=1;
alph[2]=2;

дописать сразу в первой строке. например с массивом было бы что-то примерно
alph[3]={0,1,2};
help

Ответы>>667394>>668059

26 Фев, 02:33 #180 #667268

>>667252
>makefiles

Как там в 1977?

Ответы>>667398

26 Фев, 02:39 #181 #667271

>>667265
Ценой?

46 Кб, 500x378

26 Фев, 04:07 #182 #667282

Анон, у меня проблема. Я не понимаю указатели. Вернее я понимаю их суть, но не могу понять где в коде лучше использовать указатели, а где обычные переменные? Крестаны, объясните доступно.

Ответы>>667300>>667368

26 Фев, 06:50 #183 #667300

>>667282
Прочитай про стэк, динамическую память и про stack overflow.

26 Фев, 06:52 #184 #667301

>>666730
Не гуглится!!!! прошу, помогите!!!

Ответы>>668466

26 Фев, 08:20 #185 #667340

Верно ли то, что результат вычисления CRC16 на little endian и big endian ЭВМ будет одинаков?
uint32_t number = 0xffaaccbb;
uint16_t crc = crc16(CRC_INIT_VAL, (uint8_t*) &number, 4);

Ответы>>667468

26 Фев, 08:40 #186 #667350

>>666116
>что это не плюсы.
Мамка его не плюсы. Докажи ему, приведи пример, что самая лучшая оболочка в nix системах написана с использованием этой библиотеки. Если кукарекает на слоты, расскажи неучу, что в boost тоже есть сигналы и слоты. А если он скажет что boost не кресты, то можешь отчисляться из этой шараги, ты там все равно ничему не научишься.

26 Фев, 09:24 #187 #667368

>>667282
Есть два стула. Эти два стула надо поменять местами.
Вот ты смотришь на эти два стула, и в воображении представляешь, как они сменили положение. Что быстрее, поменять эти два стула по настоящему, или просто представить, у себя в голове, что они сменили место? А теперь представь, что эта хуита, про "мысли материальны" реально работает.
Или у тебя есть огромная куча говна, но ты пока не знаешь, чем и как эту кучу будешь убирать, допустим это зависит от того, какова структура этого говна. Что ты будешь делать? Перетаскивать гавно то к одному, то к другому инструменту? А может еще и скопируешь это гавно для того чтобы проверить какой инструмент будет удобнее?
В любом коде, где можно избежать копирования или смещения реальных данных, используй указатели/ссылки.
Простейший пример.
int f(int shit){
shit = shit + 1;
return shit;
}
Если ты не будешь использовать тут указатели/ссылки, это дерьмо будет копироваться, а возвращаться совсем другое дерьмо. Так, в твоей памяти, в конце концов будет столько говна, что ты уже ничего не сможешь поделать.

26 Фев, 10:19 #188 #667388

>>663494 (OP)
Есть одна dll, которая активно использует стандартные потоки С++. Есть один движок, который из своего компилятора выкинул эти самые потоки. В результате движок нормально работает с Debug версией .dll, но при Release версии вылетает. Как сделать так что бы в Release версии в .dll принудительно оставили все для работы с потоками?

Ответы>>667397

26 Фев, 10:25 #189 #667392

Могу ли я используя вектор присвоить значения сразу, как я делал это с массивами в С?
например вместо
vector <string> alph(3);
alph[0]=0;
alph[1]=1;
alph[2]=2;

дописать сразу в первой строке. например с массивом было бы что-то примерно
alph[3]={0,1,2};
help

26 Фев, 10:32 #190 #667394

>>667266
Да, в с++11 добавили uniform initialization.

26 Фев, 10:33 #191 #667397

>>667388
Почему двиг вылетает?

Ответы>>667399

26 Фев, 10:33 #192 #667398

>>667268
Неосилятор. Мощнее и проще мейкфайлов ничего не придумали.
А с ninja вообще пушка.

Ответы>>667496

26 Фев, 10:38 #193 #667399

>>667397
Когда пытаешься использовать ifstream например, просто читать/писать. Я спецом все комментировал чтобы исключить свое говно.

Ответы>>667505

26 Фев, 10:51 #194 #667408

Аноны, хелп. Есть Одна Задача на ПОИСК С ВОЗВРАТОМ, суть ее в том, что в некую фирму надо нанять n рабочих на m должностей. При этом есть матрица доходов каждого из рабочих, на всех этих m должностях (обычная матрица, где строка - номер должности, столбец - номер рабочего, значение - доход фирмы при назначении его на эту должность). Необходимо исходя из этого подобрать рабочих так, чтобы фирма имела максимальный доход.

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

Но это нихуя не работает, видимо я не уловил сути бектрекинга, а в интернетах инфы про это толком нет, кроме 500 символов на вики и одного примера.

Помогите хотя бы на словах описать идею реализации этой программы.

Это еще не учтено, кстати, что должностей может быть меньше/больше, чем претендентов, ну да похуй

Ответы>>667419>>667428

26 Фев, 11:04 #195 #667419

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

Ответы>>667473

26 Фев, 11:29 #196 #667428

>>667408
Твой жадный алгоритм не даст максимума, тут нужно задачу переформулировать так, чтобы можно было симплекса методом решать.

Ответы>>667429

26 Фев, 11:29 #197 #667429

>>667428
>симплекса методом
симплекс-методом

26 Фев, 12:05 #198 #667468

>>667340
Не думаю. В CRC применяется деление многочленов из конечного поля Галуа, которые представлены вектором коэффициентов, и если ты сменишь endianess, то коэффициенты расположатся в обратном порядке, и это будут уже другие многочлены.

26 Фев, 12:11 #199 #667473

>>667419
Да-да, именно так я и пытаюсь организовать: есть матрица структур РАБОЧИЙ, где как раз имеется его порядковый номер, доход с определенной должности строка, столбец и переменная, куда я буду заносить значение включался ли он в список или нет.
Но вот дойду я допустим до 5-6 должности и пойму что первый рабочий был бы эффективнее тут если он на первой должности имеет максимум дохода и на 6, но разница между следующим по списку доходом меньше в первом, чем в 6
Что в таком случае делать? начинать проход с начала?

Ответы>>667548

26 Фев, 12:41 #200 #667496

>>667398

Месье, а вы не путаете cmake с make? Ninja и make - две разных билд системы, которые не взаимодействуют. А вот cmake как платформонезависимая билдсистема-прокси умеет генерировать билд файлы и того и другого.

Ответы>>667956

26 Фев, 12:49 #201 #667505

>>667399
>Когда пытаешься использовать ifstream например, просто читать/писать. Я спецом все комментировал чтобы исключить свое говно.

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

26 Фев, 13:39 #202 #667548

>>667473
> начинать проход с начала
Да.

Ответы>>667557

26 Фев, 13:52 #203 #667557

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

Ответы>>667572

26 Фев, 14:14 #204 #667572

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

Ответы>>667913

26 Фев, 15:24 #205 #667630

Анончики, а есть такая табличка http://bigocheatsheet.com/ , только со всеми контейнерами с stl?

Ответы>>667638>>667852>>667925

26 Фев, 15:31 #206 #667638

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

Тоже самое с контейнерами. Там даже по названию понятно, какая структура данных лежит в основе контейнера.

67 Кб, 1458x808

26 Фев, 17:16 #207 #667852

>>667630

Ответы>>667854

26 Фев, 17:19 #208 #667854

>>667852
Спасибо. Добра тебе анон.

26 Фев, 18:12 #209 #667913

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

Ответы>>667937

26 Фев, 18:32 #210 #667925

>>667630
https://habrahabr.ru/company/infopulse/blog/194726/
http://goo.gl/5AIkZc

75 Кб, 967x986

26 Фев, 18:42 #211 #667937

>>667913
У тебя не сильно подходящяя задача, так как кроме самого бектрекинга тебе нужно еще и оптимизировать (так как нужен бектрекинг то это метод ветвей и границ). А оптимизации NP-полных задач это посложнее бектрекинга. Его лучше на чем-то типа поиска пути в лабиринте рассматривать. А так ты на слишком большой кусок замахнулся, желательно дробить темы для изучения.

Ответы>>668389

26 Фев, 18:56 #212 #667956

>>667496
Да, cmake. Кто-то пишет мейкфайлы руками?

Ответы>>667967

26 Фев, 19:06 #213 #667967

>>667956
бывает

еба Ирвин 26 Фев, 20:39 #214 #668048

Привет всем. Я учил базу языка C++ уже пару месяцев, задрочил консоль до дыр. Скакал по учебникам, делал задачи, веселился. Теперь встал вопрос о практическом применении. Я решил взять фреймворк QT для начала, но мне интересно, хватит ли мне моих знаний. Из базы выучил почти все, исключая STL и boost, но в этом и проблема: смогу ли я учить QT, если не знаю этих библиотек? В классах вполне шарю, читал книжку по ООП, в низкоуровневой части тоже пока что проблем нет.

Ответы>>668051>>668053>>668054>>668055>>669334>>669357

26 Фев, 20:41 #215 #668051

>>668048
нет

26 Фев, 20:42 #216 #668053

>>668048
Ты должен не просто "читал книжку по ООП", ты должен его охуенно понимать, иначе получится говно

26 Фев, 20:43 #217 #668054

>>668048
>исключая STL и boost
А что ты учил пару месяцев? Циклы и классы?

Ответы>>668058

26 Фев, 20:43 #218 #668055

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

Ответы>>668060

26 Фев, 20:48 #219 #668058

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

Ответы>>669165

26 Фев, 20:49 #220 #668059

>>667266
http://ideone.com/JDYxCF

26 Фев, 20:49 #221 #668060

>>668055
Как это "без знаний" ? Да еще и дотнет на C++?

Ответы>>668062

26 Фев, 20:52 #222 #668062

>>668060
> Как это "без знаний" ?
Значит первый раз и при помощи гугла и здравого смысла.
> Да еще и дотнет на C++?
Да, было дело. Теперь я поумнел.

Ответы>>668065

26 Фев, 20:54 #223 #668065

>>668062
Не, это похвально. Я пробовал в Билдере формы лепить, но мне было 10 лет, и терпения не хватило.

26 Фев, 21:09 #224 #668080

Ну что, кто ходил на C++ Russia сегодня? Проиграл от того, как в конце доклада по синхронизациям разорвало одного мамкиного алгоритмиста

Ответы>>668139

26 Фев, 22:17 #225 #668139

>>668080
Расскажи или покажи.

26 Фев, 22:39 #226 #668163

Анон, есть ftp.list() из qtftp, как его засунуть в ListView?

Ответы>>668190

61 Кб, 604x349

26 Фев, 23:23 #227 #668190

>>668163
Лучше поперёк. Да.

Ответы>>668435

27 Фев, 09:01 #228 #668389

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

Ответы>>668451

27 Фев, 10:58 #229 #668435

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

Ответы>>668460

27 Фев, 11:25 #230 #668451

>>668389
Если тебе нужен именно бектрекинг тебе нужно понять как представить все возможные комбинации назначений в виде дерева. В корне находится первый сотрудник, от него отходят ребра соотвествующие всем возможныи назначениям. Наследующей уровне несколько вершин соотвествующие доступным назначениям второго работника при соотвествующем назначении первого сотрудника (тоесть от них будет отходить уже на одно ребро меньше чем от первого, так как одна позиция занята), на следующем уровне для третьего и т.д. В самом низу у тебя должно получится n! узлов (листьев) каждое из которых соотвествует одному из возможных вариантов назначения сотрудников. Бектрекингом будет поиск в глубину по этому дереву. Потом тебе останется научится как можно раньше узнавать тупиковые ветви (в которых гарнтировано не будет оптимального решения) и сразу их отбраковывать и возвращатся назад. Но в любом случае это не эффективный способ, так как сложность n!, а у чуваков вон вроде есть за куб решение (венгерский алгоритм).

27 Фев, 11:32 #231 #668460

>>668435
Если api документации по qt тебе не хватает, поищи примеры использования listview и ftp в qt. Потом думаешь, как эти две сущности подружить.

Ответы>>668472

27 Фев, 11:40 #232 #668466

>>667301
Проблема была в буферизации. Ну что же вы, аноны?

27 Фев, 11:45 #233 #668472

>>668460
я уже вычитал тучу примеров, нашёл сайт где пиарили либу, которая через metod всё это делает, но её удалили

Ответы>>668476

27 Фев, 11:51 #234 #668476

>>668472
тьфу, model а не metod

27 Фев, 21:39 #235 #669144

Ананасы, поясните, пожалуйста, за универсальные ссылки в c++ 11. Нихуя понять не могу, что за rvalue, lvalue - это я еще более-менее усваиваю, а вот когда идет речь о том будет ли применяться копирование или перемещение объекта, переданного по ссылке понять не могу. Читаю Скотта Мейерса, и понимаю, что вот тут то полный пиздец. Либо там все достаточно просто и он развел базар на пол-книги, чтобы продать ее. Посоны, помогайте.

Ответы>>669151

27 Фев, 21:47 #236 #669151

>>669144
Общее правило такое: если есть && сущность (параметр, переменная, что угодно), которая инициализируется с выводом типа (при помощи auto, аргумента шаблона и т.п.), то это универсальная ссылка, для которой выбор между rvalue и lvalue определится инициализирующим значением при выводе типа (например, auto && x = 1 будет rvalue, a auto && x = y - lvalue).

Ответы>>669162

27 Фев, 21:59 #237 #669162

>>669151
а это не универсальная ссылка?
>const T &

Ответы>>669168

27 Фев, 22:00 #238 #669165

>>668058
так они не про ту консоль говорили, лол.

Ответы>>669169

27 Фев, 22:02 #239 #669168

>>669162
Нет.

Ответы>>669170

27 Фев, 22:02 #240 #669169

>>669165
А про какую?

Ответы>>669171

27 Фев, 22:02 #241 #669170

>>669168
но ведь подходят и lvalue и rvalue

Ответы>>669178

27 Фев, 22:03 #242 #669171

>>669169
скорее всего про линуксовский шелл.

Ответы>>669172

27 Фев, 22:04 #243 #669172

>>669171
А какая разница?

Ответы>>669181

27 Фев, 22:05 #244 #669178

>>669170
Ну и что? Это другое правило. Универсальные ссылки говорят не о "подходит", а о "является". Например, если T && x выведется в rvalue-ссылку, то это один раз жестко зафиксируется, и не получится потом пихнуть туда lvalue.

27 Фев, 22:07 #245 #669181

>>669172
даже не знаю как ответить

28 Фев, 00:49 #246 #669334

>>668048
Какую консоль ты учил?

28 Фев, 01:23 #247 #669357

>>668048
> Я учил базу языка C++ уже пару месяцев, задрочил консоль до дыр
Задрачивал cin и cout 2 месяца?

28 Фев, 02:36 #248 #669395

Хочу запилить клон haxball.com под десктоп.
Вопрос такого плана:смогу ли я написать в резюме, что я могу в нетворкинг и игры?

Ответы>>669870

28 Фев, 05:13 #249 #669454

>>666689
Если ты используешь view, тогда у тебя должна быть model, в которой и будут твои данные. Читай про MVC в Qt

28 Фев, 15:49 #250 #669801

void ftpget(QString url, QString dir){
ftp.connectToHost("ftp.h112858-2.r01.ru");
ftp.login("h112858-2_22","lsu2hmyw.");
ftp.cd("PICTURES");

QFile file("C/Temp/"+url);
file.open(QIODevice::WriteOnly | QIODevice::Append);
ftp.cd(dir);
ftp.get(url,&file);

Анон, что не так с кодом? В папке файл не появляется.

Ответы>>669851

28 Фев, 15:56 #251 #669813

личные данные

28 Фев, 16:20 #252 #669851

>>669801
что даёт "C/Temp/"+url в дебаге посмотри

Ответы>>669938

28 Фев, 16:29 #253 #669869

Юзаю Cmakelists.
-D CMAKE_BUILD_TYPE=Debug
#ifndef _DEBUG и #ifndef Debug макросы не работают. Чяднт?

Ответы>>669958

28 Фев, 16:30 #254 #669870

>>669395
> что я могу в игры
он умеет играть в игры -- берём!

написать сможешь, да это проверить легко прямо на собеседовании, задав пару простых вопросов на понимание. к примеру:
1. чем отличаются между собой tcp от udp?
2. как бы ты реализовал проверку доставки пакетов при использовании udp (свой rudp)?
3. и платиновый вопрос на общее знание нетворкинга. ты запускаешь консоль и вводишь в ней ping site.org. какие стеки протоколов/протоколы используются, что вообще происходит?

Ответы>>669878>>669885>>669921>>669955

28 Фев, 16:33 #255 #669878

>>669870
Если он задает такие вопросы, то он даже game loop нормальный сделать не сможет.

Ответы>>669916

42 Кб, 224x180

28 Фев, 16:36 #256 #669885

>>669870
>2. как бы ты реализовал проверку доставки пакетов при использовании udp (свой rudp)?
Засобачил бы через tcp.

Ответы>>669897

28 Фев, 16:42 #257 #669897

>>669885

@
ВЫДАЁШЬ АУТИСТУ ТАСКУ РЕАЛИЗОВАТЬ ЛЕГКОВЕСНЫЙ ПРОТОКОЛ ПОВЕРХ UDP С ПРОВЕРКОЙ ДОСТАВКИ
@
ОН ХУЯРИТ ЧЕРЕЗ TCP
@
НИХУЯ НЕ ГРУЗИТСЯ
@

28 Фев, 16:51 #258 #669916

>>669878
О да, один ты знаешь такую "тонкую" материю.

28 Фев, 16:53 #259 #669921

>>669870
>вводишь в ней ping site.org. какие стеки протоколов/протоколы используются
Вот это вообще архиважно.

Ответы>>669926

28 Фев, 16:54 #260 #669926

>>669921
вопрос на понимание. поэтому да, понимать -- важно. если на вакансия не называется "макака за еду"

Ответы>>669930

28 Фев, 16:55 #261 #669930

>>669926
Макака, плиз. То, что ты знаешь какую-то ненужную хуйню - не делает ее какой-то исключительной, а тем более не обязывает остальных знать ее.
Рассказываешь, как это знание тебе пригодилось или идёшь нахуй.

Ответы>>669945

28 Фев, 16:59 #262 #669938

>>669851
у меня дебагер к qt не подключен, я хз как это сделать
я ошибку одну уже нашёл вроде надо писать "C:\Temp\" + url

Ответы>>669986

28 Фев, 17:06 #263 #669945

>>669930
у меня overдохуя историй, где это всё пригодилось ибо я ебусь с нетворкингом каждый день(рассказывать их тебе я не собираюсь ибо иди нахуй, мудила). он спрашивает про графу нетворкинг в cv. я ответил. вопрос про пинг самый платиновый на собеседовании для нетворкинга. а чего ты петушишься, я не понимаю)))0)

Ответы>>669951

28 Фев, 17:13 #264 #669951

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

Ответы>>669958

28 Фев, 17:21 #265 #669954

Думаю, в этом треде могут знать, как использовать use after free уязвимости. А то есть одна в винде дыра, и фикс есть - а эксплойта для исполнения команд - нету. Надо исправить.

28 Фев, 17:25 #266 #669955

>>669870
1. TCP гарантирует корректную передачу данных. UDP - нет.
2. Самый простой путь - как в sftp, через ACK для каждого пакета.
3. ICMP через UDP. Вроде так.

Ответы>>669966

28 Фев, 17:28 #267 #669958

>>669869
Разве тебе не ifndef нужны?

>>669951
Не знаю насчет пинга, но telnet и подобными инструментам пользоваться надо уметь, наверное

Ответы>>669962

28 Фев, 17:32 #268 #669962

>>669958
Ну и научусь же, для меня это новая тема.
По поводу макросов, нужен такого вида:
#ifndef debug
#define YOBA()
#else
#define YOBA() yobayoba(1488);
#endif
Вот только дебаг не отзывается. Что довольно странно. Какие вариации из гугла не пробовал только.

Ответы>>670083

28 Фев, 17:39 #269 #669966

>>669955
Можно ещё пакеты нумеровать для пущего счастья.

28 Фев, 17:59 #270 #669986

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

Теперь вопрос, как через get скачать правильно? А то файл 0 кб

28 Фев, 18:47 #271 #670053

Анон, как в qt получить данные ячейки из TableView?

28 Фев, 18:58 #272 #670083

>>669962
Залей выхлоп make clean; make VERBOSE=1 на пастбин

И попробуй ifdef NDEBUG (определяется когда делаешь релизный билд)

Ответы>>670113

28 Фев, 19:09 #273 #670113

>>670083
Да пробовал NDEBUG.

Ответы>>670118

28 Фев, 19:11 #274 #670118

>>670113
Блин. Попробовал еще раз - робит.
Спасибо, милаша :3

А так вообще принято писать? Везде видел именно _DEBUG_

28 Фев, 19:16 #275 #670120

>>663494 (OP)
ОП-хуй,
Зачем ты упоминаешь глючное, уёбищное говно IDEONE, когда есть божественный REPL.it?
Почему я должен был СЛУЧАЙНО найти эту радость?

Ответы>>670127>>670146>>670153>>672412

28 Фев, 19:19 #276 #670127

>>670120
респект!

28 Фев, 19:29 #277 #670146

>>670120
Говно какое-то. Схема есть, а хаскила нет.

Ответы>>670164

51 Кб, 1350x525

28 Фев, 19:32 #278 #670153

>>670120
Посмотрел что это. Похоже у неё другие цели. Вот если у тебя компилятора нет, то ты эту хуиту изаешь. А вот чтобы постить в тред луше идеон. 1 раз написал, скомпилил и кинул линк. а ещё я не понял как пользоваться консолью

Ответы>>670171

28 Фев, 19:40 #279 #670164

>>670146
QBASIC жи есть.

28 Фев, 19:44 #280 #670171

>>670153
Консоль для ввода-вывода.

Ответы>>670176

28 Фев, 19:45 #281 #670176

>>670171
Почему тогда такое странное сообщение об ошибке?

Ответы>>670179

28 Фев, 19:46 #282 #670179

>>670176
Значит это таки REPL, но для цепепе он не работает.

28 Фев, 20:50 #283 #670242

Решаю задачу вывода n-го с конца элемента односвязного списка.

Такой код: https://ideone.com/yTyi9n
Но здесь в первом цикле указатель продвигается не на position шагов вперед, а на position - 1. Почему так?
http://tproger.ru/problems/algorithm-to-find-the-nth-to-last-element-of-a-singly-linked-list/

Рассмотрим пример:
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> NULL

На первом шаге p = 1, q = 1

Далее в моей реализации указатель p продвигаем на position = 3 шага вперед:
p = 2; p = 3; p = 4; остановились

Теперь двигаем оба указателя, пока не дойдем до конца списка. Расстояние между ними равно position, поэтому в конце указатель q остановится на нужном элементе.

Итак:
p = 5; q = 2;
p = 6; q = 3;

Остановились. Как видно, ошибка на единицу, но почему так? На сайте мое решение принимается несмотря на то, что указатель p продвигается вперед на position шагов.

Ответы>>670260

28 Фев, 20:59 #284 #670260

>>670242
А, понятно, на ТПпрогер индексы не с нуля. Обычно я пропускаю описание всякого говна и перехожу сразу к изучению кода.

5 Кб, 514x258

28 Фев, 23:03 #285 #670468

Хотел подключить к кодблокс SFML, сделал как тут http://grafika.me/node/240 , только с последней версией, у меня выдает ирроры, защоооооо?

Ответы>>670473>>670480

28 Фев, 23:05 #286 #670473

>>670468
Без IDE попробуй.

Ответы>>670481

6 Кб, 228x221

28 Фев, 23:08 #287 #670480

>>670468
Я не умею.

Ответы>>670481>>670495

28 Фев, 23:08 #288 #670481

>>670480
>>670473

28 Фев, 23:20 #289 #670494

Я так понимаю, всегда нужно указывать =delete для конструкторов, которые не используются? Либо ситуативно смотреть?

Ответы>>670602>>670630

28 Фев, 23:21 #290 #670495

>>670480
Через CMakeLists делай.

141 Кб, 900x1472

28 Фев, 23:40 #291 #670522

>>663494 (OP)
Немножко умею сокеты.
Что прочесть что бы мочь SSL? Лучше с примерами и на русском.

Ответы>>670529>>671647

28 Фев, 23:42 #292 #670529

>>670522
https://www.youtube.com/watch?v=CmbXm2tkzME

На русском и с примером

Ответы>>670836

29 Фев, 00:25 #293 #670602

>>670494
>Я так понимаю, всегда нужно указывать =delete для конструкторов, которые не используются?
Только если они сгенерируются по-умолчанию.
Хотя можно для ясности указывать явно. Там довольно большой список ситуаций, в которых методы неявно помечаются как default или delete. Чтобы не страдать хуйней, заучивая эти правила, можно явно написать.

Ответы>>670623

29 Фев, 00:36 #294 #670623

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

Ответы>>670659

29 Фев, 00:40 #295 #670630

>>670494
Я юзаю =delete для методов, которые генерирует компилятор, но мне они не нужны. Например раньше конструктор копирования нужно было создавать с модификатором private, а сейчас можно просто написать =delete.

29 Фев, 00:54 #296 #670659

>>670623
>Минус в том, что умные дядьки потом у виска могут покрутить, если окажется, что в данной ситуации ни к селу, ни к городу.
Ну скажут, что не знаешь условия implicit defaulted/deleted declaration и хуле?
Зато не будет таких ответов, как у этого Василия, который не знает, что конструктор копирования и оператор присваивания являются implicitly deleted, если есть move аналоги. А когда возникает необходимость делать недоступными эти методы, то аналоги точно есть.

Ответы>>670691

29 Фев, 01:13 #297 #670691

>>670659
>конструктор копирования и оператор присваивания являются implicitly deleted
А я это знаю, наизусть помню все эти правила, ибо однажды показалось это важным.
Но все же, я имею ввиду ситуацию, когда здоровому человеку ОЧЕВИДНО, что никакие такие конструкторы использоваться не будут вовсе, т.к. объект создается единожды эксплицитным конструктором с параметрами.

29 Фев, 07:41 #298 #670836

>>670529
я что, на /pr захожу что бы со мной тут шутки шутили?

Ответы>>673176

29 Фев, 10:01 #299 #670873

В методе класса нужно запустить другой метод в треде. Нагуглил std::thread t2(&Test::calculate, this, 11, 20); почему синтаксис так отличается от вызова извне? Зачем амперсанды и this?

Ответы>>670883>>670885>>671002

29 Фев, 10:22 #300 #670883

>>670873
Амперсанд не обязателен, как и для глобальной функции (имя Callable-сущности превращается в указатель на нее автоматически, когда прорабатывает std::decay). this указывает конкретный объект, от имени которого должен вызываться метод (в общем случае это может быть указатель на какой-то другой объект, если тебе захочется). Внутренности std::thread распознают, что им передан именно метод класса (при помощи отдельной специализации конструктора) и интерпретируют второй параметр особым образом, вызвав в нужный момент this->calculate (11, 20), а не calculate (this, 11, 20).

Ответы>>670910

29 Фев, 10:25 #301 #670885

>>670873
Когда в конструктор std::thread(f, t1, t2 ...) передается функция-член класса то в результате вызывается или (t1.f)(t2, ..., tN) или ((t1).*f)(t2, ..., tN) в зависимости от переданых аргументов. Поэтому в конструкторе треда вторым аргументом должна быть ссылка или указатель на класс, и нужен указатель на функцию-член (получается указатель на указатель), так как там идет его разименование (какого-то хуя, причины наверное были). Для сравнения если в конструктор будет передана обычная функция то будет вызвано f(t1, t2, ..., tN)
http://en.cppreference.com/w/cpp/thread/thread/thread

Ответы>>671150

29 Фев, 11:04 #302 #670910

>>670883
Ну зачем-то же его пишут..
Где ещё такой синтаксис ?

Ответы>>670911

29 Фев, 11:13 #303 #670911

>>670910
Ну не знаю, возможно, чтобы подчеркнуть, что это именно указатель, первоклассных-то функций не завезли. Я бы посоветовал не заморачиваться и писать как удобнее тебе самому.

29 Фев, 14:02 #304 #671002

>>670873
Запусти std::async и забери фьютчером, если тебе нужен результат.

Ответы>>671129

29 Фев, 15:59 #305 #671129

>>671002
Да знаю, меня именно амперсанд и this интересовал. Ну и :: , забыл как его там.

Ответы>>671150

29 Фев, 16:04 #306 #671136

А вот если у меня в классе есть метод, который плодит несколько разных тредов - джойнить нужно в нем же, или в деструкторе? Или выделить функцию для о джойна всех этих тредов?

Ответы>>671144

29 Фев, 16:07 #307 #671144

>>671136
Если результат тредов нужен в методе - джойн в методе.
Если во вне, то промисы в помощь

Ответы>>671154

29 Фев, 16:10 #308 #671150

>>671129
в принципе, всё написали >>670885

В C++ нет правила, по которому member-функции распадаются (decay) до указателей, как обычные функции. Поэтому нужно указывать явно принадлежность функции классу и взятие адреса амперсандом. Про this вроде бы ясно.

Ответы>>671158

29 Фев, 16:12 #309 #671154

>>671144
Войд методы. В обоих циклы.

29 Фев, 16:14 #310 #671158

>>671150
Меня сбило с толку именно что thread(calculate, 11, 20) нельзя, выкидывает ошибку, мол, нестатическая йоба, идите нахуй.
Теперь понятно как это юзать, не совсем понял за дикей правда, на досуге почитаю обязательно

Ответы>>671169

29 Фев, 16:19 #311 #671169

>>671158
Когда от тебя ожидают аргументом указатель на функцию (напр. void (*)()), а ты передаёшь имя функции (без амперсанда, тип void()), то C и C++ автоматически преобразуют тип функции в указатель на неё. Это и называется function-to-pointer decay.
Для мембер-функций такого преобразования нет.

7 Кб, 200x200

29 Фев, 17:59 #312 #671238

Анон, поясни за структуры. Что это такое и зачем нужно. А то никак не могу разобраться

Ответы>>671241>>671265>>671299>>671321

29 Фев, 18:01 #313 #671241

>>671238
Лучше подумай о карьере грузчика, есои не понимаешь таких вещей.

Ответы>>671257

29 Фев, 18:11 #314 #671257

>>671241
>>671241
Ты злой. Я же нормально спросил. просто нет того, кто бы нормально мог объяснить

Ответы>>671264

29 Фев, 18:17 #315 #671264

>>671257
Это же блядь элементарно. Вот есть у тебя табличка в тетрадке – то же самое и структуры.
Если не понял – пиздуй разгружать фуры.

29 Фев, 18:18 #316 #671265

>>671238
Структуры - это то же самое, что и классы, только по умолчанию видимость стоит public, а не private.

Ответы>>671269

29 Фев, 18:20 #317 #671269

>>671265
Ебать бы объяснил.
"Двумерное пространство это десятимерное, только 8 измерений свёрнуты в точку."

Ответы>>671274

29 Фев, 18:22 #318 #671274

>>671269
Грузчиков всегда мало.

Ответы>>671276

29 Фев, 18:22 #319 #671275

Есть тут кто пользуется Вижуал студио?

29 Фев, 18:23 #320 #671276

>>671274
Я не тот анон, который спрашивает про структуры, мимо.

А объясняешь ты хуёвее грузчика.

Ответы>>671278>>671284

29 Фев, 18:24 #321 #671278

>>671276
Можешь объяснить за структуры
тот анон

Ответы>>671279

29 Фев, 18:24 #322 #671279

>>671278
Мне лень.

Ответы>>671282

29 Фев, 18:26 #323 #671282

>>671279
Ну как я понял это тупо несколько переменных под одним именем с методами?

29 Фев, 18:26 #324 #671284

>>671276
Всё потому, что ты тупее того, кто объясняет хуже грузчика.

Объясню структуры за селфи с флажком в допе и сапом.

29 Фев, 18:37 #325 #671299

>>671238-кун

struct stack
{
const int MEMORY_ALLOC_SIZE=8;
int data;
int top;
int size;
void create();
void create(int tsize);
bool pop(int outItem);
bool peek(int outItem);
void push(int item);
bool isEmpty();
void print();
void distruct();
};

int main()
{

}
void stack::create()
{
data=(int)calloc(MEMORY_ALLOC_SIZE,sizeof(int));
size=MEMORY_ALLOC_SIZE;
top=0;
}
void stack::create(int tsize)
{
data=(int)calloc(tsize,sizeof(int));
size=tsize;
top=0;
}
void stack::push(int item)
{
if (size-top == 1)
{
data=(int)realloc(data,size+MEMORY_ALLOC_SIZE);
size=+MEMORY_ALLOC_SIZE;
}
data[top]=item;
top++;
}

bool stack::pop(int outItem)
{
if(top==0)
{
return false;
}
else
{
return true;
outItem=data[top-1];
data[top-1]=0;
top--;
}

}

bool stack::peek(int outItem)
{
if(top==0)
{
return false;
}
else
{
return true;
outItem=data[top-1];
}
}

bool stack::isEmpty ()
{
if (size==0)
{
return true;
}
else
{
return false;
}
}

void stack::distruct()
{
free(data);
}

void stack::print()
{
for (int i=size; i>0; i--)
{
printf("%d",data[i-1]);
}
}

Ответы>>671312

29 Фев, 18:41 #326 #671312

>>671299
с указателями обосрался

29 Фев, 18:43 #327 #671318

Вопрос наверное уебанский, но всё-таки надеюсь, что ответите. Зачем нужны прототипы функций? Почему нельзя сразу писать функции целиком, а мейн последним?

Ответы>>671324>>671325>>671338>>671947

29 Фев, 18:45 #328 #671321

>>671238
Если тебе нужно отличие структур от классов, то его почти нет, там только по умолчанию все поля public.

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

В си с плюсами добавили классы, уже совсем другую сущность... Об этом в следующем выпуске

29 Фев, 18:47 #329 #671324

>>671318
> Почему нельзя сразу писать функции целиком, а мейн последним?
Удобнее. И прототипы не для этого зделоли, чтобы ты мог функции после main() писать.
> Зачем нужны прототипы функций?
Чтобы их вызывать, когда реализации в других модулях линковки.

29 Фев, 18:47 #330 #671325

>>671318
Можно. Пишешь везде inline void funkciya ();

А вообще, читай one definition rule.

29 Фев, 18:57 #331 #671330

Посоветуйте либу с парсерами файлов разных форматов.

Ответы>>671333

29 Фев, 19:00 #332 #671333

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

29 Фев, 19:03 #333 #671338

>>671318
Декларирование нужно в первую очередь для многофайловых программ (ускорения их компиляции после внесения небольших изменений). Функция может находиться в другом .cpp файле (или ее реализации в виде исходного кода вообще может не быть, например в случае использования библиотеки), компилятор устроен таким образом что каждый файл компилируется отдельно (еденица трансляции), соответственно инфу о функции (если она в другом файле) для статического контроля получить неоткуда. Для этого нужно декларирование - декларируя функцию ты обещаешь компилятору что такая функция на самом деле есть, и компилятор спокойно компилирует исходный код в объектный.

Ответы>>671347

29 Фев, 19:11 #334 #671347

>>671338
Вот хорошо и понятно объяснил, добра тебе.

29 Фев, 19:53 #335 #671419

В крестах нет модулей, а в паскале есть. Какое преимущество это даёт паскалю над крестами?

Ответы>>671421>>671424

29 Фев, 19:54 #336 #671421

>>671419
Более быстрая компиляция и линковка. Паскаль еще и однопроходный by design, поэтому компилируется вообще со свистом.

Ответы>>671426>>671433

29 Фев, 19:55 #337 #671424

>>671419
>В крестах нет модулей, а в паскале есть.
И при этом кресты нужны (я тут не обсуждаю, насколько они дерьмовы при этом), а поц-кал — не нужен.

Ответы>>671426>>671458

29 Фев, 19:57 #338 #671426

>>671421
>однопроходный by design
Что это? Только на скорость компиляции модули влияют?

>>671424
Ну я же для примера.

Ответы>>671456

29 Фев, 20:01 #339 #671433

>>671421
> Паскаль еще и однопроходный
Разве к езыкам с каким-никаким синтаксисом это применимо? Я думал только к ассемблерам. А всякие поц-кали так или иначе надо компилировать в несколько стадий.

Ответы>>671445

29 Фев, 20:07 #340 #671445

>>671433
Как раз в ассемблерах нужны множественные проходы потому что forward references

29 Фев, 20:15 #341 #671456

>>671426
>Что это?
Паскаль со своими секциями type, var, interface и т. п. устроен так, что его можно скомпилировать в один проход. http://fan-5.ru/best/best-69301.php
Это не значит, что его в один проход компилируют, но в любом случае жизнь разработчику компилятора упрощена. Например, вот такой код на C++:

int i;
yoba();
int j;

Компилятор должен будет выделить память на стеке для i и j сразу, то есть предусмотреть это, а значит, сначала распарсить код и проанализировать его. В случае паскаля же:

var i:Integer;j:Integer;
begin
yoba()

Уже как только встречен begin компилятор знает что и как выделять на стеке.

>Только на скорость компиляции модули влияют?
В основном, да. Еще вместо .h/.cpp можно было бы иметь что-то по типу C# - все в одном файле, но это уже мелочи.

Ответы>>671462

29 Фев, 20:16 #342 #671458

>>671424
Мамкины нонконформисты не нужны.

Ответы>>671482

29 Фев, 20:19 #343 #671462

>>671456
И последний вопрос по модулям. Можно не подключать весь модуль, а только часть его функционала? Например не весь algorithm, а только sort из него.

Ответы>>671471>>671475>>671492

29 Фев, 20:22 #344 #671471

>>671462
Я что-то проспал и модули включили в стандарт C++?

Ответы>>671474

29 Фев, 20:23 #345 #671474

>>671471
Нет. Только будут. Но ведь они везде одинаковые? Ну или почти одинаковые?

Ответы>>671477>>671484

29 Фев, 20:23 #346 #671475

>>671462
Нет, вась, модули в C++ не завезли. Всё лишнее говно в любом случае будет отрезано линковщиком, даже в случае пропускания компилятором по какой-то причине.

29 Фев, 20:24 #347 #671477

>>671474
Это ещё не факт.

Ответы>>671483>>671497

29 Фев, 20:26 #348 #671482

>>671458
>нонконформисты
Это типа кто не пишет на поц-кале, как в школе учили, тот нонконформист?

29 Фев, 20:26 #349 #671483

>>671477
Почему? Что в них плохого?

29 Фев, 20:26 #350 #671484

>>671474
Как раз из-за того, что у разных членов комитета по стандартизации разные взгляды на то, какими должны быть модули (на самом деле подставь любой FEATURE_NAME вместо курсива), стандарты принимаются так медленно.

Ответы>>671486

29 Фев, 20:27 #351 #671486

>>671484
Вот суки. Путина на них нет. Он бы им устроил вертикаль власти. Сразу бы все стандарты приняли. Пятилетку в четыре года.

29 Фев, 20:29 #352 #671490

Сделяль две функции
http://pastebin.com/6SPCmKap

Запустил в двух тредиках, заджойнил. Вввод второго пездюка вообще игнорится. Что я принципиально делаю не так?

Ответы>>671528

29 Фев, 20:30 #353 #671492

>>671462
> часть его функционала
В бинарник суется (имеется ввиду статическая линковка) только то что ему нужно. Исключение естественно хедеры, если тебе кажется что хедер дохуя жирный то нужно вручную резать. Кроме теймплейтов, они превращаются в код только при использовании.

29 Фев, 20:39 #354 #671497

>>671477
В них - ничего. Но они 20 лет осиливали простенький вывод типов, просто потому что сишники из комитета нихатели. То же самое и тут.

29 Фев, 20:52 #355 #671512

Я ньюфаг, как сделать чар нулевым? Т.е. ''.

Ответы>>671513>>671515

29 Фев, 20:53 #356 #671513

>>671512
char c = 0;

Ответы>>671520

29 Фев, 20:55 #357 #671515

>>671512
char c = '\0';

Ответы>>671520

29 Фев, 20:57 #358 #671520

>>671515
>>671513
А как сделать так, чтобы он отображался пустым?
Т.е. я хочу сделать так, чтобы coins. тут было заместо s пусто, а не пробел. У меня эта буква s в отдельном чаре идёт.

Ответы>>671527

29 Фев, 20:59 #359 #671527

>>671520
Вот строчки кода:
int one_cent = 0;
std::cin >> one_cent;
char one_ending = 's';
if (one_cent == 1) one_ending = '0';
А что в one_ending поставить чтобы там было пусто?
У меня потом вывод идёт:
std::cout << "You have " << one_cent << " one cent coin" << one_ending << "." << std::endl;

Ответы>>671584

29 Фев, 21:00 #360 #671528

>>671490
бумп

29 Фев, 21:23 #361 #671584

>>671527
Попробуй '\0'. В ascii нет пустого символа, в юникоде должно что-то быть, например есть "\u200B" - "пробел нулевой длины". Второй вариант написать не в одну строку.

Ответы>>671605

29 Фев, 21:36 #362 #671605

>>671584
Пробовал, но там как пробел показывается.
НУ ладно, я уже переписал по другому.
Кстати, а куда тут лучшекод вставлять чтобы вам показать?

Ответы>>671608

29 Фев, 21:38 #363 #671608

>>671605
past ebin.com

Ответы>>671612

29 Фев, 21:39 #364 #671612

>>671608
Ну-ка: http://pastebin.com/J2TRqn5A

Ответы>>671619>>671622

29 Фев, 21:46 #365 #671619

>>671612
int dollar = 0;
while (summ >= 100)
{
summ -= 100;
dollar++;
}

Это называется деление с остатком.

Ответы>>671622>>671636

29 Фев, 21:47 #366 #671622

>>671612
>>671619
К тому же,почему >= 100? 100 центов это не даллар?

Ответы>>671636

29 Фев, 21:51 #367 #671636

>>671622
Ну да, забыл = убрать.

>>671619
Но тут всё верно, так? Кроме >=.

Ответы>>671741

29 Фев, 21:59 #368 #671647

>>670522
бамп вопросу

29 Фев, 22:59 #369 #671741

>>671636
>>=

Ответы>>671746

29 Фев, 22:59 #370 #671742

>>=

Ответы>>671746

29 Фев, 23:00 #371 #671744

>>=

Ответы>>671746

29 Фев, 23:01 #372 #671746

>>671741
>>671742
>>671744
:: forall a b. m a -> (a -> m b) -> m b

Ответы>>671769

29 Фев, 23:22 #373 #671769

>>671746
хоспади, как же это охуенно
лучшее что придумало человечество!
после goto

01 Мар, 02:18 #374 #671947

>>671318
так Б-г наказал делать

01 Мар, 02:20 #375 #671951

Господа, подскажите как поставить себе Qt в VS 2015, текстовый нормальный гайд был бы замечателен.

Ответы>>671955>>671975

01 Мар, 02:22 #376 #671955

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

Ответы>>672039

01 Мар, 04:05 #377 #671975

>>671951
Зарепортил унтерменша, не знающего про гугл

01 Мар, 09:43 #378 #672039

>>671955
А что, оно уже их беты вышло? Вроде недавно была только бета версия для 15 штудии? // Мимоmingwполуёбок

Ответы>>672103

01 Мар, 11:07 #379 #672103

>>672039
Как там, в 2015? 30 июля был релиз, в ноябре первый апдейт.

01 Мар, 12:45 #380 #672170

Анон, какие есть годные среды с автогенерацией кода по uml диаграмме классов, окромя staruml и прочего безгранично старого говна? Или есть какие-то более популярные языки моделирования?

Ответы>>672893

01 Мар, 14:43 #381 #672294

Как в C++ компилируются шаблонные класы? Для каждого используемого типа свой экземпляр?

Ответы>>672318

01 Мар, 15:06 #382 #672318

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

01 Мар, 16:37 #383 #672412

>>670120
Это лучше http://code.runnable.com/

01 Мар, 18:42 #384 #672501

Есть классы Server и Client. Клиент связан с классом Player чтобы отвечать за игровой мех на стороне собсна игрока.
Но столкнулся с тем, что на стороне сервера нужен тоже какой-то класс, который обрабатывает этих самых плееров, т.е. аналог Player на другой стороне трубы. Как бы его так обозвать хорошо, чтобы смотришь в проджект эксплорер - и сразу понятно, что эта хуйня делает.
Мне очень неловко просить помощи, я редко выхожу из ридонли

Ответы>>672506>>672526>>672553

01 Мар, 18:48 #385 #672506

>>672501
Назви его Player.

Ответы>>672508

01 Мар, 18:50 #386 #672508

>>672506
Но у меня уже есть такой класс!

Ответы>>672509>>672540

01 Мар, 18:51 #387 #672509

>>672508
Тогда Player_Na_Servere

Ответы>>672515

01 Мар, 18:55 #388 #672515

>>672509
Братиш, зачем ты так.

01 Мар, 19:12 #389 #672523

Народ. Какие опенсорс проекты на плюсах есть, в уоторые можно коммитить? Кроме суперспецефических вещей вроде rethinkdb и няшной сишечки.

Ответы>>672530>>672531

01 Мар, 19:15 #390 #672526

>>672501
Почему и на сервере не использовать тот же класс?

01 Мар, 19:20 #391 #672530

>>672523
mpv

01 Мар, 19:20 #392 #672531

>>672523
Clang, llvm, qtcreator, qt, casablanka, openvr, opencv. А вообще ты охуел немного: первая ссылка в гугле https://github.com/trending/cpp

01 Мар, 19:27 #393 #672540

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

Ответы>>672541

01 Мар, 19:28 #394 #672541

>>672540
Но разумно ли это в данном случае?

Ответы>>672578

01 Мар, 19:59 #395 #672553

>>672501
RemotePlayer или ClientPlayer

01 Мар, 20:02 #396 #672555

Вдогонку:

Когда заходишь в проект и видишь RemotePlayer, сразу подразумевается, что есть другие плееры и все они наследники AbstractPlayer'а

Ответы>>672568

01 Мар, 20:23 #397 #672568

>>672555
Всё-таки у серверного и клиентского слишком разный функционал, чтобы так делать.

01 Мар, 20:43 #398 #672578

>>672541
А что не разумного? Код клиента в своем неймспейсе, код сервера в своем. Если боишся неймспейсов назви PlayerServerModel и PlayerClientModel. Но подобные многосложные имена ничем не лучше неймспейсов - ты просто пытаешся с помощью префикса/суффикса решить то что должно решаться неймспейсами.

Ответы>>672622

01 Мар, 21:29 #399 #672622

>>672578
Опять таки, Server класс есть, выходит неймспейс надо как-то мудрено называть, ОПЯТЬ ТАКИ.
Сука, именовать эту всю дичь занятие из нервных.

01 Мар, 22:53 #400 #672778

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

Ответы>>672790

01 Мар, 23:07 #401 #672790

>>672778
> неймспейсы хуита мутная
> буду использовать макросы

Ответы>>672791

01 Мар, 23:08 #402 #672791

>>672790
Давай расскажи, как ты здесь видишь применение неймспейсов? Удобно пиздец дублировать половину кода и выдумывать охуительные имена.

Ответы>>672799>>672959

01 Мар, 23:17 #403 #672799

>>672791
server::Player client::Player

Ответы>>672801

01 Мар, 23:18 #404 #672801

>>672799
Бред. А потом еще server::game client::game да?

Ответы>>672839>>672848

01 Мар, 23:31 #405 #672839

>>672801
А ты как сделаешь?

Ответы>>672847

01 Мар, 23:32 #406 #672847

>>672839
через жопу

01 Мар, 23:33 #407 #672848

>>672801
> да?
Нет конечно. Нужно server::Game и client::Game.

Ответы>>672851

01 Мар, 23:35 #408 #672851

>>672848
Да

Ответы>>672858

01 Мар, 23:37 #409 #672858

>>672851
Хуй на.

01 Мар, 23:55 #410 #672893

Бамп вопросу >>672170

02 Мар, 01:19 #411 #672959

>>672791
>Удобно пиздец дублировать половину кода
Ну так вынеси эту функциональность в common. А вообще покажи код

129 Кб, 256x256

чё там в новых версиях 02 Мар, 07:54 #412 #673101

Сейчас для повышения производительности функции ещё пишут инлайнами или уже не надо?

Ответы>>673125>>673136

02 Мар, 09:19 #413 #673125

>>673101
Конпелятор сам решает, инлайнить ли функции. И inline не делеает то, что ты думаешь.

Ответы>>673127>>673193

02 Мар, 09:27 #414 #673127

>>673125
А что он делает, inline?

Ответы>>673144

02 Мар, 09:44 #415 #673136

>>673101
Пишут, но зачем, не в курсе. Думаю, в 95% случаев это не нужно.

Ответы>>673193

02 Мар, 10:05 #416 #673144

>>673127
Намекает, что можно бы заинлайнить, не больше.

02 Мар, 10:26 #417 #673151

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

02 Мар, 10:42 #418 #673163

Сука, как в этом ебучем крестовом <random> получить ебучий рандомный char, блядь?
Понахуячили кучу каких-то адапторов, генераторов, дистрибуторов что теперь хуй проссышь.

Ответы>>673178>>673179>>673498

02 Мар, 11:06 #419 #673176

>>670836
Не "на", а "в".

02 Мар, 11:08 #420 #673178

>>673163
Задай границы и конвертируй цифры в чары, червь.

02 Мар, 11:09 #421 #673179

>>673163
И вообще, лабы идут на хуй.

02 Мар, 11:55 #422 #673193

>>673136
>>673125
Недавно подняли производительность критического участка на 20% расставив __attribute__((always_inline)) вокруг нескольких методов, после того как дизассемблинг показал, что компилятор по своим соображениям отказывался их инлайнить. Просто inline нужен только для исключения конфликта имен имплементаций в хидерах, собственно к инлайнингу он сейчас имеет очень слабое отношение, компилятор и так пытается все инлайнить.

Ответы>>673255

60 Кб, 576x1024

02 Мар, 12:35 #423 #673225

>>663494 (OP)
А какая типичная работа на C++?
Например на php это какой нибудь круд, nodejs ֊ хипстерская фигня с вебсокетами.

Ответы>>673229

02 Мар, 12:38 #424 #673229

>>673225
Серверсайд, хайлоад, эмбеддед, геймдев.

Ответы>>675400

02 Мар, 13:10 #425 #673255

>>673193
Хы. Александреску рассказывал, как он вынужден был наоборот просить компилер не инлайнить, когда в фейсбуке оптимизировал что-то.

Ответы>>673258>>673259

02 Мар, 13:13 #426 #673258

>>673255
http://www.youtube.com/watch?v=Qq_WaiwzOtI вот здесь это было

02 Мар, 13:16 #427 #673259

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

02 Мар, 14:06 #428 #673290

>>663494 (OP)
> FLTK - графические интерфейсы - http://fltk.org
Господи, либо я дурак, либо эта библиотека говно.
Я, блять, не могу создать обычный чеклист. Гружу я hold_browser, а дальше что? Пытаюсь установить callback функцию для него, а мне хуй в лицо, там нихуя не понятно, в документации нихуя не понятно, примеров нихуя нет. Тупое говно тупого говна

Ответы>>673330>>673480

02 Мар, 14:49 #429 #673330

>>673290
Просто ты туповатый, лол.

02 Мар, 17:38 #430 #673480

>>673290
либа же изи. ты реально туповат

02 Мар, 17:55 #431 #673498

>>673163
Срандом пользуйся, червь. Тебе этот <random> еще 10 лет не пригодится, учитывая твои вопросы

Ответы>>673524

02 Мар, 18:17 #432 #673524

>>673498
>Срандом пользуйся
Охуеть советы, за сранд в 2016 году надо руки отрывать.

Ответы>>673536

02 Мар, 18:32 #433 #673536

>>673524
Долбоеб ебаный, назови хоть одну причину, почему этому долбоебу не подойдет сранд?

Ответы>>673554

02 Мар, 18:48 #434 #673554

>>673536
Этому долбоебу и брейнфак подойдет, это же не повод. Сранд, как и значительная часть libc/posix, это примитивные API прямиком из 70х, использующие не синхронизированные глобальные переменные на каждый чих. А значит, если этот долбоеб решит использовать все свои 16 ядер и запустить код в несколько потоков, он внезапно обнаружит, что 1) вероятностное распределение съехало нахуй, т.к. потоки переписывают один и тот же сид 2) начались жесткие тормоза, т.к. перезапись глобальной переменной из разных потоков инвалидирует кэш. Ну и плюс диапазон у него ограниченный и слегка ебанутый.

И зачем, спрашивается, связываться с этим говном мамонта, когда у тебя такой-то <random> есть? Две лишние строчки написать тяжело? Пиши на баше, епта, используй $RANDOM.

Ответы>>673563

02 Мар, 18:51 #435 #673563

>>673554
> несколько потоков для перевода символов из ascii кода

Ответы>>673591

02 Мар, 18:57 #436 #673574

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

Ответы>>673579

02 Мар, 19:00 #437 #673579

>>673574
Что именно ты называешь "массивом"?

Ответы>>673580

02 Мар, 19:01 #438 #673580

>>673579
T* arr

Ответы>>673587

02 Мар, 19:09 #439 #673587

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

Ответы>>673786

02 Мар, 19:11 #440 #673591

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

Ответы>>673595>>673596

02 Мар, 19:14 #441 #673595

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

Ответы>>673610

02 Мар, 19:15 #442 #673596

>>673591

> я использую разные API для однопоточного и многопоточного кода
> я пишу немасштабируемый код, т.к. мне нравится потом ебаться с конкурренси багами
> получить ебучий рандомный char в лабе
Ты действительно настолько даун? Отмасштабируй очко себе.

Ответы>>673610

02 Мар, 19:20 #443 #673610

>>673595
>>673596
> Лабу можно писать наотъебись, в продакшене я бы написал нормально.
> Но я не умею нормально, т.к. я всегда писал наотъебись.
И эти вот долбоебы потом приходят в профессию и начинают гнать говнокод мегабайтами.

Ответы>>673612

02 Мар, 19:22 #444 #673612

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

Ответы>>673624

02 Мар, 19:28 #445 #673624

>>673612
Например те, кто не понимает, что сранд в крестах вообще не нужно использовать, уже 5 лет как.

Ответы>>673625

02 Мар, 19:28 #446 #673625

>>673624
И что же надо использовать вместо сранда?

Ответы>>673632

02 Мар, 19:37 #447 #673632

>>673625
http://en.cppreference.com/w/cpp/numeric/random

Если хочется просто, то http://en.cppreference.com/w/cpp/numeric/random/random_device/operator(), но он может каждый раз в /dev/random лезть, правильнее создать локальный инстанс генератора, например std::mt19937, иницилизировать его сидом из std::random_device и и потом получать значения из диапазона через std::uniform_int_distribution.

02 Мар, 19:52 #448 #673645

Хули вы тут устроили, блядь. Если знает, почему стоит использовать не std::rand, пусть использует его. Если не знает, то пусть прочитает и использует то, что больше отвечает ситуации. А то определили два пути: говнокод и йоба архитектура, но почему-то компромисса вам не завезли.

Ответы>>673677

02 Мар, 19:52 #449 #673646

Анон, все ли возможные входные данные я учитываю?
https://ideone.com/jQIsea

Ответы>>673648>>673649

02 Мар, 19:54 #450 #673648

>>673646
у тебя там segfault

Ответы>>673662

02 Мар, 19:54 #451 #673649

>>673646
> Node *fast = head->next->next;
Бабах.
> fast = fast->next->next
Пиздых.

Ответы>>673662

02 Мар, 20:07 #452 #673662

>>673648
>>673649
А так лучше? https://ideone.com/LdUIx0
Можно ли сделать красивее?

Ответы>>673670

02 Мар, 20:13 #453 #673670

>>673662
Например, вот так: https://ideone.com/wxRZar
Сегфолтов теперь быть не должно. Можно было бы подумать, что на списках длины 2-3 цикл не всегда найдется, но по доказательству корректности алгоритма, когда мы попадаем в цикл, указатели всегда встретятся.

02 Мар, 20:24 #454 #673677

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

Ответы>>673739

02 Мар, 20:58 #455 #673707

Аноны, нужна помощь по qt c++, а именно qftp

ftp.cd("/PICTURES/Apple");

QFile file("C:\\Temp\\"+dir);
file.open(QIODevice::WriteOnly);

ftp.list();

while (!(ftp.get("apleiphone4s+2st300mm.WPC",&file))) {Sleep(500);}
file.close();

Файл в папке создаётся, однако он пустой, прорыл в и-нете материал, и нихуя не понял.

Спасибо, Аноны.

Ответы>>673751

02 Мар, 21:26 #456 #673739

>>673677
Ситуация: тебе надо сделать сраную лабу, в которой ты хочешь заполнять массив автоматически, а не вручную. Ты уже знаешь про std::rand и даже если не знаешь - все что тебе нужно прочитать - описание std::rand. Даже про srand читать не обязательно. В процессе чтения ты увидишь, что std::rand является небезопасным, а в C++11, оказывается, есть нормальные решения.

Ок,- скажешь ты. - Давайте использовать современные методы. - И открываешь документацию к <random>. Твоему взору предстанет стена текста, на которой ты сразу же увидишь минимум 15 сущностей, которые надо разбирать, а пример с кодом нихуя не говорит о том, как бы быстро заюзать эту охуительную безопасную йобу. Тут же ты вспоминаешь, что вообще-то ты не ставишь себе задачи изучить весь random(по крайней мере, сейчас), а беглый ее осмотр не внушает тебе уверенности, что это займет 5 минут. Что ты выберешь: потратить неизвестно сколько времени на изучение <random> или по-быстрому заюзать std::rand, который справится с твоей задачей на ура?
Конечно, если ты и так планируешь изучить <random>, то лучше выбрать первый вариант. Но если ты вообще не собираешься писать на C++, или у тебя нет времени, или ты блять просто не хочешь отвлекаться на побочную хуиту, то скажи, какого хуя ты тут выступаешь, мразь? Только честно. Как вообще использование std::rand в ебаной лабе на сортировку мешает мне выбрать нужное решение перед написанием продакшен кода? Как, блять, ну ты объясни мне, пожалуйста!

Я что еще, когда что-то изучаю, должен код через TDD ебашить? Чтоб тебя удовлетворить, пидор? А ты не охуел там?

P.S. Кроме всего прочего вангую в тебе джуниора-оверкиллщика, который на сугубо утилитарные вещи городит по 5 абстракций.

Ответы>>673750>>673951>>673961

02 Мар, 21:38 #457 #673750

>>673739
За то время, что ты тут ноешь, ты могу бы уже 5 раз скопипастить нужный кусок из примера и двинуться дальше. Но нет, блядь, надо начать обосновывать совой говнокод, говонокдость которого ты сам прекрасно осознаешь.

Ответы>>673756

356 Кб, 1864x1270

02 Мар, 21:40 #458 #673751

>>673707
Ты вообще в документацию заглядывал?
Охуеть у нас тут спам-лист

Ответы>>674136

02 Мар, 21:44 #459 #673756

>>673750
Так погоди-ка, мразина. И чем ты отличаешься от той макаки, которая хуячит std::rand в продакшене, если такое советуешь? Ты же советуешь заиспользовать либу не глядя, не разобравшись ней, не зная как оно настраивается и как оно себя поведет в дальнейшем. Ебать ты дно, все с тобой ясно.

Ответы>>673758>>673767

02 Мар, 21:45 #460 #673758

>>673756
Я повторяюсь снова, но я подписываюсь под словами этого благородного дона, чей навык красноречия просто сияет своим светочем.

02 Мар, 21:55 #461 #673767

>>673756
Очевидно же, хуячить <random> не глядя лучше, чем хуячить std::rand не глядя, почему - написано выше. STL ты и так используешь, если ты, конечно, не из тех мудаков, что используют libc в крестовом коде. А ты можешь быть как раз из тех мудаков, судя по твоей анальной привязанности к std::rand.

Ответы>>673771

02 Мар, 21:59 #462 #673771

>>673767
Ты тупой еблан. Хуячить не глядя вообще нельзя, а хуячить std::rand глядя намного проще, чем делать то же самое с <random>

Ответы>>673781

02 Мар, 22:06 #463 #673781

>>673771
Хуячить std::rand глядя вообще невозможно, т.к. первый же гуглежь показывает, что рандом в современных крестах делается через <random>, а std::rand - это полу-депрекейтед пережиток для совместимости с няшной. Ну и если тебе "проще" важнее, чем "правильно", то тебе в пыхипи надо переквалифицироваться.

Ответы>>673797

02 Мар, 22:10 #464 #673786

>>673587
А чо не весь сразу?

Ответы>>673788>>673789

02 Мар, 22:13 #465 #673788

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

02 Мар, 22:14 #466 #673789

>>673786
В самом массиве у тебя же указатели хранятся, его мало смысла копировать.

02 Мар, 22:22 #467 #673797

>>673781
>Хуячить std::rand глядя вообще невозможно
Ты точно ебанутый. Стандарт явно говорит:
>The rand function has the semantics specified in the C standard, except that the implementation may specify that particular library functions may call rand.
>It is implementation-defined whether the rand function may introduce data races

Если ты это знаешь, то ты осознанно используешь эту функциональность.

>Ну и если тебе "проще" важнее, чем "правильно", то тебе в пыхипи надо переквалифицироваться.

Что за "правильно", блять? У нас тут не религия. Есть конкретный критерий: the rand function may introduce data races. Устраивает? Заебись. Не устраивает - пожалуйста, проследуйте в <random>.

Так что да, "проще" в данном случае уместно. А вообще очень полезно думать не в рамках "правильно", а в рамках "уместно". Почему-то когда люди слышат "правильно", они часто начинают выключать мозг, вместо того, чтобы самим давать оценку.

Ответы>>673954

02 Мар, 23:57 #468 #673919

Я чото не понял, неужто в гугле не нашлось, как использовать <random>?

Там чото около трех строчек для инициализации, зато не надо вырвиглазное целочисленное деление делать. У Лававея было выступление на cppcon, где он ясно и небеспочвенно сказал, что не надо использовать сишный rand.

03 Мар, 00:20 #469 #673951

>>673739
> видишь стену текста
Видишь uniform_int_distribution, в которой сразу рабочий пример. А выбирать генератор будешь хотя бы узнаешь чем один отличается от другого.
http://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution

03 Мар, 00:27 #470 #673954

>>673797
Ну да, ну да, "мне только лабу зделоть", "чо-то как-то слишком переусложненно", "ну и что что говно, мне и так норм", "я как писатель лаб знаю лучше".
Не хотим узнавать и использовать правильные и корректные подходы, хотим как диды на PDP-7 городить костыли, нам же только лабы сдать, ебись оно дальше все конем.

03 Мар, 00:34 #471 #673961

>>673739
Если тебе похуй на рандомность, то проще всего нихуя не открывать, а накалякать на коленке линейно-конгруэнтный генератор в три строчки.

03 Мар, 01:03 #472 #673975

А у меня лабораторная была про реализацию законов распределения, 5 штук (нормальный, экспонентный, треугольный и еще пара, не помню), тоже <random> юзать надо было?

Ответы>>674096

03 Мар, 02:07 #473 #673997

Нужен кто-то проходивший книгу Стровструпа. Собственно нужна помощь в задании к разделу 5. Что именно от меня хочет автор ? я должен все 25 строчек вставить в его код сверху?Т.е. я должен сначала исправить все ошибки во всех 25ти фрагментах а затем сыграть в "угадайку" где и что должно стоять?

Ответы>>673998

85 Кб, 874x617

138 Кб, 903x607

03 Мар, 02:08 #474 #673998

>>673997
>отвалились скрины
пофиксил

Ответы>>674016>>674564

03 Мар, 04:01 #475 #674016

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

03 Мар, 09:32 #476 #674096

>>673975
Да, и писать свой класс для распределения, вместо стандартных :3

03 Мар, 10:57 #477 #674136

>>673751
пиздец, я пиздоглазый. Спасибо, Анон

03 Мар, 12:21 #478 #674173

Анон, поясни,пожалуйста, ещё про qftp ( Я вижу, что он дохуя популярен в этом треде)
Поясни как им правильно пользоваться?
Это то есть каждую команду надо проверять на commandFinished(int, bool) ? Или можно ждать после всех команд ftp.done?

Ответы>>674593>>674596

03 Мар, 13:17 #479 #674204

Sup, /pr. Я нуб, пытаюсь написать раннер, как сделать рандомно генерирующийся уровень? Игра сделана на c++ с библиотекой sfml. Карта в формате tmx.

Ответы>>674222>>674223

03 Мар, 13:57 #480 #674222

>>674204
> рандомно генерирующийся уровень
std::random_device, std::mt19937, std::uniform_int_distribution.

Ответы>>674223

03 Мар, 13:59 #481 #674223

>>674204
>>674222
Бля, криво объяснил. Понятное дело, что он по определенному алгоритму генерироваться будет, скорее всего просто из готового набора чанков будут случайно выбираться некоторые. Но как это можно сделать без перезагрузки игры, на ходу?

Ответы>>674235>>674566

03 Мар, 14:32 #482 #674235

>>674223
Когда доходишь до конца одной карты начинаешь показывать следующую.

03 Мар, 18:44 #483 #674564

>>673998
Контрольные вопросы можно устно.

03 Мар, 18:45 #484 #674566

>>674223
По принципу paging geometry вроде как, постранично то есть. Мб так нагуглишь чот.

03 Мар, 18:59 #485 #674593

>>674173
> что он дохуя популярен в этом треде
к популярности все эти вопросы никак не относятся. просто один долбоёб всё никак мануал не осилит вот и спамит сюда

Ответы>>674596

03 Мар, 18:59 #486 #674596

>>674173
>>674593
ты кстати тоже иди того, rtfm

03 Мар, 22:24 #487 #674885

>>663494 (OP)
помогите пожалуйста понять, что не так с кодом
http://pastebin.com/bUCXWqUY
есть квадратная матрица размера n, и мне нужно найти длину наибольшей возрастающей последовательности, то есть если матрица размера 3, и в ней элементы 1 2 3 4 5 4 3 2 2, то наибольшая последовательность 1 2 3 4 5,и её надо вывести, но мой код почему-то не работает, подскажите пожалуйста, в чём проблема и каким образом можно вывести саму последовательность?

Ответы>>674980>>675015

147 Кб, 1280x964

Хочу в С++ вкатиться. 03 Мар, 23:11 #488 #674965

Посоны, хочу в C++ вкатиться. Погуглил, как окна создаются. Нагуглил простой пример с WinAPI. Пиздец, бля, че это вообще за хуйня? Как в ней разобраться вообще???
Как мне сделать обычное окно, с двумя кнопочками (Start, Reset), текстовой формой, куда коэффициент вбивается и областью прорисовки в центре окна, куда будет выводиться график функции?

Ответы>>674968>>674970>>674971>>675045

03 Мар, 23:14 #489 #674968

>>674965
Берёшь Qt, в Qt Designer шлепаешь кнопки, поле, текст, создаешь action для кнопок, пишешь простенький код для твоих целей.
Если не справишься, то тебя ничего не спасет и ты не сдашь лабу

03 Мар, 23:14 #490 #674970

>>674965
Качай Qt или студию.

Ответы>>674978

03 Мар, 23:15 #491 #674971

>>674965
Между тем, даже на винапи такую програмку можно за вечер написать

Ответы>>674978

03 Мар, 23:21 #492 #674978

>>674970
Вот это оно? http://rutracker.org/forum/viewtopic.php?t=3941453
>>674971
Где вообще за это винапи почитать? С примерами там, как кнопочку сделать, как формочку текстовую и т.д.

Ответы>>675011>>675050>>675267

03 Мар, 23:25 #493 #674980

>>674885
ну помогите же

Ответы>>674984

sage 03 Мар, 23:28 #494 #674984

>>674980 -> >>663494 (OP)
>Лабы идут на хуй.

03 Мар, 23:40 #495 #675011

>>674978
VS 2015 Community edition с сайта Microsoft. Бесплатно.
Примеры в интернете. Тысячи их

03 Мар, 23:42 #496 #675015

>>674885
1. Ошибка внутри else - temp надо в 1 сбрасывать в любом случае, а не только когда temp>count
2. Ты можешь завести begin и temp_begin=0: каждый раз когда попадаешь тот else, если temp>count, сохраняешь begin=temp_begin, а temp_begin в любом случае делаешь = текущий элемент.
Конец отрезка с помощью count можно посчитать.
Может быть чуть проще будет сохранять не начало отрезка, а его конец, если он побил рекорд, тогда temp_end не нужен - сразу в end пишется результат в ветке temp>count.

03 Мар, 23:53 #497 #675045

>>674965
>Нагуглил простой пример с WinAPI. Пиздец, бля, че это вообще за хуйня?
Теперь ты знаешь, что с ним связываться не стоит.
Qt это более-менее стандартное решение для C++

03 Мар, 23:56 #498 #675050

>>674978
>Вот это оно?
>2012
кек

http://www.qt.io/download-open-source/ вот это оно.

Ответы>>675064

04 Мар, 00:03 #499 #675064

>>675050
Так там на рутрекере русская версия же. Я на инглише не очень шпрёхаю.

Ответы>>675069>>675083

04 Мар, 00:06 #500 #675069

>>675064
Русская версия чего?

Ответы>>675075

04 Мар, 00:10 #501 #675075

>>675069
Интерфейса, я так понял.

Ответы>>675076>>675078

259 Кб, 1457x770

04 Мар, 00:11 #502 #675076

>>675075
Интерфейс отклеился

04 Мар, 00:11 #503 #675078

>>675075
У библиотеки нет интерфейса.
Есть ты про QtCreator, то он со всеми языками поставляется (на самом деле я не проверял, но в сырцах лежат переводы в том числе и на русский).

130 Кб, 919x654

04 Мар, 00:14 #504 #675083

>>675064
> русская версия
А откуда она по твоему взялась?

Ответы>>675085>>675120

04 Мар, 00:16 #505 #675085

>>675083
>А откуда она по твоему взялась?
МБ он думает это Фаргус перевёл.

216 Кб, 289x417

04 Мар, 00:39 #506 #675120

>>675083
>http://www.qt.io/download-open-source/ вот это оно.
На ХРюху пойдет?
Что скажешь по поводу вот этого?
>Тем не менее, использование Qt нельзя однозначно назвать хорошей практикой. Во многом это уже не C++, а другой язык, со своими концепциями и паттернами. Qt-код требует дополнительного препроцессинга при помощи встроенных в Qt утилит (т.н. метаобъектная компиляция), поэтому не получится просто подключить Qt как обычную библиотеку и использовать свой любимый компилятор без дополнительного софта. Нельзя сказать, что это существенное препятствие, но есть мнение, что использование Qt нарушает дух C++, раздувает машинный код и порождает макак-любителей кодогенерации.

Скачал также книжечку (пикча). Норм или фигня?

Ответы>>675157>>675383

04 Мар, 01:23 #507 #675157

>>675120
5.5.1 у меня на XP пошла. Только qcombobox в тестовом проекте выдаёт эксепшн почему-то, пока не смотрел почему.

Ответы>>675165

47 Кб, 908x933

04 Мар, 01:40 #508 #675165

>>675157
this?

Ответы>>675166

04 Мар, 01:40 #509 #675166

>>675165
Если у тебя VS2013

Ответы>>675178

04 Мар, 01:50 #510 #675178

>>675166
Не.
>Qt 5.5.1 for Windows 32-bit (MinGW 4.9.2, 1.0 GB)
Этот?

Ответы>>675182

04 Мар, 01:51 #511 #675182

>>675178
Попробуй это взять.
Там в комплекте не только библиотека и QtCreator, но ещё и компиляторы идут.

Ответы>>675223

19 Кб, 508x450

04 Мар, 02:29 #512 #675223

>>675182
Source Components и MinGW мне, как новичку, нужны?

Ответы>>675232

04 Мар, 02:33 #513 #675232

>>675223
Ну, MinGW тебе точно нужен, если у тебя студии нет (только я не понял, почему там 2 MinGW. Или верхний — это MinGW-сборка Qt, а нижний — сам тулчейн?).

А Source — ХЗ.

Ответы>>675234

11 Кб, 506x128

9 Кб, 770x126

14 Кб, 506x167

04 Мар, 02:38 #514 #675234

>>675232
Вот это так и должно быть?

Ответы>>675236>>675238

13 Кб, 506x154

14 Кб, 506x167

04 Мар, 02:40 #515 #675236

>>675234
Пачками полезли

Ответы>>675240

04 Мар, 02:41 #516 #675238

>>675234
Лол.. Ну поставь http://www.microsoft.com/ru-RU/download/details.aspx?id=40784

Ответы>>675243>>675247

9 Кб, 770x126

04 Мар, 02:43 #517 #675240

>>675236
Не запускается.

Ответы>>675243

04 Мар, 02:43 #518 #675243

>>675238
>>675240

25 Кб, 485x300

04 Мар, 02:46 #519 #675247

>>675238
Охуенно

Ответы>>675249>>675253

04 Мар, 02:47 #520 #675249

>>675247
Походу, XP — слишком тухлая версия.

04 Мар, 02:48 #521 #675253

>>675247
Попробуй что-нибудь постарее. Может даже не пятую версию. А 4.8 http://download.qt.io/archive/qt/

Ответы>>675267

04 Мар, 02:56 #522 #675267

>>675253
Вот это пойдет? >>674978
Как-то слишком долго с qt.io качается.

Ответы>>675269

04 Мар, 02:57 #523 #675269

>>675267
>Как-то слишком долго с qt.io качается.
http://download.qt.io/archive/qt/4.8/4.8.6/qt-opensource-windows-x86-mingw482-4.8.6-1.exe.mirrorlist

Ответы>>675283

04 Мар, 03:04 #524 #675283

>>675269
Компилятор в комплект входит? Или его где-то отдельно искать?

Ответы>>675284

04 Мар, 03:05 #525 #675284

>>675283
Судя по отличию в размерах mingw и не-mingw-версий — входит.

Ответы>>675308

20 Кб, 503x393

04 Мар, 03:23 #526 #675308

>>675284

Ответы>>675310

04 Мар, 03:24 #527 #675310

>>675308
Гм. Ну, значит, качай.

Ответы>>675315

59 Кб, 754x583

04 Мар, 03:30 #528 #675315

>>675310
Распаковал. Не могу найти install.exe

Ответы>>675316

04 Мар, 03:31 #529 #675316

>>675315
Это просто архив.

Ответы>>675322

118 Кб, 1280x1024

04 Мар, 03:35 #530 #675322

>>675316
Оно? Куда теперь тыцать, чтобы hello_world.exe сделать? :3

Ответы>>675324

04 Мар, 03:37 #531 #675324

>>675322
https://wiki.qt.io/Qt_for_Beginners#Our_first_window
Дальше уже сам.

Ответы>>675329

10 Кб, 482x207

04 Мар, 03:51 #532 #675329

>>675324
Qt Creator тоже надо качать?

Ответы>>675330

04 Мар, 03:52 #533 #675330

>>675329
Г. А его не было в инсталлере qt?
Ну, качай http://download.qt.io/archive/qtcreator/

Ответы>>675333

04 Мар, 03:57 #534 #675333

>>675330
Запустил какую-то бяку "qtvars.bat", хз зачем. Теперь проц на 100% грузит и что-то там в дос-окне мигает.
Creator любой на хрюшку встанет? Или старые версии качать?

Ответы>>675335

04 Мар, 03:59 #535 #675335

>>675333
Попробуй начать с последних, у них время модификации ещё старее, чем у инсталлера qt.

Ответы>>675344

64 Кб, 1016x733

04 Мар, 04:20 #536 #675344

>>675335
Тут мне их теперь походу надо всё между собой посоединять, что понаустанавливал?

Ответы>>675345>>675346

04 Мар, 04:21 #537 #675345

>>675344
Видимо да.

Ответы>>675351

17 Кб, 908x484

04 Мар, 04:23 #538 #675346

>>675344

Ответы>>675348>>675350>>675352

04 Мар, 04:27 #539 #675348

>>675346
попробуй http://doc.crossplatform.ru/qtcreator/2.0.1/creator-project-qmake.html

04 Мар, 04:29 #540 #675350

>>675346
http://doc.crossplatform.ru/qt/4.3.2/install-win.html или лучше засунь qt в path (третий пункт по ссылке)

Ответы>>675352>>675355

45 Кб, 1008x584

45 Кб, 1008x584

83 Кб, 1280x994

04 Мар, 04:29 #541 #675351

>>675345
Требует, чтобы я ему указал путь к компилятору и к отладчику. Что из этой всей пачки ехе-шников компилятор, а что - отладчик?

Ответы>>675352

04 Мар, 04:30 #542 #675352

>>675346
>>675350
>>675351
http://doc.qt.io/qt-4.8/install-win.html#step-3-set-the-environment-variables

Ответы>>675359

04 Мар, 04:36 #543 #675355

>>675350
"F:\mingw32\bin" тоже на всякий случай в path запиздохал :3

Ответы>>675356

04 Мар, 04:37 #544 #675356

>>675355
Это не на всякий случай, там написано так сделать:
> You may also need to ensure that the locations of your compiler and other build tools are listed in the PATH

04 Мар, 04:39 #545 #675359

>>675352
Я их все три в path подобавлял
F:\Qt\4.8.6\bin;
F:\mingw32\bin;
F:\Qt\qtcreator-2.5.2\bin

Ответы>>675361>>675363

04 Мар, 04:42 #546 #675361

>>675359
Посмотри ещё http://gromr1.blogspot.ru/2014/04/install-qt-4-8-5-mingw-on-windows.html

Естественно, не надо прямо делать всё, что там перечислено.
1) Версии и пути у тебя свои.
2) Собирать GDB вряд ли нужно.
3) Если ты добавил всё в PATH, вряд ли нужно будет руками пути прописывать, компилятор и Qt должны савтодетектиться.

Может, с чем-то другим придётся повозиться.

Ответы>>675363>>675367

04 Мар, 04:45 #547 #675363

>>675359
>>675361
Ну и, до QtCreator 3, понятия "Комплект", наверное, не существовало.

92 Кб, 1015x733

04 Мар, 04:51 #548 #675367

>>675361
А как теперь из Creator попасть в Designer, чтобы побольше кнопочек в проект напихать?

Ответы>>675369

04 Мар, 04:53 #549 #675369

>>675367
Пуск -> ... -> Designer

Ответы>>675383

231 Кб, 1280x1024

04 Мар, 05:12 #550 #675383

>>675369
Ага. Кажись въехал немношк. Сенк) Пойду книгу курить >>675120

Ответы>>675386

124 Кб, 1016x734

95 Кб, 1016x734

04 Мар, 05:17 #551 #675386

>>675383
А еще такой момент. Как его скомпилировать? Где тут вообще С++ код? XML только какой-то.

Ответы>>675388

04 Мар, 05:21 #552 #675388

>>675386
https://wiki.qt.io/Basic_Qt_Programming_Tutorial

Ответы>>675390

04 Мар, 05:25 #553 #675390

>>675388
А не такой вики, только на русском?

>Я на инглише не очень шпрёхаю.

Ответы>>675393

24 Кб, 320x301

04 Мар, 05:29 #554 #675393

>>675390
Там всё в картинках

Ответы>>675396

133 Кб, 1280x1024

04 Мар, 05:51 #555 #675396

>>675393
Работает вроде

04 Мар, 06:18 #556 #675400

>>673229
Формошлепство, компьютер вижн

04 Мар, 11:20 #557 #675535

>>663494 (OP)
Сап /pr! Чем отличается буфер от потока в С?

Ответы>>675694

04 Мар, 14:50 #558 #675694

>>675535
Конкретнее. Какой буфер от какого потока?

04 Мар, 15:01 #559 #675708

test

04 Мар, 16:28 #560 #675840

Нужно передать видео в реальном времени по UDP. Какие протоколы существуют и куда копать?

Ответы>>675911

04 Мар, 17:53 #561 #675911

>>675840
познай всю силу WebRTC (c++ либы, не js интерфейса)

04 Мар, 18:07 #562 #675930

Щас бы в новый тред перекатиться.

04 Мар, 19:05 #563 #676034

Ну окей, а как с работой на этом вашем с++?
Фрилансить или удаленно работать можно?

04 Мар, 19:10 #564 #676046

ПЕРЕКАТ

https://2ch.hk/pr/res/676033.html (М)
https://2ch.hk/pr/res/676033.html (М)
https://2ch.hk/pr/res/676033.html (М)

09 Мар, 16:25 #565 #681569

Вопрос про Qt.

Как правильно сохранить дату QDate (без времени) в базу данных SQLite (.db) в таблицу с полем DATE и также считать её в формат QDate из базы данных?

"01/02/2005" в базе считывает в QDate как (invalid)
Гугол охуел, у них там работает блять
Где я долбоеб, анончик?

10 Мар, 19:38 #566 #682922

Посоветуйте легкую графическую библиотеку для работы с 2д графикой

12 Мар, 17:28 #567 #685112

Кароче, есть Qlable, через свойство Pixmap пытаюсь залить пикчу на форму. На превью отображается, а на дебаге нет. Что за хуйня?

15 Мар, 20:01 #568 #689143

При установке visual studio обязательно internet explorer нужен?

17 Мар, 17:21 #569 #690843

пиздос! не пашет dev c++, не хочет компилировать даже hello world, он просто стоит и нихуя не делает
памагити

179 Кб, 657x444

21 Мар, 16:32 #570 #694254

Прочитал
>Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004)
после 2 лет байтоёбства в K&R, за плечами поверхностное изучение 3 тома Кнута (ещё в универе), небольшой опыт писания на коленке на низком уровне (ASM), немного понимаю в модулях ядра, драйверах Linux и кросс-компиляции. Про графику не знаю вообще ничего, с трудом переделал шаблонную формочку в Qt для отслеживания своего заказа на почте. Не программист, инженер.
Цель - летом сменить работу и пойти джуниором на крестах, потому что интересно, перспективно и потому что заебало инженерить.
Собираюсь обмазаться Маерсом по STL и им же Effective C++, какие ещё советы? Нефть авансом, выручайте, анончики

Ответы>>696667>>696959

23 Мар, 18:37 #571 #696373

Программач, есть один древний пека х86, есть новый пека х64 с VS 2013 на борту. Как мне писать приложения под первый пека?

Ответы>>696685

23 Мар, 18:44 #572 #696382

Задача усложняется тем, что на старом пека ХР, на новом восьмерка

23 Мар, 22:54 #573 #696667

>>694254
если не секрет, где ты работал два года байтоёбства? и сколько получал?

23 Мар, 23:08 #574 #696685

>>696373
убейся об стену

24 Мар, 12:45 #575 #696959

>>694254
Сорт оф поддвачну. Быдлокодерство на крестах в НИИ за плечами, впереди - страх собесов и чувство, что я днище ебаное в рамках коммерческой разработки.
В шапке чот особо не нашел каких-то хинтов по рейтингу знаний так сказать. Что прям таки маст-рид и самое ходовое в вопросах на собеседованиях?

24 Мар, 20:33 #576 #697316

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

Тред утонул или удален.
Это копия, сохраненная 26 марта 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion