Двач.hk не отвечает.
Вы видите копию треда, сохраненную 16 июня 2016 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
4 Кб, 542x415
Оффициальный™ традиционный® C++ тред #33 #749082 В конец треда | Веб
Больше нету у нас ОПа.
Перекат пилить забота
Стала делом крестоёбов.
Только где взять стихоплётов?

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

TL;DR

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

Памятка ньюфагу

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

Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля. Для больших фрагментов используй внешние сервисы.


FAQ

Мотивация

Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:

  • Скорость
    C++ действительно быстрый язык — вместе с C, его прародителем, они с большим отрывом уделывают по скорости все остальные языки высокого уровня. Код на C++, как правило, медленнее аналогичного кода на C приблизительно на 0-20% а в ряде случаев C++ оказывается даже быстрее, причем замедление появляется только при использовании высокоуровневых конструкций (в C++ ты никогда не платишь за то, чего не используешь). Таким образом, если тебе требуется высокопроизводительный код, C++ станет отличным выбором.
  • Мощь
    C++, являясь одним из наиболее выразительных и мощных языков, позволяет использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментов простреливания ноги решения задачи. Как следствие, используя C++, ты можешь не думать о том, как обойти искуственные ограничения языка, а беспрепятственно выбрать наиболее подходящие к ситуации средства.
  • Популярность
    C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.

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

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

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


Литература

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

  • Для нюфань

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


    Автор(ы) Название Год Ссылка
    Бьерн Страуструп Программирование. Принципы и практика использования C++ 2016 https://yadi.sk/i/Yd6KKpLBqJSUr
    Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela
    Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u

  • Кроме того, есть еще пара старых добрых учебников для ньюфагов. Часть информации в них устарела, но многие считают, что это компенсируется их большей, по сравнению с современными учебниками, понятностью:


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

  • Best practices

    Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все:


    Автор(ы) Название Год Ссылка
    Скотт Мейерс Эффективное использование 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++11, C++14, а также последняя версия черновика стандарта C++17.

  • Тонкости языка

    Книги для тех, кто возлюбил кресты всей душой и желает углубиться в детали:


    Автор(ы) Название Год Ссылка
    Герб Саттер Решение сложных задач на C++ 2002 https://goo.gl/iWaa6S
    Герб Саттер Новые сложные задачи на C++ 2004 https://goo.gl/4nn512
    Бьерн Страуструп Дизайн и эволюция C++ 1994 https://goo.gl/FqbPwo (для легкого чтения)

  • Отдельные аспекты

    Читать по необходимости:


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


Другие обучающие материалы

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

Q: Не люблю, когда льют воду. Хочу коротких материалов по существу.
A: Вот тебе блоги, факи, референсы и всякое такое:

  • Годный блог, в котором все просто и понятно тян не нужны кококок борщ
  • Блог с хорошо расписанными фичами новых стандартов
  • Краткие описания библиотечных функций и контейнеров - на русском или более подробно на ангельском
  • Блог Герба Саттера (на ангельском)
  • Блог Скотта Мейерса (на ангельском)
  • Блог еще одной тянки, много о Qt и оптимизации (на ангельском)
  • Куча других блогов (на ангельском)
  • Большой FAQ по C++ (на ангельском)
  • Видео с CppCon (на ангельском)


Софт и библиотеки

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


Платформа Название Описание Ссылка
Windows Microsoft™ Visual Studio® Общепризнанно самая продвинутая и удобная IDE, не имеющая равных по части автодополнения и возможностей отладчика. По ссылкам справа можно скачать бесплатную редакцию последнего выпуска (2015 Community Edition). Кроме того, существуют редакции с расширенными возможностями (Professional и Enterprise). Они стоят сотни денег, но если ты студент вуза, подписанного на Dreamspark Premium, то ты можешь получить их безвоздмездно (то есть даром). Многим новичкам интерфейс студии кажется чересчур сложным, так что обязательно прочти этот гайд, если у тебя возникают проблемы с компиляцией хэллоуворда https://goo.gl/qgAAc6 (русская версия) или
https://goo.gl/WIPW9L (ангельская версия)
Все CodeLite Простая, легковесная, кроссплатформенная, швабодная IDE. Менее навороченная, чем студия, но среди бесплатных вне конкуренции. Вероятно, это наилучший вариант для новичка с *nix. Под Windows же требует чуть больше ебли с установкой компилятора MinGW/LLVM http://codelite.org/,
"sudo aptitude install codelite codelite-plugins"
для установки под *nix
Все CLion IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию на год по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует https://www.jetbrains.com/clion

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

Разумеется, установка IDE вовсе не обязательна. Ты можешь использовать текстовый редактор в связке с каким-нибудь компилятором, выбросить мышку, отрастить бороду и примкнуть к Церкви Святого Столлмана. Но лучше тогда сразу отправляйся в тред сишников, если не хочешь быть обоссанным другими сектантами за использование б-гомерзкого C++.

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

  • Статический анализатор, который умеет находить в коде ошибки и неоптимальные места. Швабодный. Есть плагин для Visual Studio
  • Более навороченный, но коммерческий аналог
  • Встроенный в clang статический анализатор
  • Детектор утечек для Visual Studio. Предельно прост в прикручивании
  • На порядок более мощная и сложная утилита для *nix, служащая тем же целям
  • Гугловские утилиты для контроля корректности кода
  • Гугловский фреймворк для автоматизации тестирования

Также не стоит забывать о том, что правильные посоны экономят свое время и нервы, используя мегагодные git и cmake во всех проектах.

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

  • boost

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

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

    Литература:


    Автор(ы) Название Год Ссылка
    Ариндам Мукерджи 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.х, полной обратной совместимости между ними нет как в пистоне, ага.

    Литература:


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

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

    Несколько специализированных библиотек для часто встречающихся задач. Все — маленькие, быстрые и простые в освоении:

    • libcurl - сишная библиотека для работы с сетью (существует также curlpp - крестовая обертка для нее, но использовать ее не стоит, ибо разработка заброшена еще в 2009 году)
    • SFML - работа с графикой и аудио
    • FLTK - графические интерфейсы

    И еще куча библиотек на любой вкус.


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


#2 #749086
Зарепортил фашиста
#3 #749090
Мод, старший брат скоро перекатится. И в стихе 1 раз вместо ё стоит ё, а в другой е.
>>749101
#4 #749101
>>749090
А что там в стандарте говорится на сей счет?
>>749105
129 Кб, 1600x849
#5 #749104
Вкатился с задачей. Есть один фак http://pastebin.com/1f7ZVx4V , здесь исходники http://skse.silverlock.org/ . Теперь помогите нубу, который дальше не может в Visual Studio. Я скачал портабл версию VS, теперь думаю как мне выполнить "Expand steam_loader project".
>>749109>>749154
#6 #749105
>>749101
Не по фэншую.
#7 #749109
>>749104
Ты не ту студию скачал, та что у тебя просто блокнот для редактирования кода.
>>749111
59 Кб, 1590x160
#8 #749111
>>749109
Спасибо. Тогда немного подождем и вернемся к нашему вопросу.
>>749159
#9 #749151
Короче, писал себе приложение, если сильно упрощать, то оно открывает картинку и запихивает её в pictureBox.
У pictureBox стоит StretchImage, то есть картинка запихивается в ящик. Ящик квадратный, 120 на 120 пикселей, поэтому, когда картинка не квадратная она там отображается сплюснотой. Решение - поменять высоту ящика, сделав его не квадратным.
Почему вот эта параша не работает? Должна ведь.
pictureBox1->Size.Height = 100;
#10 #749154
>>749104
Качай code::blocks, базарю
40 Кб, 934x548
#11 #749159
>>749111
Это нормально что студия запускается с какой то непонятой хуйни?
>>749166
#12 #749166
>>749159
Какрй непонятной хуйни?
>>749176
#13 #749174
>>749082 (OP)
Хоть бы шапку прикрепил
#14 #749176
>>749182
#15 #749182
>>749176
Blend для Visual Studio — это набор инструментов для разработки, входящий в Visual Studio 2013, который позволяет создавать приложения для Магазина Windows в визуальной среде с использованием языков JavaScript, VB, C# и C++
>>749185
#16 #749185
>>749182
Но у меня 2015 студия. А так добра. Просто непривычно. Да и только с нее Vs и запускается.

Нет, ярлыка чтобы сразу понятно было. Ну ты понел.
>>749189
#17 #749189
>>749185
С devenv.exe она запускается.
>>749191
#18 #749191
>>749189
С devenv.exe русская запускается.

А с бленда ангельская.
49 Кб, 1600x838
#19 #749238
>>749154
Спасибо. Хотя я уже успел пригореть от МОДУЛЬНОСТИ решений. Но как быть дальше?
>>749240
#20 #749240
>>749238
Теперь удаляй
#21 #749327
>>749154
да ты заебал пиарить это говно. Ньюфагу нужно начинать с минимума абстракций, а ты ему предлагаешь сперва настроить IDE. Пусть юзает VS или QtCreator для начала.
>>749415
#22 #749328
>>749154
>>749154
Говно без задач.
#23 #749362
>>749082 (OP)
Как запустить Prog1 из консоли? Перед ним стоит какой-то символ похожий на S.
#24 #749397
>>749082 (OP)
#include <iostream>
int main()
{
std::cout << "Enter two numbers:" << std::end1;
int v1 = 0, v2 = 0;
std::cin >> v1 >> v2;
std::count <<"The sum of "<< v1 << "and" << v2
<<"is" <<v1+v2 <<std::end1;
return 0;
}
>>749399>>751791
#25 #749399
>>749397
Ну и нахуй ты сюда это притащил?
>>749407
#26 #749407
>>749399
Не работает.
>>749409
#27 #749409
>>749407
Мы знаем. А притащил зачем?
>>749411
#28 #749411
>>749409
Но должен работать.
>>749412
#29 #749412
>>749411
Даже из учебника пример перепечатать не сумел?
http://ideone.com/usDWhD
>>749413>>749419
#30 #749413
>>749412
Хочешь сказать, что не работало онли из переноса строки?
>>749416
#31 #749415
>>749327
Лучше уж пусть тогда ставит cygwin, собирает ручками и пишет Makefile'ы
#32 #749416
>>749413
Из-за опечаток.
#33 #749419
>>749412
Ща погодь, надо тщательно сравнить.
#34 #749422
>>749416
Все понял, после 0, а не ;
40 Кб, 819x460
#35 #749427
>>749416
Не, там запятая тоже стоит.
#36 #749430
>>749416
Ах cout еще..
>>749431
#37 #749431
>>749430
Ты пишешь std::end1 "std::endАДИН"
А нужно std::endl "std::endЛ"
>>749433
#38 #749433
>>749431
Вот это добра тебе, в жизни бы не подумал.
>>749446
#39 #749446
>>749433
Причем студия принимает только со всем набором.
Один иострим она вертела на хую.

#include "stdafx.h"
#include<iostream>
using namespace std;
>>749831
#40 #749467
>>749415
Пусть сразу на коллайдер идет работать ученым, хуле. В самом начале, нужно просто открыть проект и писать код. Лучше всего подходят QtCreator и VS, где все из коробки.
#41 #749483
Посаны, препод сказал запилить курсач, требования простые, С++ и ООП, тема произвольная. Пиздец, что делать? Подкиньте идей, у меня по нулям. Кому чего не хватает?
З.Ы. ловко обращаюсь с Qt
sage #42 #749484
Что за хуйня с тредом? Откуда столько тупых вопросов? Студенты уже не могут студию установить?
>>749488>>749491
#43 #749486
>>749483
напиши построитель диаграмм классов из C++ кода.
#44 #749488
>>749484
Бля, всегда так было же, нет?
Пропустил все треды после ноября 2015.
#45 #749490
>>749483
Напиши мне аналог Theano для крестов.
>>749593
#46 #749491
>>749484
Завидуй молча.
#47 #749567
>>749082 (OP)
Эталон того, как не надо делать перекаты. ГДЕ ШАПКА ЕБАНА В РОТ?
>>749587>>750347
#48 #749587
>>749567
Шапку ж мод пришпиливает, не?
>>749591
#49 #749591
>>749587
Бля... Типичный ответ крестобляди.
Конпелятор жи сам всё зааптимизируит))0)
#50 #749593
>>749490
А ведь можно зделоть. Нафигачить классов, так чтобы все операции возвращали не результат, а дерево выражений. Наверняка есть уже такое где-то. Потом переводить выражения в код для куды, дифференцировать, все так же как и в теано.
#51 #749603
>>749483
Напиши stream api для c++, чтобы лениво можно было работать с потоками данных. По-моему, это интересная задача.
#52 #749645
>>749483
Интерфейсное говноприложение для тестов. Простенькая бд, редактор тестов, режим преподавателя, режим студента. У нас такое дипломники делают, но можешь как крусач взять, там дел на пару дней.
40 Кб, 600x375
#53 #749654
Кто-нибудь на СLion-е сидит?
Как оно?
#54 #749659
>>749654
Сижу, баги есть (в подсветке ошибок, дебаггере), порой подтормаживает. Во всём остальном работает нормально.
225 Кб, 700x511
#55 #749676
>>749654
Clion офигенный, скажу сразу что я приверженец продуктов от Jetbrains.
>>749746>>749748
#56 #749692
>>749654
#include <iostream>

int main()
{
std::cout<<" hi" << std::endl;

return 0;
}
#57 #749746
>>749676
по факту у них одна иде под многие языки и ежели привык к фичам, то самое оно.
#58 #749748
>>749676
по факту у них одна иде под многие языки и ежели привык к фичам, то самое оно.

// но я юзаю другую иде. и нах не надо джет тормознутое на яве
#59 #749753
>>749483
игровой проект пиши.
#60 #749782
Как отлаживать работу с кучей? Допустим я насоздавал всяких массивов в куче, а потом начал с ними делать операции. В итоге у меня постоянные corruption of the heap. Помогите!
#61 #749810
>>749782
Ты как-то неправильно работаешь с массивами. Не используй C-шные массивы, используй std::array или std::vector.
#62 #749831
>>749446
у тебя проект с precompiled headers. для нее его обязателен stdafx.h
создай пустой проект, в нем cpp файл. и в него напиши main функцию. и все будет работать без студийных прибамбасов
>>749918
15 Кб, 432x224
40 Кб, 640x406
44 Кб, 400x600
#63 #749894
>>749782
Рекомендую AddressSanitizer, замечательная вещь, с которой теперь только и пишу.
>>750739
#64 #749918
>>749831
Добра, вот бы еще страуструпа осилить. Начал его книгу читать, но этот мудак впихнул файл #include"std_lib_facilities.h"

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

Он там предлагает скачать файл, я вроде по инструкции делаю, копирую в блокнот, вставляю в студию в хедер, переименовываю, но шаги 13 и 14 непонятны и поэтому ничего не работает.
>>750006
#65 #750001
https://ideone.com/JCmTwO
Посоны, сократил по максимуму. Почему у меня происходит heap corruption в момент вызова HeapFree()?
Тоже самое у меня происходило при использовании new [], delete [].
Расскажите что это за ебаная куча и почему она корраптится.
>>750002>>750005
#66 #750002
>>750001

> fatal error: 'windows.h' file not found

>>750004
#67 #750004
>>750002
Да. Этот файл для шиндовс. Такие дела.
>>750001 Потому что ты не шаришь #68 #750005
>>750001
Потому что ты не шаришь в указателях. Ты не копируешь строку в вновь выделенную память. Ты просто меняешь значения указателя и передаешь указатель на память не из кучи в heapfree. А теперь пошел нахуй, неуч злоебучий. Книги надо читать сначала, а не с горящей жопой пытаться осваивать по верхам.
>>750018
>>749918 страуструп - очень плохая книга для начала. читай шилда или еще какие для начинающих. #69 #750006
>>749918
страуструп - очень плохая книга для начала. читай шилда или еще какие для начинающих.
>>750022>>750382
249 Кб, 477x271
#70 #750018
>>750005

> Потому что ты не шаришь в указателях.


СЛОЖНА
Поправил:
https://ideone.com/0Cw89i
#71 #750022
>>750006
Липмана лучше
#72 #750027
>>749782
Если такая штука как valgrind, которая умеет отслеживать утечки памяти, обращение не в свою память, всякие прочие проблемы с кучей.
>>750071>>750739
#73 #750071
>>750027
Ты забыл упомянуть нюфагу что на ШIИD0W2 её нет в природе.
>>750512
#74 #750088
>>749654
Я сижу. Не идеально, но для меня лутше остальных IDE.
>>750111
#75 #750111
>>750088
По работе с когом он лучше вообще всего, кроме студии. Где-то за ними плетётся кутякреатор, а дальше блокнотики с подсветкой кода вроде гном/кдебилдеров и кодблоксов.
>>750150
sage #76 #750133
Месяц не заходил — тут всё тот же тупняк.

Прррррр
#77 #750150
>>750111

>По работе с когом он лучше вообще всего, кроме студии.


Поехавший? По код ассисту студия не всасывает разве что у блокнота. Большие-проекты-кун гарантирует это.

>Где-то за ними плетётся кутякреатор, а дальше блокнотики с подсветкой кода вроде гном/кдебилдеров и кодблоксов.


Поехавший чтоле? У Eclipse CDT навигация по коду уровня CLion, а то и лучше. В рефакторинге немного проигрывает. Плюс, это единственная ide такого уровня, которая просто открывает makefile проекты.
>>750157>>750164
#78 #750157
>>750150

>Поехавший?


У меня только с бустом были проблемы.
Те же исходники шланга с ллвмом вполне себе быстро открывается и студия с ним вполне себе работает (если не считать получасовой+ индексации).

>навигация по коду уровня


Заодно шрифты и гуй из шиндовс 98.
>>750159>>750163
#79 #750159
>>750157
Уточню: рендеринг шрифтов.
#80 #750163
>>750157

>шланга с ллвмом


Че пилишь?
>>750165>>750176
#81 #750164
>>750150

>просто


Мне даже интересно, каким животным нужно быть чтобы писать мэйкфайлы руками...
>>750166
#82 #750165
>>750163
Компилятор своего языка на ллвме конечно же, что ещё можно писать копаясь в этих исходниках.
>>750171
#83 #750166
>>750164
И чем makefile отличаются от cmake в плане написания, уважаемый?
#84 #750171
>>750165
Ну на вскидку: поддержку новой платформы, поддержку новых фич C++, прототипы фич для пропосалов в C++ стандарт, пилить static analyzer
#86 #750227
>>749082 (OP)
http://ideone.com/tcUulk
Вот есть код из книги. Выполняю я упражнение, там написано напишете прогу для сумирования чисел от 50 до 100. И это я сделал, но вот что не понятно.

если мы задаем val = 1, то по логике выходит что 1 операция = 2, ибо val = 1+1=2.,

Причем если значения val = 0, то все збс (по логике, проверял в тетради)

Я то думал что val это просто значение переменной, но нет, это означает реальное стартовое число. Погромач обоссы.
#87 #750243
>>750227
Если выставить значение val =1 и val= 0, то результат будет одинаковым.
>>750249>>750254
#88 #750249
>>750227

>если мы задаем val = 1, то по логике выходит что 1 операция = 2, ибо val = 1+1=2.,


>sum += val


sum = 0
val = 1
sum = sum + val то есть sum = 0 + 1
>>750243
Будет.
#89 #750252
>>750249

>++val


>val=val+1


Значит val = 1+1 =2
>>750254
#90 #750254
>>750227
>>750243
>>750249
>>750252
Съебите. Пожалуйста
>>750256
#91 #750256
>>750254
Мамкина элитка порвалась.

>>750227
Не понятно чему при val =0 и val = 1 результат будет одинаковым(такого не должно быть).
>>750258
#92 #750258
>>750256
Блять. При val = 0 при первом проходе:
sum = sum(0) + val(0); //0 = 0 + 0
++val; /1
при втором проходе
sum = sum(0) + val(1); //1 = 0 + 1
++val; /2

При val = 1
sum = sum(0) + val(1); //1 = 0 + 1
++val; /2

при val одна итерация просто "лишняя"
#93 #750260
>>750258
при val = 0 одна итерация просто "лишняя"
фикс
#94 #750261
>>750249
мы должны еще к val прибавить 1, а поскольку val обладает уже значением единицы то 1+1 блять.

Потому вставить этот val ( со значением 2) в
sum += val
#95 #750265
>>750258
А все ясно. Вот это годно было.
#96 #750268
>>750258
Хотя стоп, 0+1 =1. Cхуяли они лишней должна быть 1 итерация?
>>750271
#97 #750271
>>750268
При каких условиях?
>>750272
#98 #750272
>>750271
Ну смотри, вот val = 0, но по коду(val=val+1) мы должны к нулю прибавить 1.
А потом вставить в сумму sum = val + sum(тут val у нас уже 1)
>>750277>>750279
#99 #750277
>>750272
Аа.. мы должны тут(val=val+1) 0 должны прибавить, да? Пардоньте, мсье.
#100 #750279
>>750272
Код выполняется последовательно. Сначала ты суммируешь sum = sum + val; //0 + 0
потом инкрементируешь val на 1, проверяешь условие цикла val <= 50 //1 <= 50, поэтому снова попадаешь в тело цикла. В цикле вторая итерация опять суммирует
sum = sum + val; //0 + 1 = 1
++val; //2
Опять проверка условия цикла и опять в тело попадаешь
sum = sum + val; //1 + 2 = 3
и так до выхода из него.

Это твой первый язык программирования?
>>750294
#101 #750294
>>750279
Да теперь доходит, добра.
sage #102 #750296
>>750176
http://llvm.org/docs/tutorial/

Кстати, забавно сравнить C++- и OCaml-версии.
Первое выглядит унылым говном на фоне второго.
>>750329
#103 #750329
>>750296

>мааам, высокоуровенный язык выглядит нечитабильнее круче!

#104 #750345
>>749415
Пусть симейк осваивает сразу. Бестс практис.
#105 #750347
>>749567
Ловите невфака.
#106 #750382
>>750006
Шилд, блядь, это такой экран чугунный, который образовался между твоим котелком и окружающим миром и мешает тебе расширять словарный запас. А фамилия автора - Шилдт. Как содержимое твоей репки на английском, только буква 'д' добавлена.
>>750462
#107 #750383
Пиздец вы шустрые. Лучше бы в бамплимите сидели. ОП наверно опять не успеет стих запилить
17 Кб, 562x280
#108 #750384
Как такое сделать?
>>750386>>750419
#109 #750386
>>750384
Считать на какой позиции какая буква чаще всего встречается?
>>750389
#110 #750389
>>750386
это через какую функцию делать?
>>750393>>750412
#111 #750393
>>750394
#112 #750394
>>750393
получается нужно выирать самый частый символ и записывать его в новую строку, это и получится искомое слово?
>>750419
#113 #750412
#114 #750419
>>750384
проверяй https://ideone.com/PXMae5

>>750394
Наверно. Другого придумать не могу.
>>750434
#115 #750434
>>750419
Спасибо, но пишет что неверно
>>750435>>750444
#116 #750435
>>750434
Тесты показывай.
>>750449
#117 #750444
>>750434
Кстати может быть случай когда нет решений. Нужно прогу допилить на этот случай. Что в условии про это? Давай линк сам зарегаюсь, почитаю и отправлю.
>>750453
#118 #750449
>>750435
Я не знаю, где их взять, пишет wrong answer
>>750452
#119 #750452
>>750449
И много таких?
>>750455
#120 #750453
>>750456>>750516
#121 #750455
>>750452
на первом тесте валится
#122 #750456
>>750453

> У вас нет прав просматривать это соревнование


На кодфорс их не перезаливали? вк вроде так делает
>>750467
#123 #750458
Нужна помощь: Есть форма и две переменные double x и double y. Как этим переменным присвоить координаты курсора, относительно формы? Например, при нажатии на кнопку, или просто при загрузке окна формы _Load.
>>750530>>750556
#124 #750462
>>750382
доебался до опечатки, молодец. еще до имени страуструпа доебись.
>>750465
#125 #750465
>>750462
А как джосатис правильно пишется?
>>750468>>750480
#126 #750467
>>750456
не перезаливали, надо сделать почту яндекс, чтобы зайти
>>750475
#127 #750468
>>750465
А как кохл корутин?
>>750469
sage #128 #750469
>>750468

>кохл корутин?


Лол. Даже я забыл свой псевдоним, а кто-то помнит.
#129 #750475
>>750467

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


Важную часть пропустил. Нужно функция сравнения. Щас поем и сделаю.
>>750481
sage #130 #750480
>>750465
Джо Саттис.
#131 #750481
>>750475

>Важную часть пропустил


приношу свои извинения
#133 #750516
>>750453
все тесты успешно пройдены https://ideone.com/ItNqwe
очень некрасиво эти break и много ifов. Как красивее записать кто может?
>>750525
#134 #750525
>>750516
Обалдеть. Подскажи, пожалуйста, как заниматься, чтобы до твоего уровня дойти? Посоветуй
>>750534
#135 #750530
>>750458
Итак, теперь я могу отслеживать мышь, но есть проблема.
Я создал евент для ФОРМЫ чтобы при движении мыши ее координаты писались в лейбл. Проблема: мышь залезает на территорию какого-нибудь объекта, на котором ее координаты не считываются. Как исправить? Вот код:
private: System::Void Get_MPos_Move(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e)
{
double x1, y1;
x1 = this->Location.X - Cursor->Position.X;
y1 = this->Location.Y - Cursor->Position.Y;
label1->Text = System::Convert::ToString(x1) + " " + System::Convert::ToString(y1);
}
#136 #750534
>>750525
выучить кресты? нихуя для этого знать не надо. решение в лоб.
>>750541
#137 #750541
>>750534
ты давно этим делом занимаешься?
>>750543
#138 #750543
>>750541
3 года наверно но нихуя почти не знаю
>>750552>>750562
#139 #750552
>>750543
И сколько в день часов на изучение уходит?
>>750554
#140 #750554
>>750552
месяц не занимался обычно 2 когда особенно готовился то 6
#141 #750556
>>750458
Цель то какая?
>>750709
#142 #750562
>>750543
но решил ведь задачу нормально, значит можешь. Самообразованием занимаешься или еще где учился?
>>750568
#143 #750568
>>750562

>решил ведь задачу


решение в лоб. никакого алгоритма нет. будь ограничения больше задача бы не прошла

>Самообразованием


оно
>>750582
#144 #750582
>>750568
Глянь опытным глазом. Вот здесь https://ideone.com/TIGgqK

Нужно, вообщем, чтобы на ЭКРАн выводилась сумма каждой итерации.
1) 10-1=9
2)10- 2 = 8
ну ты понел, у меня только конечный результат пишет.
>>750589>>750595
#145 #750589
>>750582

> val = 10


> val <= 0


> --val;


> добавить 1 к val

>>750592>>750596
#146 #750592
>>750589
Я в курсе, мне лень комменты было менять.
>>750595
#147 #750595
>>750592

> val = 10


> val <= 0



>>750582
https://ideone.com/KV7ZYx так?

А теперь лабы идут нахуй.
>>750600
#148 #750596
>>750589
Кстати, по идеи, если не стоит val = 0, то разве компилятор не должен считать бесконечно в -?
#149 #750600
>>750595
>>750595
Не, не, я по книжке, никаких лаб.

Нет, не так. есть val =100, и мы каждую итерацию делаем --val, результаты каждой итерации вывести.
#150 #750602
>>750600
До нуля, забыл написать.
#151 #750627
>>750600
В твоем случае будет просто идти отчет от 10 до 0.
А в том коде будет примерно
1)10= 10-1 = 9
2)9= 9-2 = 7
3)7 =7-3=4
и вот на экран нужно каждую итерацию вывести.
и тд.
#152 #750660
#153 #750662
>>750627
>>750660
просто не очень уловил условие, мимоцппил
#154 #750676
>>750627
>>750660

>Глянь опытным глазом. Вот здесь


посмотрел

https://ideone.com/6AY9cz так нужно?
>>750727>>750952
#155 #750685
>>750600

>Не, не, я по книжке, никаких лаб.


съебал в ньюфаготред
#156 #750709
>>750556
Двигать мышку по территории ВСЕГО окна и считать координаты.
>>750715>>750721
#157 #750715
>>750709
qt или самописное?
>>750740
#158 #750721
>>750709
GetCursorPos
+
GetWindowRect
#159 #750727
>>750676

> видимость: secret


Боишься что мамка увидит или что?
43 Кб, 572x400
#160 #750739
>>750027
>>749894
valgrind - ненужная и страшно тормозная параша по сравнению с AddressSantizer. Его плюс не в самом valgrind а в его профайлерах/kcachegrind.
#161 #750740
>>750715
Я лоу левел, не понимаю про что ты. Пишу на с++ в виндоус формах. IDE - visual studio 2013
>>750741
#162 #750741
>>750740

>лоу левел


>виндоус формах


бери qt
>>750744
#163 #750744
>>750741
А самописное как делается? winapi? Мне бы гайдов. Я находил в инете, но у меня даже окно не запускается. Много перепробовал.
>>750747
#164 #750747
>>750744
под самописным я имел ввиду кнопки на opengl.
https://wiki.qt.io/Qt_for_Beginners
а лучше, пока что, попиши консольный бред. Алгоритмы там и прочее.
>>750749
#165 #750749
>>750747
Спасибо, я буду пробовать.
>>750752
#166 #750752
>>750749
если плохо с англ. погугли на русском. Ну и видосы на ютьюбе есть.
23 Кб, 819x460
#167 #750952
>>750676
>>750660
Сори, отходил. Вот упражнение из книги(если интересно)
Да, и то и то можно подогнать. Ок спасиб, пойду разбираться.
>>750972>>751006
#168 #750972
>>750952
А что за книга?
>>750979
#169 #750979
>>750972
Липпман же.
>>750980>>750986
#170 #750980
>>750979
Ну да. Это все знают.
>>750986
#171 #750986
>>750979
>>750980
Спс, я полный ньюфажка, нечего не знаю. Вчера решил вкатится.
#172 #751006
>>750952
конкретна эта задача на три строки
int val = 10;
while(val)
{
std::cout << val;
val--;
}

И, таки да. Не забудь прочитать про разницу между префиксным и постфиксным ( val++ / ++val )
>>751016>>751037
sage #173 #751016
>>751006

>Знает разницу между постфиксным и префиксным декрементом


>Все еще использует постфиксный декремент

>>751026
#174 #751019
Ух, как же меня корежит от вашей байтопараши. Сил нет читать эти сраные книги. Сука, как же я это все ненавижу.
>>751027
#175 #751026
>>751016
gowno++;
++gowno;
какая разница как херачить в отдельной строке?
>>751028
#176 #751027
>>751019
Молодец. Возьми с полки чупа-чупс, заткни им жопу. Это ненадолго остановит пламя.
sage #177 #751028
>>751026
Вот почитай про отличия между вариантами и поймешь, почему на отдельной строке лучше использовать префикс вместо постфикса.
>>751031
#178 #751031
>>751028
>>751028
на, сам почитай https://msdn.microsoft.com/ru-ru/library/e1e3921c.aspx

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



Теперь объясни мне серому, или лучше пример приведи, где инкремент отдельной строкой будет лучше префиксным
>>751242
#179 #751037
>>751054
Годный сайт чтобы эффективно учить кресты #180 #751041
Дайте пожалуйста годных сайтов, чтобы Learn и Reference на простейшем английском, максимум дружелюбно, эффективно и просто. Что-то вроде HTMLAcademy, W3Schools, вот такого. Чтобы в одном окошке "учиться", читать и, может быть, даже тестить там же, а в другом, если что, без походов в гугл, вбивать неизвестные операторы, чтобы читать про их параметры, либо вбивать запрос вроде "regular expressions in c++" и находить решение сразу же, без сотни васяновских говносайтов с говнокодом из нулевых.
#181 #751045
>>751041
Нет такого. Задачки с кодфорса можно решать.
>>751048>>751052
#182 #751048
>>751045
Не гони. По любой хуйне такое уже есть. Мне просто нужно написать несколько хуевин, но я не готов ради них читать 5к страниц по чистым плюсам, бутстрапу, кьюту/гтк, etc...
#183 #751051
>>751041
http://academy.cppstudio.com/

но там только основы
и иногда не очевидно, отчего тамошний компилятор не принимает, вроде бы, парвильное решение (ах да, фигурные скобочки не стоят, где не обязательно; и подобное )
хотя всё не так плохо для начала
>>751055
#184 #751052
>>751045
Хотя бы что-то вроде http://www.w3schools.com/tags/ref_byfunc.asp и htmlbook, я хуй знает, чтобы не ебать гугл каждый раз и читать хуету из 2003
>>751172
#185 #751054
>>751037
что это?
#186 #751055
>>751051
Это все бесплатно?
Вот мне что-то такое, можно даже без интерактива,

>Хотя бы что-то вроде http://www.w3schools.com/tags/ref_byfunc.asp и htmlbook


но по более серьезным вещам. Контейнеры всякие типа МАП, ЛИСТ, регекспы, высокоуровневая работа с ФС, Win32_API, создание гуя, работа с DOM...
>>751059>>751172
#187 #751059
>>751055
Бесплатно.

>но там только основы


за остальное нужно брать нормальную книгу и закуривать.
>>751064
#188 #751064
>>751059
Мне кажется, только перечисленная хуйня потребует книг 5, нет? А онлайн референсы? Какие-то сайты хотя бы по отдельным темам? Чому у всех есть, а у плюсов нет? Алсо,
>>749082 (OP)
Почему первая ссылка ведет на Липмана, а не Страуструпа или Прату?
И есть ли смысл чтения последнего, если страус вышел на 4 года позже? Там ведь новые стандарты вышли...
>>751068
#189 #751068
>>751064

>страус


сложно

>Прату


старо

>Липмана


заебись
>>751075
#190 #751075
>>751068
Чего сложного, чего там старого и чем липман конкретнее новее (выйдя еще даже до 2015) и проще? Вот чем он реально проще, чем так сложен страус? Уж проще праты только шилдт наверное. Почему его нет кстати?
>>751080>>751085
#191 #751080
>>751075

>чем так сложен страус


У всех кто читал спроси. Каждый ответит что страус сложный.

>Уж проще праты


Он не сложный, а старый. Старее Липмана

>>751075

>шилдт


>Почему его нет


Должен быть. Проверь ещё раз.
>>751087>>751098
#192 #751085
>>751075
Страуструп в первом же примере с хелло ворлд пишет: #include"std_lib_facilities.h"

И, понятно, что такого хедера нет. Попробуй пропиши в онлайн редакторе или студии.

Он конешно предлагает закинут этот файл в студию, но я пробовал, но шаги 13 и 14 не понятны и вообщем забил пока что на него, вернусь попозже.
Хочется, по книге идти, где можно использовать примеры и разбирать их без танцов с бубном.
#193 #751086
>>751085

>Онлайн компиляторе. фикс

#194 #751087
>>751080
Я имею ввиду, в основных. Ну ясное дело, что старее, но несильно.
>>751085
Может просто стдлиб попробовать? Что же там за пример такой?
>>751089
#195 #751089
>>751087
пример

#include"std_lib_facilities.h"
int main{}
{
cout<<"Hello, World!\n";
return 0;
}

>Может просто стдлиб


А может и ионстрим попробовать, ну а что, хелло ворлд написать и так можно. Танцы с бубном же.
#196 #751090
>>751089

>иострим фикс.

#197 #751091
>>751085
он учил добавлять хейдеры поэтому в кавычках
>>751092
#198 #751092
>>751094
#199 #751094
>>751092
зачем ты это сделал?
>>751097
#200 #751096
>>751089

>{}


ковычки еще проебал, там ()
#201 #751097
>>751094
Я уже спать иду..
#202 #751098
>>751089
Ну так о том и речь, что иострим и стдлиб отлично зайдут. Это единственная "сложность" страуструпа или назовете еще?
>>751080
>>751085
А с чего вы взяли, что липпман не старее страуструпа, но проще, а вот прата значительно старее страуструпа? Кроме года издания, который нихуя не значит?
>>751102>>751103
#203 #751102
>>751098

>значительно


Не говорили такого.

Первой может быть только 1 книга и липпман победил благодаря году издания, который нихуя не значит.
>>751113>>751115
#204 #751103
>>751098
Я просто выбрал учебник. Первый же пример из книги не работает, а автор предлагает пердолясь закинуть нужный файл.

Не знаю, чего вы там батхертите, обязательно вернусь к Страуструпу, но после того как пройду учебник для новичков по языку, где есть рабочие примеры.
#205 #751113
>>751102
Но прата интуитивнее, а его подача способствует изучению, практике его примеров, а не тупо сидению с учебником ридонли. В свое время, когда я выбирал между липпманом и шилдтом, мне посоветовали прату, и не зря.
#206 #751115
>>751102
Но прата интуитивнее, а его подача способствует изучению, практике его примеров, а не тупо сидению с учебником ридонли. В свое время, когда я выбирал между липпманом и шилдтом, мне посоветовали прату, и не зря.

И дело не в первоте в списке, а вот этой самой первой ссылкой создается впечатление, что липман какая-то особая годнота.
>>751138
#207 #751138
>>751115

>мне посоветовали прату


Он хоть про C++11?
>>751140>>751144
#208 #751140
>>751138
Кек))) а липман хоть про 15 (теперь серьезно, если нет, то он вообще нихуя не старее ни разу)?
>>751143>>751144
#209 #751143
>>751140
У тебя с Cerebral Cortex всё в порядке?
>>751145
#210 #751144
>>751138
И да, ты много вообще переведенных книг по с++ 14 назовешь?
>>751140
14, фикс
>>751146
#211 #751145
>>751143
Очень содержательный ответ, и смешной, молодец.
#212 #751146
>>751144
Бьярне Страуструп.
>>751149
#213 #751149
>>751146
Хую выше он сложнасложнанипанятна
>>751155
#214 #751155
>>751149
Так пусть уёбывает 1с программировать.
В книге всё предельно просто и понятно. И что такое include тоже объясняется.
>>751170>>751359
#215 #751170
>>751155
Я что, спорю? Я не понимаю, нахуя старого жида запихнули во всея сишников первыя книгу вместо трупа/праты
#216 #751172
#217 #751180
http://rgho.st/67KTlxpyk
Запустите мой бинарник. Работает?
#218 #751242
>>751031
Если компилятор не оптимизирует будет лишняя трата тактов процесора
#219 #751287
Лично меня заебал этот ньюфаг, который срет по 50 постов в час. А вас?
>>751293
#220 #751293
>>751287
Половину из этого писал не я.
#221 #751294
Кто-нибудь использовал std::enable_if для конструкторов? В VC++ проблем нет, в GCC похоже не срабатывает трейт, хотя условия выполняются точно и инстанцируются все конструкторы.
http://pastebin.com/WBrRhmCS
>>751313
#223 #751317
>>751313
Просто перенеси enable_if в тело конструктора.
>>751323
#224 #751323
>>751313
>>751317
Спасибо. Так и сделал, проебал этот момент в доке.
>>751324
#225 #751324
>>751323
Потому что в студии прокатило успешно.
#226 #751359
>>751155

> в книге всё как в остальных только читать дольше т.к. сложно написано


> неосилил уёбывай


Ну и зачем жрать говно? С непривычки не переваришь. Когда выучишь кресты тогда читай страуструпа
#227 #751373
Блеать, книги есть, переведены даже;
Учи, не хочу. Хочу жрать говно ныть на дваче про свою неосиляторность
>>751600
32 Кб, 1079x89
#228 #751600
>>751373
О это про меня. Читаю книгу не могу осилить упражнение. Мега простое, но такой вот я тупой пиздец.
>>751644>>751680
#229 #751603
Как же это удручает быть тупым, и так все тлен так еще и тупой.
>>751644
Годный сайт чтобы эффективно учить кресты #230 #751611
Дайте пожалуйста годных сайтов, чтобы Learn и Reference на простейшем английском, максимум дружелюбно, эффективно и просто. Что-то вроде HTMLAcademy, W3Schools, вот такого. Чтобы в одном окошке "учиться", читать и, может быть, даже тестить там же, а в другом, если что, без походов в гугл, вбивать неизвестные операторы, чтобы читать про их параметры, либо вбивать запрос вроде "regular expressions in c++" и находить решение сразу же, без сотни васяновских говносайтов с говнокодом из нулевых.

Вот мне что-то типа вашей этой академи, да, можно даже без интерактива,

>Хотя бы что-то вроде http://www.w3schools.com/tags/ref_byfunc.asp и htmlbook


но по более серьезным вещам. Контейнеры всякие типа МАП, ЛИСТ, регекспы, высокоуровневая работа с ФС, Win32_API, создание гуя, работа с DOM...

Чтобы каждый раз гугл не ебать.
>>751826>>751970
#231 #751644
>>751600
>>751603
Ура, я не тупой! Сделал!

https://ideone.com/v6SzN3

Посмотрите плиз, правильно? а можно также только while сделать? в книге просто на момент задания for еще не юзался, но я схитрил и заюзал.
>>751673>>751683
#232 #751673
>>751644

> using namespace std;


> std::cout


> Ура, я не тупой!

>>751716
#233 #751680
>>751600
А линканите мне список таких простых задачек для изучения языка.
>>751716
#234 #751683
>>751644
Ньюфаг, я понимаю, что ты еще мало знаешь и все такое, но ты реально срешь в тред своим нытьем.

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

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

А теперь съеби в ньюфаг-тред и не заходи сюда до тех пор, пока не напишешь свой простенький компилятор.
>>751686>>751716
#235 #751686
>>751683
Истинно так. Давай, парень, не шали, а то милиционера позовем.
#236 #751691

>>751687


Что здесь было?
#237 #751707
Давайте решим усложнённую версию задачки из этого треда https://2ch.hk/pr/res/739345.html (М)
1. Размер массива не 368, а 18 446 744 073 709 551 616.
2. В скобках пишется строка, а не число.
3. Сделать нужно на чистом С.
>>751709
#238 #751709
>>751707
решай. кто тебе мешает?
>>751711
#239 #751711
>>751709
Вместе давайте. Мы же тут обсуждаем сложные задачи. Не достаточно сложно?
>>751715
#240 #751715
>>751711
это не задача. это хуета.
>>751717
#241 #751716
>>751673
Компилятор задолбал ругаться когда я писал без std::, потом я добавил пространство имен, а вверху ввод забыл поправить.
>>751680
Я сам не знаю где брать такие задачи. Данная из книги C++ Primer, 5th Edition.pdf
>>751683
Благодарю за развернутый ответ, илитарий. В этот тред я написал, т.к подумал что хрен решу задачу, однако все же решил. Я не сру в тред, первый раз написал. А в ньюфаг-треде одни такие же раки как я, кто мне там поможет?
#242 #751717
>>751715
В том треде на крестах 3 решения и все абсолютно разные. Уверен можно ещё сделать.
>>751804
#243 #751791
>>749397
#include <iostream>;

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
float x, y, z;
cout << "Введите пожалуйста первое число: ";
cin >> x;
cout << "Введите пожалуйста второе число: ";
cin >> y;
z = x + y;
cout << "Сумма двух числе: " << z << endl;
system("pause");

}

Нахуй ты пишешь std?
>>751794
#244 #751794
>>751791
нахуя ты сюда пишешь?
>>751796
#245 #751796
>>751794
Потому что я могу. А ты?
>>751799
#246 #751799
>>751796
потому что ньюфаги испортили тред
#247 #751802
>>751799
Извини. Я просто зашел сюда искать какой нибудь полезной информации в спорах между анонами.
#248 #751804
>>751717
Памяти не хватит в любом случае, даже если предположить, что на каждую функцию в массиве уйдет один байт. Мастерство в умении избежать необходимости делать говно.
>>751807
#249 #751806
>>751799
Похоже, стихи служили какой-то защитой от долбоебов.
>>751813
#250 #751807
>>751804
Это если все 3 пункта выполнить? А по одному?
>>751811
#251 #751811
>>751807
Да даже по первому.
#252 #751813
>>751806
а куда оп пропал вообще?
ОП - СТИХОПЛЕТ. ОТЗОВИСЬ. ТЫ С НАМИ?
>>751829>>751831
#253 #751826
>>751611
Бамп
#254 #751828
>>749415
Ебать, все крестовики такие упоротые? Нет QtCreator лучше.

Мимо java-бог в девичестве плюсовик
#255 #751829
>>751813
Он пошёл учить D, а потом спился насмерть узнав что такой язык был а он кушал фикалий. кекус
>>751830>>751838
#256 #751830
>>751829
не верю
Где топовые стихи в D треде?
>>751836>>751838
#257 #751831
>>751813
Стих на инглише наверно пишет.
#258 #751836
>>751830

>Где топовые стихи? В D треде!


фикс
#259 #751838
>>751830
>>751829

>спился насмерть


Был крестовик и нет крестовика, такие дела.
#260 #751938
>>751799
Рак, убивающий /зк.
#261 #751941
>>751799
Может памятку ньюфага повыше в шапке поднять?
#262 #751970
>>751611
Еще бамп
>>752011>>752030
#263 #752011
>>751970
Дежурно сходи нахуй со своим бампом. Совсем ньюфаги охуели - еще и бампают свои высеры.
#264 #752030
>>751970
Нет таких сказали уже.
>>752079
#265 #752079
>>752030
А если найду?
>>752083
#266 #752083
>>752079
Отсосу.
#267 #752168
аноны такой вопрос. Допустим у меня есть платформозависимый код. Ну пусть класс Window. Очевидно, что мне нужно иметь два класса WinWindow и LinuxWindow. Сейчас я делаю так:
#ifdef WIN
typedef WinWindow Window
#else
typedef LinuxWindow Window

Я думаю это не правильно. Как сделать правильно?
>>752187>>752308
#268 #752187
>>752168
Qt заворачивает весь платформозависимый код условно в один класс: платформонезависимый интерфейс находится в хедере, а платформозависимый - в cpp файле для каждой платформы.

Т.е. есть Window.h и есть WindowWin.cpp, WindowMac.cpp и т.д. Затем в системе сборки в зависимости от target-платформы определяется, какой cpp'шник будет компилироваться.
>>752198
#269 #752198
>>752187
идею понял. Правда я не про qt говорил. А вот допустим у нас есть отдельные дескрипторы для win и mac окна. Как мне их тогда объявлять в хедере?
>>752204>>752231
#270 #752204
>>752198
Я Qt привел для примера. Дескрипторы, как и весь платформозависимый код, не должны появляться в хедерах ни в каком виде.
>>752208>>752212
#271 #752208
>>752204
Другой вариант - сделать интерфейс Window и наследовать от него WinWindow и LinuxWindow. Инстанциировать под ifdef'ом, естественно.
#272 #752212
>>752204

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


Хм... А как тогда?
#273 #752231
>>752198
window.h:
class Window {
//methods declarations
};

windowWin.cpp:
//methods definitions for Win

windowLinux.cpp:
//methods definition for Linux

Makefile:
linux: window.h windowLinux.cpp
g++ -o window.o windowLinux.cpp

win: window.h windowsWin.cpp
mingw -o window.o windowWin.cpp
>>752233
#274 #752233
>>752231
Да. Я так и понял. Просто где мне создавать дескриптор окна?
>>752236
#276 #752280
Всё. Разобрался. Вариант с наследованием для меня не очень. Не хочу тянуть лишние вирт. методы. Сделаю как в cocos2d-x. Завтра ещё посмотрю как в qt. А то сегодня уже спать хочу.
Спасибо всем, аноны!
>>752341
#277 #752308
>>752168
причем тут тайпдеф??
#278 #752341
>>752280

> Не хочу тянуть лишние вирт. методы.


Используй шаблоны и статический полиморфизм.
sage #279 #752410
Петушочки, дайте ссылку на шапку на жидхабе.
#280 #752452
есть темплейтобоги в треде? видел какую ебалу можно на них творить... параметризация алгоритмов и структур данных, например, параметризованный сортер для дерева, или параметризованная underlying structure для кучи, кастомные аллокаторы и прочая мета. ну, или вот, например, https://github.com/lukasmartinelli/py14
оно все, конечно, круто, но вот вопрос: выходит ли это за рамки игр с фичами языка, и используется ли это кем-то, кроме александреску и разрабов boost, в реальных проектах? просветите, а то не могу ничего годного найти
#281 #752475
>>752452
Используются ли на столько замудренные способы - не знаю, но я использую, особенно когда приходится иметь дело с параметрами разных типов, чтобы не было копипасты и трудноподдерживаемого кода.
#282 #752491
>>752452
Широко использую трейты через CRPT.
>>752930
#283 #752519
>>752452

>параметризация алгоритмов и структур данных, например, параметризованный сортер для дерева, или параметризованная underlying structure для кучи, кастомные аллокаторы и прочая мета


Это все называется паттерном "Стратегия". Ничего сверхестественного здесь нет. Да и вообще в шаблонах тоже нет. Всего есть до пяти приемов, которые формируют полноту по Тьюрингу. Но даже зная их, нормальные люди не страдают хуйней по типу написания парсеров на шаблонах, потому что эта ебота получится write-only, без возможности отладки и будет компилиться часами. Короче говоря, нормальные люди в таких ситуациях использую решения, написанные на полноценных языках.
>>752525
#284 #752523

> Ебашим proposals всем двощем.


https://habrahabr.ru/company/yandex/blog/301514/
#285 #752525
>>752519

>Всего есть до пяти приемов


а можешь написать, что это за приемы

>решения, написанные на полноценных языках


лол, а кресты не полноценный язык?
>>752529>>752533
#286 #752529
>>752525

> лол, а кресты не полноценный язык?


Имелись в виду сами шаблоны, а не цпп в целом.
мимокрок
#287 #752533
>>752525

>а можешь написать, что это за приемы


В целом, для реализации всего на свете нужны только условия, циклы(или рекурсия) и память. Условия в шаблонах - by design, рекурсия - через числовой параметр шаблона, память - через константные статические переменные. Все остальное - уже надстройки над этими тремя средствами.
>>752536
#288 #752536
>>752533
Пардон, условия не by design, а через LUT в виде специализаций шаблонов(traits).
>>752542
#289 #752542
>>752536
Что такое LUT?
>>752544
#290 #752544
>>752542
look up table
#291 #752727
Есть данные, хранящиеся в векторе. В один момент нужно изменить размер вектора и отсортировать данные в нем. Можно ли это сделать без создания дополнительного вектора?
>>752740
#292 #752740
>>752727
Да. resize и std::sort.
>>752742
#293 #752742
>>752740
Суть в том, что нужна не простая сортировка, а что-то вроде распределение ключей в хеш-таблице, которые (ключи) зависят от ее размера. Соответственно изменяя размер необходимо полностью поменять положение элементов
>>752745>>752761
#294 #752745
>>752742
Ну так ты сначала меняешь размер, а потом пересортировываешь вектор уже с новым размером. В чем проблема?
Или я чего-то не понимаю?
>>752838
#295 #752761
>>752742

>Соответственно изменяя размер необходимо полностью поменять положение элементов


swap?
>>752838
#296 #752838
>>752745
>>752761
бля, я ебаный ньюфаг и не могу объяснить задачу, гоните меня ссаными тряпками нахуй.

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

Я делаю так: помещаю исходные элементы в новый вектор, изменяю размер исходного, очищаю его и потом последовательно переношу из временного вектора данные в новый уже с новыми ключами.
Можно ли это сделать как-то без создания доп. вектора?
#297 #752846
>>752838

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


Обычно именно так и делают. Твой способ годится только для RT систем, где проще выделить память, чем проебаться с рехэшом.
#298 #752907
>>752838
В векторе есть пустые ячейки и занятые? Не проще мап взять? Проблема возникает только если тебе 1 элемент надо положить в уже занятую ячейку? Тогда можно рекурсивно искать элемент который можно переложить в пустую ячейку. Типа поиск в глубину. Тогда проблема может быть только с зацикливание. Что делать если наткнулся на цикл понятно. Тупо переложить все элементы по очереди. Сложнее его задетектить. Наверно надо множество создавать в котором будут номера элементов которые уже переложены на свои места и их нельзя трогать. Или только те элементы что посещались в момент рекурсии. Тогда с каждой выходом из рекурсии его можно очищать. Ну и осталось по очереди все элементы перебирать и заново функцией хэш считать. Должно быстрее работать. Правильно условие понял?
>>752996
1177 Кб, 400x232
#299 #752930
>>752491

>CRPT


>CRPT

>>753030
#300 #752988
Кто-нибудь этим пользовался?
http://www.interstron.ru/developers_means2.html
>>753016
#301 #752996
>>752907
бля, ты условие понял правильно, мап не покатит, т.к. каждая ячейка имеет много полей (структура). Исходя из твоих слов я понимаю, что будет проще все таки с вторым вектором
>>753195>>753266
#303 #753030
>>752930
Уже и опечататься нельзя.
#304 #753033
>>752838
У тебя при ресайзе вектора память заново выделяется все равно.
>>753035
#305 #753035
>>753033
Поэтому лучше не векторами, а вручную выделять.
>>753075
#306 #753075
>>753035
что значит вручную?
>>753158
#307 #753078
Анончики, кто-нибудь пользовался бустовским any_iterator?
Как организовать цикл по any_iterator'ам, если их даже нельзя сравнивать? В доке найти пример не могу.
>>753170
#308 #753095
Почему вот это говно компилится и запускается в VS, но в определенный момент возникает исключение. https://ideone.com/PctvAG
>>753113>>753119
#309 #753113
>>753095
std::string нельзя?
Компилятор всё правильно говорит, нельзя так присваивать:
C++ forbids converting a string constant to 'char*'
>>753116
#310 #753116
>>753113
Ты за какую строку конкретно говоришь?
>>753120
#311 #753119
>>753095
Какую часть фразы "лабы идут нахуй" ты не понял?
>>753128
#312 #753120
>>753116
31 и 32
>>753128
#313 #753128
>>753119
это не лаба
>>753120
Почему в vs на этом этапе ошибок нет вообще? Да и сообщение о исключении появляется только под конец выполнения. Там вообще эти строчки не используются.
>>753174
#314 #753158
>>753075
Маллоком. Создаешь новый буфер нужного размера, копируешь туда элементы, старый удаляешь.
>>753160>>753165
#315 #753160
>>753158

>Маллоком


C++
>>753166
#316 #753165
>>753158
Или как вариант держишь два вектора. В одном сами элементы в произвольном порядке, во втором твоя хэш-таблица с индексами элементов. При ресайзе очищаешь вектор с индексами и перестраиваешь заново.
#317 #753166
>>753160
Простая обертка над маллоком удобнее new, new[], delete, delete[].
#318 #753168
>>753166
Вопрос скорее идеологический, если человек разбирается с плюсами логичнее использовать его функционал.
#319 #753170
>>753078
Бля, судя по всему, только бустовским for_each.
Бля, пиздец. Вроде бы ещё Майерс в одной из старых книжек писал, что не нужно пытаться писать контейнеронезависимый код.
>>753571
#320 #753174
>>753128
Если у тебя не цель показать использование выделение памяти (без ее освобождения), то используй вместо char[] std::string (как уже подсказали выше), а вместо char test; std:vector<std::string> test; Возложи заботу по управлению памяти на плечи разработчиков замечательного STL. И падения скорее всего прекратятся.
#321 #753177
>>753166
ВНЕЗАПНО new и delete – это и есть простая обёртка над маллоком. Использовать "голый" маллок (или системный апи для этого) нужно только в совсем гурманских целях игрищ с байтами.
>>753267
#322 #753183
>>752838
Ты пытаешься сделать хештаблицу?
#323 #753184
>>753166
Бля, съеби. Удобнее ему вручную высчитывать занимаемый размер, а потом еще и кастить. Ага, конечно.
3560 Кб, 2850x1900
271 Кб, 2928x1521
#324 #753185
Я раньше был за, а сейчас время компиляции раздражает, поэтому я сейчас делаю пакет нугета и всё удобно и быстро:)

third-party либа, в публичном struct'е поле спрятано за #ifdef. Внезапно разошлись дефайны при сборке самой либы и использующего ее кода

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

http://nponeccop.livejournal.com/491404.html
#325 #753195
>>752996
Почему мап не подходит? Он никаких ограничений на тип не накладывает
#326 #753266
>>752996
передай в sort свой компаратор
>>753491
#327 #753267
>>753177
внезапно, new умеет вызывать конструктор (размечать память). а delete вызывает деструктор (корректно очищает память объекта
>>753270
#328 #753270
>>753267
А еще эксепшены кидать
#329 #753279
Как построить например бинарное дерево из объектов?
>>753281
#330 #753281
>>753279
Взять и построить.

Задавай вопросы более конкретно, если хочешь услышать конкретные ответы.
>>753284
#331 #753284
>>753281
есть массив объектов допустимто. как написать структуру бинарного дерева, элементами которого являются эти объекты. например взять и вывести потом инфу этих объектов последовательно. Типо пишем struct A {class-type o[100]; class-type left; class-type right;} Или что? как это вообще работает?
>>753285>>753290
#332 #753285
>>753284
лефт райт указатели
#333 #753290
>>753284
Ну да, именно так это и делается. Ты создаешь структуру, в структуре у тебя находится указатель на левого потомка, указатель на правого потомка и сами данные.
Примерно так:
struct BinTree {
Data data;
BinTree [pointer] left;
BinTree [pointer] right;
};

BinTree* tree = new BinTree;
tree->left = new BinTree;
tree->right = new BinTree;

и так далее.

Как вывести -- да как хочешь, обходи дерево хоть в глубину, хоть в ширину, как тебе нужно и удобнее.
#334 #753318
А что не так с ОПом?
мимо
#335 #753323
До чего же уебанский синтаксис у крестов. Есть ли языки с еще более мерзким синтаксисом?
>>753325
#336 #753325
>>753323
Ржавый в том имеет уверенное лидерство
#337 #753334
Господи, ну вот нахуя Страуструп придумал всю эту поебень. Тонны какой-то бессмысленной синтаксической обертки, чтобы в итоге выполнить все тоже самое, что и в си.

Покажите хоть один юзкейс, где кресты помогают решить задачу быстее и легче, чем в голом си?
#338 #753335
>>753334
Например? О каких обертках ты говоришь?
#339 #753339
>>753334

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


Как там твои обобщенные типы на макросах? Или, например, не заебался еще структуры из одной иерархии друг к другу кастить, чтобы сделать ООП? И все это без вменяемой навигации в IDE. Или, к примеру, нравится выводить размеры для маллока? А потом инициализатор вручную вызывать? А ручками RAII хуячить не остоебенило?
>>753369
#340 #753369
>>753339
ООП нинужен
#341 #753447
http://www.scs.stanford.edu/~dm/home/papers/c++-new.html
СИ — СИЛА. СИ++ — МОГИЛА.
>>753455
#342 #753455
>>753447
Этот чувак, кстати, разрабатывает настоящую (а не как сейчас) анонимную имиджборду:
https://www.youtube.com/watch?v=hL3AnIOfu4Y
Профессор Стэнфорда потому что, а не любитель паралимпиадного программирования из ИТМО.
>>753494
#343 #753491
>>753266
У него не так сортировать надо. Скорее переупорядочить. Ему нужно переложить элемент из одной ячейки в другую, а номер другой ячейки говорит функция.
>>754209
#344 #753494
>>753455
А ты, видимо, любитель пропускать бквы в слвах.
#345 #753523
Читаю Прату, тему про указатели. Он использует выражение "указатель на int (или на любой другой тип)". Как это понять?
>>753524
#346 #753524
>>753523
Что конкретно не понятно? Указатель? Указатель на int или указатель на любой другой тип?
>>753527
#347 #753527
>>753524
Что такое указатель мне понятно. Не понятно, что такое "указатель на int"
#348 #753532
>>753527
Видимо не совсем понятно, что такое указатель. Из-за статической типизации при обращении через указатель компилятор будет ограничивать считываемую память размером типа (в твоем случае int, причем он может быть разного размера на разных целевых платформах).
#349 #753545
>>753527

>Что такое указатель мне понятно


И что это такое?
#351 #753548
>>753334
Все на Си можно, что на плюсах. Но нахрена лепить велосипеды в Сях, когда есть более удобные инструменты. Особено когда лепят костыли из препроцессора и массивов указателей на функции.
#352 #753550
>>753527
У тебя есть участок памяти на которые указывает указатель. У тебя там куча байтов. А указатель указывает на 1 байт. Если ты не скажешь ему тип, то компьютер не поймёт что с таким указателем делать. А так ты говоришь что это int и тогда очевидно что следующие 4 байта будут принадлежать тому участку памяти куда указывает указатель. И компьютер понимает что 2 этими 4 байтами надо обращаться как с intом. Будь указатель на unsigned int, а байты в памяти лежали те же самые, то программа обращалась бы с ними по другому. Понятнее?
>>754139
#353 #753571
>>753170
Майерс это что-то среднее между Скоттом и авторшей Сумерек?
>>754095
#354 #753575
Тезисы на сегодня:
1. Долгая компиляция это зло. Отсутствие модулей это плохо. Мы все страдаем от этой проблемы, но попытка быстро-быстро перепилить что-либо обернется куда большей головной болью. Медленная компиляция лучше, чем развалившаяся совместимость. Кресты не идеальны, но, тем не менее, хороши. Лодку пытаются раскачать ньюфаги, которые сели в нее без багажа.
2. На сях можно сделать все, что можно в крестах. На асме тоже можно. Вопрос всегда в количестве альтернатив, ибо выбор между malloc/new/аллокаторами/велосипедами/еще чем-то, вообще говоря, зависит от ситуации и предпочтений погроммиста. Пока в крестах есть malloc, а в сях нет new, кресты лучше сей как универсальный язык (но не обязательно это так в какой-либо конкретной ситуации).
>>753577
#355 #753577
>>753575
Набрасывайте, коллега
#356 #753619
Господа, уверенно ебашу хеллоу ворлды, в поисках прогресса наткнулся на stackoverflow на совет перейти на QtCreator. Прошу разъяснений что это за хуйня, и как сильно придется забыть любимый nano и такие простые include <stdio.h>
>>753628
#357 #753628
>>753619

>nano


QtCreator сосет, если только ты не хочешь писать именно на Qt и именно гуи. Ставь IDE из шапки и не выебывайся.
>>753646>>753713
#358 #753646
>>753628

>QtCreator сосет


И в чем же он сосет при написании хелловордов? Или это опять тонкая пропаганда сраного code::blocks?
#359 #753713
>>753628
Гуй можно писать и без него. Чисто для рисования формочек есть Designer.
#360 #753732
>>753646

>сраного code::blocks


А чем он плох то?
>>753786
58 Кб, 1365x697
#361 #753743
>>753646

> code::blocks


Где ты ещё кроме вима можешь свой код на весь экран развернуть? Везде постоянно что-то лишнее попадает., а тут легко и быстро можно мелкие изменение делать
#362 #753753
>>753743
alt+shift+enter в студии
>>753825
#363 #753786
>>753732

>сраного code::blocks


>А чем он плох то?


Тем, что cmake без танцев не умеет? Тем что не поставляется упакованным из коробки в отличии от VS и QtCreator? А так лично мне похуй на него, бесит только анон, который его вечно пиарит.
#364 #753787
>>753743

> code::blocks


>Где ты ещё кроме вима можешь свой код на весь экран развернуть? Везде постоянно что-то лишнее попадает., а тут легко и быстро можно мелкие изменение делать


Во всех современных IDE есть фуллскрин
>>753825
#365 #753796
>>753646
Это пропаганда CodeLite. Не, ну серьезно, посоны. Любой вменяемый человек понимает, что это такое дело... Очень индивидуальное. Есть тысячи мельчайших факторов, которые формируют наши предпочтения, и невозможно сделать какое-то полномасштабное сравнение и окончательно решить вопрос выбора IDE. Опять же, задачи у всех разные, для написания хэллоуворлда вполне достаточно консоли, тогда зачем человеку ебаться с установкой чего-то? Все что мы можем - сделать частичное сравнение по каким-то важным пунктам вроде обилия возможностей, скорости работы или качества отдельных фич. Оно энивей будет предвзятым, потому что все используют разные подмножества фич и имеют разные требования к их качеству. Кому-то лучше много сырых фич, кому-то - меньше, но отточенных, кто-то запускает IDE на калькуляторе, кому-то вообще важен внешний вид, или кроссплатформенность, или еще чего-то. Тут не угадаешь. Ты спрашиваешь анона - он дает тебе свое имхо, говоря за свой рабочий процесс и свои хорошие практики. Если тебя чем-то оно не устраивает - ну поставь себе на виртуалку десять IDE и сравнивай их, никто ж тебе не запрещает! Либо ты получаешь быстрый рецепт от анона, либо кулинаришь сам, третьего варианта просто не.
#366 #753825
>>753787
>>753753
Такой полный экран только в виме видел. В студии остаются кнопки в верху. Давайте скрин.
>>753840>>753850
65 Кб, 1042x1000
#367 #753840
>>753825
Clion, «presentation mode» (надо настраивать размер шрифта для него с дефолтного 24, кроме этого есть обычный фуллскрин).
>>753846
#368 #753843
>>753743
Эээ, тот же qtcreator, не?
>>753845
#369 #753845
>>753843
В верху же название
#370 #753846
>>753840
Какое-то странное у тебя соотношение сторон. Это точно фулскрин?
>>753847>>753854
#371 #753847
>>753846
Это все окно (alt+printscreen), работающее в presentation mode
#373 #753854
>>753846
Это древний судя по разрешению 4:3 монитор. Хотя они и сейчас продаются – для пейсания в хорошо кастомизируемой IDE (камень в сторону культяп креатора) оч кошерно.
>>753859
#374 #753858
>>753850
Это студия?
>>753863
#375 #753859
>>753854
Это окно, работающее в presentation mode. Можно его и в fullscreen развернуть
>>753850
ШINDOШS + рюсская локаль, признак пидарана-говноеда
>>753861
#376 #753861
>>753859

>ШINDOШS + рюсская локаль, признак пидарана-говноеда


А вот и интеллектуальная элита подоспела
>>753866
#377 #753863
81 Кб, 1920x1080
#378 #753865
>>753850
Это что ещё за флажок? Уведомления? Типа вам пришло сообщение?
>>753869
#379 #753866
>>753861
Я еще могу понять использование Windows+Visual Studio, которые имеют свою область применения, но рюсская локаль в комплекте с этим уже за гранью добра и зла.
>>753867
#380 #753867
>>753866
Тебе чем-то мешает это? Человека заебет, ну он и поменяет. Похуй по большому счету.
#381 #753869
>>753865
Обновления плагинчиков студии.
103 Кб, 904x558
#382 #753927
По оси Х - запуски одной и той же программы с одним и тем же входом, по Y - время выполнения. Но как видите иногда бывают скачки, Синий график - Wall clock time процесса, красный - cpu clock time. Почему одна и та же программа имеет разный cpu clock time на одинаковом инпуте? Рандом в программе не используется.
#383 #753934
>>753927
Если у тебя ОС общего назначения, а не реального времени, то программа в ней выполняется столько, тогда и так как соизволит система.
>>753956>>753983
#384 #753952
>>753927
Потому что твоя ОС шедулит программу как твою мамку, в зависимости от нагрузки (активности фонового говна, фазы луны и тд).
>>753956>>753983
#385 #753956
>>753952
>>753934
Если я буду программу для тестирования олимпиадных задач писать, то что делать?
>>753960>>753971
1470 Кб, 2412x1546
#386 #753959
>>753927
Ну ты понел
>>753967
#387 #753960
>>753956
Прогонять тест пару сотен раз и брать среднее время.
>>753964
#388 #753964
>>753960
Скорее увеличить объем входящих данных на несколько порядков.
>>753968
#389 #753966
>>753850

>PVS-студио


Свежая версия? Где спиздил?
>>753976
#390 #753967
>>753959
SHED_RR,SHED_FIFO - как добиться на линуксе гранулярности выполнения ПО хотя бы 200-300мс - софт активно гоняет по сети данные и обрабатывает поток примерно в 16 Гб/c?
>>753968
#391 #753968
>>753967
Взять ОС реального времени. Хотя вообще нахуй ОС там нужна...

>>753964
Какой в этом смысл, если нужно получить время выполнения на конкретном тесте?
>>753972
#392 #753971
>>753956
Хорошие олимпиадные задачи подбираются таким образом что решение с неэффективным алгоритмом заведомо не способно влезть в ограничения, а задача с эффективным имеет достаточный запас по времени и задержка (если возникнет) не повлияет на прохождение тестов.
#393 #753972
#394 #753976
>>753966
Пробная с их сайта. Скачал посмотреть что за зверь.
103 Кб, 904x558
#395 #753980
Почему cpu time (Красный график) возвращённый функцией clock кореллирует с wall clock time (Синий график), если все точки на этом графике - выполнение одной и той же программы на одном входе данных. Рандома внутри программы тоже нет. Почему время выполнения разнится?
>>753982>>754009
sage #396 #753982
>>753980
Ай, простите, думал первый пост не отправился.
#397 #753983
>>753952
>>753934
Я потому второй график с cpu clock time и нарисовал, по идее количество тиков использованных на выполнение программы то должно быть одинаковым, даже если оно прерывалось.
>>753993
#398 #753993
>>753983
Кэш миссы, так же зависящие от фазы луны учитываешь?

Как я уже говорил – один раз проверять смысла мало, нужно как минимум брать среднее. Ну или просто смотри на сколько алгоритм влезает по времени и памяти как антоша выше говорил.
>>754001
#399 #754001
>>753993

>Ну или просто смотри на сколько алгоритм влезает по времени и памяти


В смысле, "или"? Его совет единственно верный
>>754114
#400 #754009
>>753980
Потому что так устроены современные ОС и процессоры.
#401 #754095
>>753571
Ага. В рувики он тоже Майерс.
#402 #754114
>>754001
Сам себя не похвалишь – никто не похвалит. Авбще я йбл твй руззкейпвтамушта т ы, мудель
>>754119
#403 #754119
>>754114
чини детектор
#404 #754139
>>753550
Да, спасибо
#405 #754165
Анончики, как там с prec headers за пределами VS? Или можно использовать только на VS?
>>754167
#406 #754167
>>754165
У каждого компилятора свой формат этого говна. Но концептуально ph присутствуют везде.
>>754169
#407 #754169
>>754167
а вообще в реальных проектах используют? Компиляция намного быстрее?
>>754171
#408 #754171
>>754169
В реальных проектах используют, точные цифры не скажу, иди гугли.
>>754172
#409 #754172
>>754171
Ок. Спасибо.
#410 #754209
>>753491
ну тогда просто свопать элементы
#411 #754309
Работаю в компании, которая занимается полным циклом изготовления приборов для автоматизации. Устроился недавно, после ВУЗа. Сам инженегр. Всегда тяготел к программированию, умею малость в жаваскрипт. У нас висит вакансия уже давно, о том, что им требуется инженер-программист С++ с опытом много чего. Недавно повесили вакансию, что возьмут выпускника программиста и от него требуется только знать С++ (видимо HR совсем отчаялись). Думаю попробовать вкатиться. Литературой уже помаленьку обмазываюсь.

Вопрос такой - где можно попробовать порешать реальные задачи по нашей отрасли? Предположительно работа будет с написанием ПО для всяческих контроллеров и разработка и поддержка своей SCADA-системы.
>>754406>>754407
#412 #754401
Подскажите, можно ли сортировать std::multimap через std::sort? К примеру так:
std::unordered_multimap<int, int> mm;
std::sort(mm.begin(), mm.end(), std::greater<int>());
>>754405>>754500
#413 #754405
>>754401
Тебя не смущает слово unordered в названии коллекции?
>>754408
#414 #754406
>>754309
дай ссыль на вакансию
#415 #754407
>>754309
DDE, OPC и прочая ебля с COM моделью, вот это все. А вообще подошел бы к руководителю пограмистов и спросил, что им нужно.
#416 #754408
>>754405
да, чет я запарился, мапы совсем не предназначены для ручной сортировки.
>>754409>>754479
#417 #754409
>>754408
Почитая подробнее про то, как устроены бинарное дерево и хештаблица. Ты явно в этом плаваешь.
>>754484
#418 #754412
СЭПЭПЭ мертв
/дискас
#419 #754416
>>754412
Что мертво, умереть не может.
#420 #754434
>>754412
C++ is the Chosen Undead.
>>754438
#421 #754438
>>754434
C++ is forsaken.
#422 #754479
>>754408
Нахуярь свое дерево с сортировкой - это на день работы максимум.
>>754483>>754489
#423 #754483
>>754479
Оно там нахуй не нужно. Я ключ просто для удобства поиска отдельно хранил. И сейчас решил сортировку добавить и чет тупанул. std::vector<std::tuple<>> и std::find, std::sort заглаза.
#424 #754484
>>754409
Разбираюсь немного. Но думаю почитать Кормена (все тут советуют) - норм пишет?
>>754491>>754495
#425 #754489
>>754479
Дядя, ты поехавший? Какое нахуй дерево с сортировкой?
>>754518
#426 #754491
>>754484
Норм, но эта книга не для новичков.
#427 #754495
>>754484
Начни лучше с чего-нибудь попроще. С хабра, например
https://habrahabr.ru/post/65617/
и с подобных статей.
#428 #754500
>>754401
Разного рода мапы, деревья, хеш-таблицы нельзя сортировать. Элементы в них расположены в строго определенном порядке (зависит от реализации) для ускорения их поиска, и менять этот порядок нельзя иначе потом в них нихуя не найдешь.
>>755190
#429 #754506
>>754412
FAQ::Мотивация.2
#430 #754517
>>754528
#431 #754518
>>754489

>Какое нахуй дерево с сортировкой?


Откуда я знаю какое ему нужно.
#432 #754528
>>754517
Народ незнаю куда обратится, собственно беда в следующем, есть вложенная структура

struct DMFP_PP
{
DlinaMassivaForProverki DMFP;
PointPosition
PP;
};

struct DlinaMassivaForProverki
{
int Verh, Pravo, Niz, Levo;
};

struct PointPosition
{
GLint x,y;
};

Создаю

DMFP_PP
CurrentLehtKorPoForProverki;
CurrentLehtKorPoForProverki = new DMFP_PP;
CurrentLehtKorPoForProverki->DMFP = new DlinaMassivaForProverki;

CurrentLehtKorPoForProverki->PP = new PointPosition* [ 4 ];
CurrentLehtKorPoForProverki->PP[ 0 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Verh += 1 ];
CurrentLehtKorPoForProverki->PP[ 1 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Pravo += 1 ];
CurrentLehtKorPoForProverki->PP[ 2 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Niz += 1 ];
CurrentLehtKorPoForProverki->PP[ 3 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Levo += 1 ];

Естественно присваиваю значения( ноль ), но по какой-то неясной причине не присваиваются значения, синтаксис проверял всё норм. На разных форумах смотрел, но там проще или не то. Просьба пояснить, почему не присваиваются значения или не видит ничего по адресу?
#432 #754528
>>754517
Народ незнаю куда обратится, собственно беда в следующем, есть вложенная структура

struct DMFP_PP
{
DlinaMassivaForProverki DMFP;
PointPosition
PP;
};

struct DlinaMassivaForProverki
{
int Verh, Pravo, Niz, Levo;
};

struct PointPosition
{
GLint x,y;
};

Создаю

DMFP_PP
CurrentLehtKorPoForProverki;
CurrentLehtKorPoForProverki = new DMFP_PP;
CurrentLehtKorPoForProverki->DMFP = new DlinaMassivaForProverki;

CurrentLehtKorPoForProverki->PP = new PointPosition* [ 4 ];
CurrentLehtKorPoForProverki->PP[ 0 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Verh += 1 ];
CurrentLehtKorPoForProverki->PP[ 1 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Pravo += 1 ];
CurrentLehtKorPoForProverki->PP[ 2 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Niz += 1 ];
CurrentLehtKorPoForProverki->PP[ 3 ] = new PointPosition[ CurrentLehtKorPoForProverki->DMFP->Levo += 1 ];

Естественно присваиваю значения( ноль ), но по какой-то неясной причине не присваиваются значения, синтаксис проверял всё норм. На разных форумах смотрел, но там проще или не то. Просьба пояснить, почему не присваиваются значения или не видит ничего по адресу?
27 Кб, 400x298
#433 #754547
>>754590
239 Кб, 1959x1959
#434 #754561
>>754528

>DlinaMassivaForProverki


>CurrentLehtKorPoForProverki


>Verh


>Pravo


>Niz


>Levo



YOBA ETO TI?
>>754590>>754592
#435 #754564
>>754528

>Писать латиницей на английском


>Писать кириллицей на русском



Choose your destiny.
>>754590
#436 #754590
>>754547
>>754561
>>754564
Блять, а хули вы хотели? Я то, наивный, думал, что умные люди здесь сидят, а нет. По делу есть, что сказать?

Лучше бы привели пример вложенных структур.
В моём случае две в одной, на основе одной из них динамический массив, причём длинна каждого разная. Проблем в общем-то нет, но меня интересует иной вариант их объявления, разименовывания.
>>754615>>755192
#437 #754592
>>754561
DA ETO YA
POMOGI S PROGRAMMOI
#438 #754615
>>754590
У тебя там невидно вложеных структур.
>>754617
#439 #754617
>>754615
Ясно, о чём ты, но проблема именно в том, что после объявления по этой структуре, по адресу ничего не видит.
>>754618
#440 #754618
>>754617
Залей на pastebin, указатели съел парсер
>>754624
#441 #754624
>>754618
Всё отбой, нашёл в чём проблема.
#442 #754630
Котаны, нужна ваша помощь... Пишу свой pacman с блэкджеком и консольным выводом, но постоянное обновление всей карты приводит к мерцанию, которое жутко бесит. Как сделать так, чтобы только изменяемые клетки рисовало, а старые так висели?
#443 #754632
>>754630
Как отрисовываешь?
>>754633
#444 #754633
>>754632
system("cls");
затем самописную функции map_printer с сout внутри
>>754635
#445 #754635
>>754633
Рисуешь карту отдельно
Рисуешь пэкмена отдельно
Ща ещё подумаю
>>754637
#446 #754637
>>754635
Не, не так
Нарисовал карту - раз
Затем по координатам пэкмена отрисовываешь лишь кусок 1х1 карты, то есть только он отрисовывается, а карта висит
>>754640>>754641
#447 #754640
>>754637
Чёто типа
for бла бла бла
cout то, что являестя картой
}
Затем снова
массив карты[ коорлината х пэкмена ][ координата y пэкмена ] = пекмен
это постоянно обновляешь, предидущую чистишь, там пробел пишешь
>>754645
#448 #754641
>>754637
как каретку по соснольке двигать? fseek чтоль? :\
>>754642
#449 #754642
>>754641
Не совсем понял что такое каретка?
>>754644
#450 #754644
>>754642
Ловите нюфага. Указатель текста.
>>754646>>754671
#451 #754645
>>754640
точка, ввода символа. У меня так и сделано как вы сказали, но из-за низкой тактовой частоты ЦП, у меня при нажатии кнопки (т.е. движения) карта пропадает на мгновение.
>>754647
#452 #754646
>>754644
Обана, ну бывает.

Насчёт пэкмена, один раз рисуешь карту, затем, там где указываешь движение, прописываешь:
При нажатии клавиши, бла бла
в массив по такому то адресу, там i и j рисуется пэкмен, в предидущую клетку рисуется пробел, ниче вроде не должно моргать
>>754647>>754671
#453 #754647
#454 #754651
>>754630
Возьми ncurses. Но ты заебешься с консолькой. Она сложнее массива символов. Лучше сразу делать с графоном.
>>754653
#455 #754653
>>754651
А почему не OpenGL?
>>754658
#456 #754658
>>754653
Можно и его, конечно, но лучше что-то более высокоуровневое вроде sfml.
#457 #754660
Cпасибо всем за помощь.
#458 #754671
>>754644
>>754646
Стопе, каретка это мигающее подчёркивание?
#459 #754675
>>754671
Вроде того
>>754676
#460 #754676
>>754675
Тогда причём тут ньюфаг?
>>754679
#461 #754677
>>754671
В зависимости от твоих предпочтений: от подчёркивания до блока.
#462 #754678
>>754671
Консоль - поток символов, у него есть текущая позиция, куда идет вывод. Если ты, например, выведешь \r, вывод пейдет на начало текущей строки, \b - сдвинется на символ влево, и т.д.
>>755270
#463 #754679
>>754676
Наверно к тому, что все, кто хоть когда-то работал с консолью знают этот термин. Ныне даже в большей часте линуксов это вообще нахуй не нужно.
>>754686
#464 #754681
>>754630
Заблокируй вывод в консоль. Выведи всё что надо. Разблокируй. Осталось узнать как заблокировать. Скорее всего нужна библиотека.
#465 #754686
>>754679

>это вообще нахуй не нужно


А как же крутящаяся палочка, отображающая прогресс? Или меняющиеся процентики.
>>754688
#466 #754688
>>754686
Как твои палочки связаны с консолью?
>>754691
#467 #754691
>>754688
Они в консоли.
>>754693
#468 #754693
>>754691
Как. Это. Связано. С. Блядь. Необходимостью. Консоли.
Ты совсем конченный?
>>754697>>754731
#469 #754697
>>754693
Символ напечатался, а потом поменялся. начит курсор передвинулся и переписал его. Не тупи.
>>754704
#470 #754704
>>754697
Лан я понел, ты траль.
#471 #754718
Скоро 500 постов а ОП продолжает где-то сосать хуй.
>>754727>>754730
#472 #754727
>>754718
Ну значит, будем плясать без него.
#473 #754730
>>754718
После 600 сам перекачу если оп не появится.
>>754745
#474 #754731
>>754693
Ну ты делаешь, например, архиватор. Пока файл архивируется, в консоль выводишь прогресс. Но чтобы не выводить новую строчку каждый раз, затираешь старые символы, и выводишь поверх новые.
>>754745
#475 #754745
>>754730
После 550 нужно будет скроллить 2 минуты до треда.

>>754731
Не траль плз
>>754747
#476 #754747
>>754745

>После 550 нужно будет скроллить 2 минуты до треда.


Поиск есть.
>>754748
#477 #754748
>>754747
Заебал толстить. Пшёл нахуй из треда.
>>754754
#478 #754754
>>754748
В хуй мне потолсти, лалка
#479 #754799
пацаны не работает код . Передаю в функцию файлы, но при комлийле выкидывает ошибку ios_base(const ios_base&);
код функции
void File (fstream fin, fstream fout)
{
fin.seekg (0, fin.end);
int length = fin.tellg();

fin.seekg (0, fin.beg);
char c;
for (int i =1 ;i<length;i++)
{
fin.seekg (-i-1, fin.end);
fin.get(c);
fout.put(c);
}
}
#480 #754804
>>754799
нельзя копировать потоки ввода-вывода
>>754889
#481 #754811
>>754799
gist.github, pastebin, тысячи их, пидр
#482 #754817
>>754799
Не умеешь читать доку к либе - страдай.
sage #483 #754889
#484 #755091
С++ для чайников автора Стефана Дэвиса (7-е издание)-сойдёт для изучение сишки чи нахуй ?
>>755092
#485 #755092
>>755091
Учи с++ по страуструпу.
>>755093
#486 #755093
>>755092
А Дэвис-хуесос ?
#487 #755094
Хочу написать имиджборду на С++, с чего начать?
#488 #755123
>>755094
Начни с питона
#489 #755143
>>755094
Локальная консольна ямиджборда! Единственная в своём роде. А унутре у ней неонка!
#490 #755190
>>754500
Даун, мапы уже отсортированы.
#491 #755192
>>754590
Иди на хуй и лабу свою забери.
#492 #755215

> 2016 год


> Майкрософт все еще не в состоянии написать деинталлятор, который бы не ломал систему


> Заводим проект на гитхабе


https://github.com/Microsoft/VisualStudioUninstaller
Эта хуета когда-нибудь закончится?
>>755218>>755261
123 Кб, 665x510
#493 #755218
>>755215
Сука лол. Деинсталятор с гитхаба тоже не работает.
https://www.youtube.com/watch?v=tmPG5WfO14A
#494 #755261
>>755215
Пришло время переустанавливать Ш1ND0W2. или накатить систему с человеческой фс.
#495 #755270
>>754678

>Консоль - поток символов


это юниксовая сделана на вводе-выводе, виндовая по другому..
>>755274
#496 #755274
>>755270
GetStdHandle..
#497 #755636
Вопрос:
Почему в дочернем классе можно переопределить функцию родительского класса, при этом не указывая virtual в род. классе? Чем эти 2 случая отличаются?
#498 #755640
>>755636
Ты ее просто перекрываешь. Полиморфизм не будет работать.
#499 #755644
>>755636
Процесс вызова функции состоит из нескольких этапов. Например, ты пишешь f (42); Тогда последовательно произвойдут:
1. Name lookup (компилятор отбирает из всех имен f, встретившихся в текущей единице трансляции, только те, которые видимы в данной точке программы)
2. Разрешение перегрузки (компилятор отбирает из всех функций, отобранных на предыдущем этапе, ту, у которой типы параметров лучше всего соответствуют типам аргументов - f (int) в твоем случае выберется вместо f (char), даже если видимы обе)
3. Разрешение доступа (компилятор проверяет, что ты имеешь право вызвать выбранный метод - например, что он не является private, если ты вызываешь его не из друзей/других методов)
4. Разрешение виртуальности (уже в рантайме для виртуальной функции выберется, вообще говоря, не она сама, а аналогичная из наиболее глубокого потомка)

Соответственно, случаи отличаются как пункты 1 и 4 - в первом случае это будет вообще другая функция, даже до перегрузки дело не дойдет. Во втором случае, наоборот, она заменится в самый последний момент, для заменяющей не будет ни проверки доступности, ни поиска лучшего соответствия, все они будут проведены для заменяемой - виртуальной в родителе.
#500 #755645
#501 #755675
>>749082 (OP)
Посоны, я полный деб и не могу понять что значит символ ^ допустим в контексте

>String^ string;


Не гуглится нихуя
>>755679
#502 #755679
>>755675
Никогда не думал, что буду помоглать гуглить деб-пакету, но вот держи:
http://stackoverflow.com/questions/6616599/does-the-symbol-replace-cs-ref-in-parameter-passing-in-c-cli-code

До чего техника дошла.
#503 #755683
>>755636
Если функция обычная, не помеченная как виртуальная, то идет просто вызов обычной функции, в которую передастся this в качестве неявного параметра. Когда ты вызываешь мембер-функцию по указателю на базовый класс, то поиск функции происходит в базовом классе, а когда по указателю на наследник, то поиск происходит сначала в классе-наследнике.

Когда функция виртуальная, то все происходит сложнее. Тогда для этого класса и всех его наследников заводится таблица виртуальных функций, в каждой из которых сопоставляется имя функции её фактическому адресу. Например, у тебя в базовом классе есть виртуальный метод foo, который переопределен в наследнике. Тогда в таблице виртуальных функций базового класса будет строчка вида foo -> <адрес Base::foo>, а в таблице вирт. функций наследника строчка вида foo -> <адрес Derived::foo>. И в каждом созданном объекте хранится указатель на соответствующую таблицу вирт. функций. Вызов виртуальной функции преобразуется компилятором в цепочку действий:
1. Пойти в таблицу вирт. функций по указателю внутри объекта
2. Найти там соответствующую функцию
3. Вызвать её

Ну вот, теперь что происходит в случае, когда функция перекрывается и когда она виртуальная.
Первый случай: есть базовый класс Base, у него есть невиртуальная функция foo, от него наследуется класс Derived, который функцию foo перекрывает. Теперь такой код:
Base[звездочка] b = new Derived();
b->foo();
Здесь компилятор разрешает вызов мембер-функции foo. Он видит, что объект, у которого она вызывается, является экземплятором класса Base, про то, какой фактически объект находится по этому указателю, компилятор не может знать, поэтому он просто вызывает функцию Base::foo.
Теперь представим, что функция foo объявлена с модификатором virtual.
Тогда вызов функции b->foo() компилятором будет преобразован в поход в таблицу вирт. функций, в поиск там соответствующей функции, взятие её адреса и вызов. По указателю b фактически лежит объект класса Derived, у которого в таблице вирт. функций есть строчка foo -> <адрес_Derived::foo>, будет взят адрес Derived::foo, после чего она и будет вызвана.

Стало понятнее?
#503 #755683
>>755636
Если функция обычная, не помеченная как виртуальная, то идет просто вызов обычной функции, в которую передастся this в качестве неявного параметра. Когда ты вызываешь мембер-функцию по указателю на базовый класс, то поиск функции происходит в базовом классе, а когда по указателю на наследник, то поиск происходит сначала в классе-наследнике.

Когда функция виртуальная, то все происходит сложнее. Тогда для этого класса и всех его наследников заводится таблица виртуальных функций, в каждой из которых сопоставляется имя функции её фактическому адресу. Например, у тебя в базовом классе есть виртуальный метод foo, который переопределен в наследнике. Тогда в таблице виртуальных функций базового класса будет строчка вида foo -> <адрес Base::foo>, а в таблице вирт. функций наследника строчка вида foo -> <адрес Derived::foo>. И в каждом созданном объекте хранится указатель на соответствующую таблицу вирт. функций. Вызов виртуальной функции преобразуется компилятором в цепочку действий:
1. Пойти в таблицу вирт. функций по указателю внутри объекта
2. Найти там соответствующую функцию
3. Вызвать её

Ну вот, теперь что происходит в случае, когда функция перекрывается и когда она виртуальная.
Первый случай: есть базовый класс Base, у него есть невиртуальная функция foo, от него наследуется класс Derived, который функцию foo перекрывает. Теперь такой код:
Base[звездочка] b = new Derived();
b->foo();
Здесь компилятор разрешает вызов мембер-функции foo. Он видит, что объект, у которого она вызывается, является экземплятором класса Base, про то, какой фактически объект находится по этому указателю, компилятор не может знать, поэтому он просто вызывает функцию Base::foo.
Теперь представим, что функция foo объявлена с модификатором virtual.
Тогда вызов функции b->foo() компилятором будет преобразован в поход в таблицу вирт. функций, в поиск там соответствующей функции, взятие её адреса и вызов. По указателю b фактически лежит объект класса Derived, у которого в таблице вирт. функций есть строчка foo -> <адрес_Derived::foo>, будет взят адрес Derived::foo, после чего она и будет вызвана.

Стало понятнее?
#504 #755690
>>749082 (OP)
Чем code::blocks хуже clion или codelite, почему его нет в шапке?
На чем трушнее разрабатывать гуй в 2016?
Juce/wxvidgets/gtk/qt и почему? Какие плюсы-минусы?
>>755879>>755881
#505 #755710
>>755094
С похода к духтору. Он тебе поможет социализироваться, если ещё не всё так запущено, конечно.
#506 #755812
Ньюфаг ИТТ. Посоны, что вы думаете об оффлайн-курсах? Это вообще эффективно и стоит своих денег? Хочу записать на что-нибудь подобное - http://levelp.ru/courses/programmirovanie/c-junior-developer/
Какие подводные камни?
>>755831>>755887
#507 #755831
>>755812
Нахуя тебе эти курсы? Скачай книжку и почитай.
>>755840
#508 #755840
>>755831
На книжки я кладу хуй, как только дохожу до непонятного места. С онлайн-курсами то же самое.
>>755945
#509 #755879
>>755690
code::blocks лучше чем они имхо
в codelite автодополнение работает плохо/не работает вообще
>>755920>>756007
#510 #755881
>>755690

>2016


>GUI

>>756007
#511 #755885
>>755094
boost::wakaba. Не благодари
#512 #755887
>>755812
Да, конечно иди. После подобных курсов меня сразу взяли на должность мидл-девелопера, хотя я вообще языка практически не знал до них. Стоит своих денег!
>>755898
118 Кб, 596x393
#513 #755898
>>755887

>40 часов


>мидл-девелопера



Вприсядку с поехавшего
#514 #755920
>>755879
Ты поехавший дядя? Открой хоть раз eclipse cdt, это - самая сильная IDE в code assistant на данный момент.
>>755926>>756007
#515 #755926
>>755920
Про cdt не было речи
#516 #755945
>>755840
Что тебе мешает положить хуй когда дойдешь до непонятного места на оффлайн курсах?
>>756083
#517 #756007
>>755879
Чего его нет в шапке тогда?
>>755920
Эклипс - жуткая и тормозящая параша.
>>755881
Кек
>>756011>>756117
#518 #756011
>>756007
moar нажми
>>756035
#519 #756035
>>756011
В шапке в основных какое-то говно, я это имею ввиду.
#520 #756083
>>755945
1. Деньги уплочены.
2. Чисто психологически не так легко соскочить, когда занимаешься с другими людьми.
3. Препод должен популярно объяснять непонятные моменты.
#521 #756117
>>756007

>Эклипс - жуткая и тормозящая параша.


Ты ебу дал? Почему у меня не тормозит? Ни с hdd, ни тем более с ssd.
#522 #756188
Есть текстовый файл в котором хранится информация о зависимостях классов, типа класс 1 наследует у класса 2 и тд.

как все это считать в матрицу смежности?
>>756191
#523 #756191
>>756188

> матрицу смежности


> C++

>>756192
#524 #756192
>>756191
что не так?
>>756197
#525 #756197
>>756192
Список смежности проще на крестах. Матрицу на си или паскале строить будешь.
>>756199>>756425
#526 #756199
>>756197
окей. это не столь важно, список или матрицу. главное реализовать поиск.
считать строку и определить что это за класс и откуда наследует (если наследует вообще).
>>756210>>756227
#527 #756210
>>756199
В каком формате храниться инфа?
>>756214
#528 #756214
>>756210
текстовый файл с объявлением класса, типа:
class Parent {};
class Child: virtual public Parent {};
>>756222
#529 #756222
>>756214
Все классы в разнабой? Родитель может после ребёнка быть? Тогда нёжен мап. Ключ имя класс, а значение это множество унаследованных от него классов. Читаешь файл по строкам. Если встретил класс базовый, то добавляешь в мап и множество детей пустое. Если встретил унаследованный класс, то класс ребёнка добавляешь в множество детей класс родителя, и создаешь пустой класс ребёнка если он ещё не создан. ЗА 1 проход должен справиться. Можно не мапом, а вектром. Так сложнее, но в конце в список смежностей не придётся конвертировать.
>>756408
#530 #756227
>>756199
Какие ограничения? Могут ли в классе быть объявления методов, функций и т.п., или это форвард-декларации без тела класса? Могут ли быть комментарии в этом файле? Однострочные, многострочные? Может ли быть что-то кроме классов в файле? Строки, например?

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

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

Ну и потом сохраняешь это как-нибудь. Если нужна матрица смежности, ну так создай массив массивов булов, лучше всего юзай std::array, и заполняй.
>>756294>>756408
#531 #756294
>>756227
Двачую, в общем случае без полноценной компиляции до конца хуй распарсишь. Например, можно без проблем нахуярить такой код, чтобы родители были разные в зависимости от содержимого какого-то из строчных литералов, и все развалится от малейшего дуновения нестандартного парсера.
>>756298
#532 #756298
>>756294

>текстовый файл с объявлением класса


>строчных литералов


Он же вроде объяснил что там только такие строки как в примере.
#533 #756382
Можно ли как-то взять модуль числа?
Хочу убрать вероятный знак -.
>>756387>>756388
sage #534 #756387
>>756382
n = |n|
#535 #756388
>>756382
sqrt(sqr(n))
>>756396>>756410
#536 #756396
>>756388
sqr - не могу найти, это квадрат, так?
>>756398>>756399
#537 #756398
>>756396
Да. Ищи тщательнее.
>>756402
#538 #756399
>>756396
можешь сам написать
int str(int num)
{
int res = 0;
for(size_t i = 0; i!=num; ++i)
{
res += num;
}
return res;
}
#539 #756400
>>756399

>str


sqr
#540 #756402
>>756398
Нашёл какой-то pow, cделал так: double module = sqrt(pow(compare,2.0));
Оно показывает 0 в любом случае.

>>756399
Спасибо, сейчас попробую.
>>756406
#541 #756406
>>756402
pow ты загуглить смог, а abs нет?
>>756410
#542 #756408
>>756227
>>756222
Спасибо за помощь, но не могу вытащить из строки "нужное". Есть ли вариант с помощью регулярных выражений получить из строки:
class Child1: virtual public Parent, virtual public Child0 {};
строку:
Child1 Parent Child 0

Каким образом это реализовать?
>>756413
#543 #756410
>>756406
Спасибо.

Альсо, а что в этом методе убирает минус: >>756399
>>756388
Так, на будущее.
#544 #756413
>>756408
Ты не смог распрасить строки в примере или в твоём текстовом файле тебе что-то мешает?
>>756416
#545 #756416
>>756413
Я не смог понять КАК это сделать. Мне ничего не мешает, есть текстовик, там все эти наследования, как я и говорил, их может и не быть, а может быть 2-3, к примеру. Суть не в этом.
Мне надо получить то, что я написал выше, с учетом того, что если будет больше наследований, то соответственно больше имен
>>756537
#546 #756425
>>756197
Какая разница-то?
>>756434
#547 #756434
>>756425
Списсок смежностей легко делать на динамических массивах. И он лучше матрицы т.к. занимает меньше памяти.
>>756440>>756447
#548 #756440
>>756434
Это понятно

> Список смежности проще на крестах


Шо на плюсах, шо на сях. Одинаково будет
>>756442
#549 #756442
>>756440
на сях не вектора самому функции инсерт и делите в список писать будешь и с указателями ебаться
>>756446
#550 #756446
>>756442
А, лол, std::vector же, действительно. Сорь
#551 #756447
>>756434
Ну на плюсах ты тоже нормально не сделаешь. Фрагментация заебет. Но для laba_graph.cpp норм.
>>756448>>756450
#552 #756448
>>756447

>нормально не сделаешь


я про простые методы типа vector<vector<unsigned>>
#553 #756450
>>756447

>Фрагментация


А где её нет? Это не от языка зависит.
>>756451
#554 #756451
>>756450

>А где её нет?


в матрице смежности
>>756453
#555 #756453
>>756451
Каждый вложенный массив может появится в новом месте. Чтобы это избежать костыль по превращению двумерного массива в одномерный нужен. И не эффективно т.к. лучше фрагментация памяти чем её перерасход.
>>756454
#556 #756454
>>756453

>костыль по превращению двумерного массива в одномерный нужен


Это новое название memory pool?
>>756456
#557 #756456
>>756454
Нет не пул. Там когда a[i*n+m] вместо a[n][m].
>>756459
#558 #756459
>>756456
А что плохого то?
>>756462
#559 #756462
>>756459
Костыль, сложно, нечитаемо, очень неэффективно по памяти.
>>756468
#560 #756468
>>756462

>Костыль, сложно, нечитаемо


ну ок.

int arr = new int[n];
arr[0] = new int[n
m];
for(size_t i = 1; i!=n; ++i)
arr = arr[i - 1] + m;

ну и обращайся к массиву arr[j].

>очень неэффективно по памяти


поясни
>>756470>>756473
#561 #756470
>>756468
int arr = new int [n];
arr[0] = new int[n
m];
for(size_t i = 1; i!=n; ++i)
arr = arr[i - 1] + m;
>>756472>>756473
#562 #756472
>>756470
int arr = new int [n];
arr[0] = new int[n
m];
for(size_t i = 1; i!=n; ++i)
arr = arr[i - 1] + m;
#563 #756473
>>756468

>поясни


Это я в общем про метод.

>>756470
Отправь ещё раз. Вдруг получится.
#564 #756476
>>756478
#565 #756478
>>756476
Ну и что это?
>>756480
#566 #756480
>>756478
как ты и хотел. Без

>Костыль, сложно, нечитаемо



А, вообще, тебе любой пояснит, почему так делать лучше.
#567 #756537
>>756416
Можешь регуляркой, что-то вроде http://pastebin.com/L3ch8ze5

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

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

std::string base_class_name;
std::vector<std::string> derives;
std::string word;
std::cin >> word;
if(word != "class") exit();
std::cin >> base_class_name;
if(base_class_name.rbegin() == ':') base_class_name.erase(base_class_name.rbegin());
if(
base_class_name.rbegin() == ';') exit();
while(true) {
std::cin >> word;
if(word == "virtual") std::cin >> word;
if(word == "public" || word == "private" || word == "protected) std::cin >> word;
derives.push_back(word);
if(word.rbegin() == ';' || word.rbegin() == ',') derives.back().erase(derives.back().rbegin());
if(*word.rbegin() == ';') break;
}

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

Последний вариант -- погугли, что такое лексеры, генераторы парсеров и парсер-комбинаторы, на хабре есть статьи и в других местах тоже, можешь использовать их, они сложнее в освоении, нужно иметь знания в области формальных языков и грамматик а также требуют времени на освоение, но они позволяют решать эти задачи более элегантно и просто.
#567 #756537
>>756416
Можешь регуляркой, что-то вроде http://pastebin.com/L3ch8ze5

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

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

std::string base_class_name;
std::vector<std::string> derives;
std::string word;
std::cin >> word;
if(word != "class") exit();
std::cin >> base_class_name;
if(base_class_name.rbegin() == ':') base_class_name.erase(base_class_name.rbegin());
if(
base_class_name.rbegin() == ';') exit();
while(true) {
std::cin >> word;
if(word == "virtual") std::cin >> word;
if(word == "public" || word == "private" || word == "protected) std::cin >> word;
derives.push_back(word);
if(word.rbegin() == ';' || word.rbegin() == ',') derives.back().erase(derives.back().rbegin());
if(*word.rbegin() == ';') break;
}

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

Последний вариант -- погугли, что такое лексеры, генераторы парсеров и парсер-комбинаторы, на хабре есть статьи и в других местах тоже, можешь использовать их, они сложнее в освоении, нужно иметь знания в области формальных языков и грамматик а также требуют времени на освоение, но они позволяют решать эти задачи более элегантно и просто.
>>756538
#568 #756538
>>756537
наши звездочки пожрал долгоносик, милорд
Надеюсь, понятно, где они должны стоять везде, где разыменовывается итератор rbegin() и сравнивается с символом
>>756540
#569 #756540
>>756538

>Надеюсь, понятно, где они должны стоять везде, где разыменовывается итератор rbegin() и сравнивается с символом


Охуел, бля? Еще мы тут будем вчитываться в твой высер. Заливай на ideon свое говно.
>>756553
#570 #756553
>>756540
Иди нахуй, я ответил человеку. Если ему это нужно -- разберется или хотя бы вежливо попросить залить куда-нибудь.
Если твои глазки болят и вытекают глядя на мое говно, можешь идти, сесть в уголочек и тихонечко их себе выколоть.
#571 #756806
4.6/1 говорит, что сохраняет значение только float->double promotion, а double->long double может терять точность.
3.9.1/8 говорит, что long double имеет достаточную точность, чтобы хранить любое значение из double.
Тебе не кажется, анон, что тут какая-то нестыковка?
>>756924>>757074
10 Кб, 652x54
sage #572 #756924
>>756806
Где ты увидел в 4.6/1 конверсию из double в long double?
>>756970>>757074
#573 #756970
>>756924
Я имею в виду как раз, что ее нет среди promotions. Получается, безопасность не гарантируется, но 3.9.1/8 утверждает обратное. Если она всегда безопасная, то зачем ее отнесли к conversions, разве основная суть promotions не отделение гарантированно безопасных преобразований?
>>757007>>757074
sage #574 #757007
>>756970
В 8.5.4/7 вроде указаны все сужающие преобразования, видимо, все остальные являются нормальными. Хотя действительно странно, что напрямую нигде не сказано про double -> long double.
>>757070>>757074
#575 #757070
>>757007

>8.5.4/7


Добра тебе, няша. Я-то смотрел в разделе про типы, а оно вон где запрятано.
>>757074
#576 #757074
>>756806
>>756924
>>756970
>>757007
>>757070
Krestothread.
Lyrics. Labas. Language lawyers.
>>757942
#577 #757646
Switch не работает со string, почему?
>>757653
sage #578 #757653
>>757646
Потому что switch в c и c++ работает только с перечисляемыми типами. string, естественно, к ним не относится.
#579 #757661
Подскажите пожалуйста, я недавно читаю книгу, но медленно иду, и тут я застопорился в задачке из книги с шапки:
http://ideone.com/iGGnvN
Как сделать так, чтобы если я ввёл unit не из списка (m, cm, in, ft), то мне писалось бы что он неверный и предлагалось заново ввести его, а не закрывалась программа?
На 18-22 строках у меня бам break; стоит.
>>757667
#580 #757667
>>757661
Поменять break на continue.
>>757675
#581 #757675
>>757667
Cпасибо, т.е. брейк просто прерывает программу, а продолжить прерывает текущую функцию, и делает откат, как-то так?
>>757682
#582 #757682
>>757675
У тебя дело происходит в цикле while. break выводит из цикла, continue отправляет на следующую итерацию.
>>757684
#583 #757684
>>757682
continue относится только к циклам, типа while / for? У меня он же в if находится. Понятно, в книге, просто, про него не было написано.
>>757691
#584 #757691
>>757684
break/continue могут быть в любом цикле, независимо от положения. Они будут относиться к наиболее вложенному, если отсутствует метка.
>>757705
#585 #757705
>>757691
А у вас нету чата какого-нибудь?
#586 #757791
Сап плюсач. Есть одна функция. А вернее целый класс с этой ф-цией.
http://pastebin.com/YJDR9eTL
Вот сам код. При попытке его скомпилить(это кусок библиотеки) все получается и никаких проблем нет. Но вот при подключении этой самой библиотеки к тестовому проекту, последний выдает ошибку линковщика, жалуясь на DelegateProc. К слову если убрать присвоение
DelegateProc = _DelegateProc;
То код вполне себе компилится. Казалось бы дело именно в нем, но как, черт возьми, тогда его правильно сделать?
>>757794
#587 #757794
>>757791

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


как и любой другой статический член класса.
>>757806>>757817
#588 #757806
>>757794
Ты имеешь ввиду его нужно было в самом начале еще присваивать? То есть указать сначала тип, потом этот объект, и потом какую-нибудь начальную ф-цию. Но как указать тип?
???? Win32WindowWrapper::DelegateProc = DefWindowProc;
Что писать в начале?
>>757817
#589 #757817
>>757794
>>757806
Анончик. Я нашел ответ!
LRESULT(__cdecl *Win32WindowWrapper::DelegateProc)(HWND, UINT, WPARAM, LPARAM);

Я так долго не мог понять потому, что тип как бы вокруг названия переменной. Но теперь таки разобрался!
#590 #757942
>>757074

> Language lawyers.


Собственно, всё "знание" цепепе — это быть language lawyer. ООПе оно в любом языке ООПе.
55 Кб, 722x250
#591 #758137
Пытаюсь установить box2d, а вот такая ошибка вылазит. что бы это значило?
#592 #758182
Есть QQuickWindow, можно в него опенгл рендерить отдельно? Пошарил по гуглу, говорят цеплять рендерер к beforeRendering/afterRendering, но это хуйня какая-то, мне нужно больше 60фпс.
57 Кб, 1889x866
#593 #758702
Читаю Страуструпа
Не могу запустить первую же программу.
ЧЯДНТ?
>>758926>>758938
#594 #758926
>>758702

> std_lib_facilities

#595 #758938
>>758702
не используй тут std_lib_facilities.h внутри нечто избыточное для "драститя,мирок"
пиши вместо
#include <iostream>
using namespace std;

+ функция int должна возвращать int, т.е. перед "}" вкрячь

return (2016); // 2016 - ничего не означающее

или вообще просто замени "int main~" на "void main~"

Так оно должно запуститься, но результата ты, скорее всего не заметишьпрограмка быстро выполнится и кокошечко сразу цакроица, так что перед return~ пропиши, к примеру,
int xui; // объявляешь переменную хui, типа int
cin >> xui; // тут программка будет ждать ввода хуя, - ничего не будет происходить, пока не введешь число - полюбуешься на свой Hell~
>>758948>>759013
#596 #758948
>>758938

>+ функция int должна возвращать int, т.е. перед "}" вкрячь



> или вообще просто замени "int main~" на "void main~"



Один совет охуительней другого.
#597 #759013
>>758938
Даун не знает про гетчар и систем пауз, а советы раздает.
>>759025
#598 #759025
>>759013

>getchar()


Не стандартные средства языка.

>system("pause")


А за такое вообще нужно брать и убивать.
>>759039
67 Кб, 602x648
#599 #759039
>>759025

>>getchar()


>Не стандартные средства языка.


Лолшто
>>759043
#600 #759043
>>759039

>Defined in header <cstdio>


Ферштейн?
#601 #759081
>>759043
Лол, блядь! Тогда что есть стандартные средства?
47 Кб, 1429x210
#602 #759120
>>759043
Ну и что? cstdio - часть стандартной библиотеки c++. В pure c такого хедера вообще нет.
>>759145
#603 #759136
>>759043
Хотя лучше использовать std::cin.ignore(), да
#604 #759145
>>759120
Ты тралишь? Зачем тогда cin рекомендуешь, если его нет в pure c?
>>759146
#605 #759146
>>759145
Потому что, он есть в c++, которому посвещен этот тред.
>>759147
sage #606 #759147
>>759146
Все с тобой понятно.
140 Кб, 800x600
#607 #759185
Суп, аноны, поясните за ошибку при создании проектa:
>>759188>>759243
#608 #759188
>>759185
У тебя неправильная ide и ось
#609 #759243
>>759185
Вайфая нет
Сети нет
Звука нет
>>759249
#610 #759249
>>759243
enjoy you linux
>>759259
#611 #759259
44 Кб, 600x402
#612 #759260
QT и OpenMP ПРОБЛЕМЫ
У меня есть два вопроса:
1) Есть Window. На нём есть пара элементов. Как можно поменять параметры одного элемента из кода другого? Обычно это делается сигналами/слотами, но что делать, если я хочу, например, изменить значения на сразу двух лейблах по нажатию кнопки? Мне нужно биндить слот на кнопке сразу к двум сигналам на лейблах?

2) Есть кнопка. Когда нажимаю кнопку, начинается в цикле выполнение некоторого кода. Цикл распараллеленн с помощью OpenMP. После завершения нужно вывести результат в лейбл на форме.
Как сделать так, чтобы во время этих вычислений, само приложение не подвисало? Такое возможно с OpenMP вообще?
Ну то-есть, я хочу, чтобы приложение просто висело и не крашилось от того, что пользователь по нему кликнет пару раз наугад куда-нибудь.
>>762413
#613 #759280
160 Кб, 959x957
#614 #759881
Может кто-нибудь помочь с решением задачи по программированию (через функции).
>>759953>>760253
#615 #759953
>>759881

> Лабы идут нахуй


И ты вместе с ними.
#616 #760253
>>759881
30 баллов это дохуя или нет?
>>760661
#617 #760661
#618 #760750
Нахуй мне учить с++ если в любой компании сидят задроты которые всю жизнь потратили на изучение c++
>>761635
#619 #761635
>>760750
Не учи. Похуй как-то вообще. Или тебя по учебе заставляют? Тогда прогревай анус лол.
ХЕЛП ХЕПЛ #620 #762336
завтра курсак сдавать, а у меня=> Недопустимый путь: "F:\Курсач 0.2.accdb". Убедитесь, что путь указан правильно и имеется подключение к серверу, на котором находятся файлы.
как обновить путь автоматом к базе сразу ко всему?
#621 #762413
>>759260
1. Да, либо отдельный слот создавать, чтобы он выводил сразу на обе подписи.
2. QtConcurrent может такое, напихаешь задач и запустишь их. Создашь QEventLoop и стартанешь его, после выполнения всех задач скажешь QEventLoop'у идти нахуй со своими ивентами.
#622 #763148
Добрый вечер.
Есть программа, где на исходном изображении мышкой выделяю некоторый контур и этот контур, как новое изображение загружается в новое окно.
Сделал так:

private: System::Void pictureBox1_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
if (isDrag) {
isDrag = false;
pictureBox1->Image = bmp1;
Pen^ p = gcnew Pen(Color::White);
Point endPoint = Point(e->X, e->Y);
int width = endPoint.X - startPoint.X;
int height = endPoint.Y - startPoint.Y;
theRectangle = Rectangle(startPoint.X, startPoint.Y, width, height);
g->DrawRectangle(p, theRectangle);
endP = endPoint;
}
}
private: System::Void button11_Click_1(System::Object^ sender, System::EventArgs^ e) {
int W =bmp1->Width, H = bmp1->Height;

bmpF = gcnew Bitmap(W, H);
for (int i = startPoint.X; i <= endP.X; i++)
{
for (int j = startPoint.Y; j <= endP.Y; j++)
bmpF->SetPixel(i-startPoint.X, j-startPoint.Y, bmp1->GetPixel(i, j));
}
pictureBox16->Image = bmpF;
}

Как сделать, что бы этот контур можно было поворачивать? Что-то никак не могу разобраться.
#622 #763148
Добрый вечер.
Есть программа, где на исходном изображении мышкой выделяю некоторый контур и этот контур, как новое изображение загружается в новое окно.
Сделал так:

private: System::Void pictureBox1_MouseUp(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
if (isDrag) {
isDrag = false;
pictureBox1->Image = bmp1;
Pen^ p = gcnew Pen(Color::White);
Point endPoint = Point(e->X, e->Y);
int width = endPoint.X - startPoint.X;
int height = endPoint.Y - startPoint.Y;
theRectangle = Rectangle(startPoint.X, startPoint.Y, width, height);
g->DrawRectangle(p, theRectangle);
endP = endPoint;
}
}
private: System::Void button11_Click_1(System::Object^ sender, System::EventArgs^ e) {
int W =bmp1->Width, H = bmp1->Height;

bmpF = gcnew Bitmap(W, H);
for (int i = startPoint.X; i <= endP.X; i++)
{
for (int j = startPoint.Y; j <= endP.Y; j++)
bmpF->SetPixel(i-startPoint.X, j-startPoint.Y, bmp1->GetPixel(i, j));
}
pictureBox16->Image = bmpF;
}

Как сделать, что бы этот контур можно было поворачивать? Что-то никак не могу разобраться.
#623 #766465
Посоны, зачем нужно это ебаное std::? У меня без этой хуйни все норм компилится и запускается.
>>768027
#624 #768007
Анон, а какое самое большое приложение ты запердоливал на крестах, и что оно делало?
#625 #768027
>>766465
Для сношения вашей матушки, уважаемый.
#626 #768170
Скиньте книг по multithreading, которые пояснят за устройство, концепции, что происходит на уровне ОС. Ну и картиночек бы еще, но эт необязательно. Пасиба.
#627 #769232
>>749082 (OP)
Чем писать хеллоуворды на линуксе(убунту16.04)?
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 16 июня 2016 года.

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

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