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

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

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

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

4 Кб, 542x415

Оффициальный™ традиционный® C++ тред #33 21 Май, 11:45 #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.х, полной обратной совместимости между ними нет как в пистоне, ага.

Cкачать бесплатно без смс

Документация к 4.8

Более полная документация к обеим версиям (на ангельском)

Литература:

Автор(ы)

Название

Год

Ссылка

Макс Шлее

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: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.

Предыдущие треды на архиваче

https://arhivach.org/thread/94971/

https://arhivach.org/thread/94972/

https://arhivach.org/thread/99414/

https://arhivach.org/thread/100995/

https://arhivach.org/thread/105148/

https://arhivach.org/thread/109335/

https://arhivach.org/thread/112797/

https://arhivach.org/thread/114519/

https://arhivach.org/thread/117109/

https://arhivach.org/thread/120019/

https://arhivach.org/thread/122683/

https://arhivach.org/thread/124637/

https://arhivach.org/thread/125532/

https://arhivach.org/thread/127327/

https://arhivach.org/thread/128133/

https://arhivach.org/thread/134437/

https://arhivach.org/thread/135285/

https://arhivach.org/thread/139690/

https://arhivach.org/thread/144812/

https://arhivach.org/thread/147540/

https://arhivach.org/thread/149983/

https://arhivach.org/thread/151271/

https://arhivach.org/thread/153304/

https://arhivach.org/thread/156131/

https://arhivach.org/thread/156310/

https://arhivach.org/thread/157411/

https://arhivach.org/thread/158594/

https://arhivach.org/thread/160272/

https://arhivach.org/thread/161975/

https://arhivach.org/thread/164154/

https://arhivach.org/thread/167496/

https://arhivach.org/thread/170422/

Старые ненумерованные треды

https://arhivach.org/thread/45477/

https://arhivach.org/thread/48611/

https://arhivach.org/thread/60085/

https://arhivach.org/thread/66322/

https://arhivach.org/thread/69413/

https://arhivach.org/thread/73221/

https://arhivach.org/thread/77999/

https://arhivach.org/thread/79194/

https://arhivach.org/thread/82038/

https://goo.gl/vvs9GP/

https://goo.gl/ZnBsYt/

Отдельные Qt-треды

https://arhivach.org/thread/15387/

https://arhivach.org/thread/65590/

Ответы>>749174>>749362>>749397>>749567>>750227>>751064>>754517>>755675>>755690>>769232

21 Май, 11:46 #2 #749086

Зарепортил фашиста

21 Май, 11:48 #3 #749090

Мод, старший брат скоро перекатится. И в стихе 1 раз вместо ё стоит ё, а в другой е.

Ответы>>749101

21 Май, 12:00 #4 #749101

>>749090
А что там в стандарте говорится на сей счет?

Ответы>>749105

129 Кб, 1600x849

21 Май, 12:00 #5 #749104

Вкатился с задачей. Есть один фак http://pastebin.com/1f7ZVx4V , здесь исходники http://skse.silverlock.org/ . Теперь помогите нубу, который дальше не может в Visual Studio. Я скачал портабл версию VS, теперь думаю как мне выполнить "Expand steam_loader project".

Ответы>>749109>>749154

21 Май, 12:01 #6 #749105

>>749101
Не по фэншую.

21 Май, 12:10 #7 #749109

>>749104
Ты не ту студию скачал, та что у тебя просто блокнот для редактирования кода.

Ответы>>749111

59 Кб, 1590x160

21 Май, 12:17 #8 #749111

>>749109
Спасибо. Тогда немного подождем и вернемся к нашему вопросу.

Ответы>>749159

21 Май, 12:58 #9 #749151

Короче, писал себе приложение, если сильно упрощать, то оно открывает картинку и запихивает её в pictureBox.
У pictureBox стоит StretchImage, то есть картинка запихивается в ящик. Ящик квадратный, 120 на 120 пикселей, поэтому, когда картинка не квадратная она там отображается сплюснотой. Решение - поменять высоту ящика, сделав его не квадратным.
Почему вот эта параша не работает? Должна ведь.
pictureBox1->Size.Height = 100;

21 Май, 12:59 #10 #749154

>>749104
Качай code::blocks, базарю

Ответы>>749238>>749327>>749328

40 Кб, 934x548

21 Май, 13:03 #11 #749159

>>749111
Это нормально что студия запускается с какой то непонятой хуйни?

Ответы>>749166

21 Май, 13:06 #12 #749166

>>749159
Какрй непонятной хуйни?

Ответы>>749176

21 Май, 13:10 #13 #749174

>>749082 (OP)
Хоть бы шапку прикрепил

21 Май, 13:10 #14 #749176

>>749166
blend

Ответы>>749182

21 Май, 13:13 #15 #749182

>>749176
Blend для Visual Studio — это набор инструментов для разработки, входящий в Visual Studio 2013, который позволяет создавать приложения для Магазина Windows в визуальной среде с использованием языков JavaScript, VB, C# и C++

Ответы>>749185

21 Май, 13:15 #16 #749185

>>749182
Но у меня 2015 студия. А так добра. Просто непривычно. Да и только с нее Vs и запускается.

Нет, ярлыка чтобы сразу понятно было. Ну ты понел.

Ответы>>749189

21 Май, 13:16 #17 #749189

>>749185
С devenv.exe она запускается.

Ответы>>749191

21 Май, 13:18 #18 #749191

>>749189
С devenv.exe русская запускается.

А с бленда ангельская.

49 Кб, 1600x838

21 Май, 13:53 #19 #749238

>>749154
Спасибо. Хотя я уже успел пригореть от МОДУЛЬНОСТИ решений. Но как быть дальше?

Ответы>>749240

21 Май, 13:54 #20 #749240

>>749238
Теперь удаляй

21 Май, 15:39 #21 #749327

>>749154
да ты заебал пиарить это говно. Ньюфагу нужно начинать с минимума абстракций, а ты ему предлагаешь сперва настроить IDE. Пусть юзает VS или QtCreator для начала.

Ответы>>749415

21 Май, 15:40 #22 #749328

>>749154
>>749154
Говно без задач.

21 Май, 16:13 #23 #749362

>>749082 (OP)
Как запустить Prog1 из консоли? Перед ним стоит какой-то символ похожий на S.

21 Май, 16:55 #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

21 Май, 16:56 #25 #749399

>>749397
Ну и нахуй ты сюда это притащил?

Ответы>>749407

21 Май, 17:04 #26 #749407

>>749399
Не работает.

Ответы>>749409

21 Май, 17:05 #27 #749409

>>749407
Мы знаем. А притащил зачем?

Ответы>>749411

21 Май, 17:06 #28 #749411

>>749409
Но должен работать.

Ответы>>749412

21 Май, 17:07 #29 #749412

>>749411
Даже из учебника пример перепечатать не сумел?
http://ideone.com/usDWhD

Ответы>>749413>>749419

21 Май, 17:09 #30 #749413

>>749412
Хочешь сказать, что не работало онли из переноса строки?

Ответы>>749416

21 Май, 17:10 #31 #749415

>>749327
Лучше уж пусть тогда ставит cygwin, собирает ручками и пишет Makefile'ы

Ответы>>749467>>750345>>751828

21 Май, 17:10 #32 #749416

>>749413
Из-за опечаток.

Ответы>>749422>>749427>>749430

21 Май, 17:12 #33 #749419

>>749412
Ща погодь, надо тщательно сравнить.

21 Май, 17:13 #34 #749422

>>749416
Все понял, после 0, а не ;

40 Кб, 819x460

21 Май, 17:14 #35 #749427

>>749416
Не, там запятая тоже стоит.

21 Май, 17:15 #36 #749430

>>749416
Ах cout еще..

Ответы>>749431

21 Май, 17:17 #37 #749431

>>749430
Ты пишешь std::end1 "std::endАДИН"
А нужно std::endl "std::endЛ"

Ответы>>749433

21 Май, 17:18 #38 #749433

>>749431
Вот это добра тебе, в жизни бы не подумал.

Ответы>>749446

21 Май, 17:28 #39 #749446

>>749433
Причем студия принимает только со всем набором.
Один иострим она вертела на хую.

#include "stdafx.h"
#include<iostream>
using namespace std;

Ответы>>749831

21 Май, 17:45 #40 #749467

>>749415
Пусть сразу на коллайдер идет работать ученым, хуле. В самом начале, нужно просто открыть проект и писать код. Лучше всего подходят QtCreator и VS, где все из коробки.

21 Май, 18:06 #41 #749483

Посаны, препод сказал запилить курсач, требования простые, С++ и ООП, тема произвольная. Пиздец, что делать? Подкиньте идей, у меня по нулям. Кому чего не хватает?
З.Ы. ловко обращаюсь с Qt

Ответы>>749486>>749490>>749603>>749645>>749753

sage 21 Май, 18:06 #42 #749484

Что за хуйня с тредом? Откуда столько тупых вопросов? Студенты уже не могут студию установить?

Ответы>>749488>>749491

21 Май, 18:07 #43 #749486

>>749483
напиши построитель диаграмм классов из C++ кода.

21 Май, 18:09 #44 #749488

>>749484
Бля, всегда так было же, нет?
Пропустил все треды после ноября 2015.

21 Май, 18:10 #45 #749490

>>749483
Напиши мне аналог Theano для крестов.

Ответы>>749593

21 Май, 18:10 #46 #749491

>>749484
Завидуй молча.

21 Май, 19:00 #47 #749567

>>749082 (OP)
Эталон того, как не надо делать перекаты. ГДЕ ШАПКА ЕБАНА В РОТ?

Ответы>>749587>>750347

21 Май, 19:11 #48 #749587

>>749567
Шапку ж мод пришпиливает, не?

Ответы>>749591

21 Май, 19:13 #49 #749591

>>749587
Бля... Типичный ответ крестобляди.
Конпелятор жи сам всё зааптимизируит))0)

21 Май, 19:14 #50 #749593

>>749490
А ведь можно зделоть. Нафигачить классов, так чтобы все операции возвращали не результат, а дерево выражений. Наверняка есть уже такое где-то. Потом переводить выражения в код для куды, дифференцировать, все так же как и в теано.

21 Май, 19:20 #51 #749603

>>749483
Напиши stream api для c++, чтобы лениво можно было работать с потоками данных. По-моему, это интересная задача.

21 Май, 19:52 #52 #749645

>>749483
Интерфейсное говноприложение для тестов. Простенькая бд, редактор тестов, режим преподавателя, режим студента. У нас такое дипломники делают, но можешь как крусач взять, там дел на пару дней.

40 Кб, 600x375

21 Май, 20:01 #53 #749654

Кто-нибудь на СLion-е сидит?
Как оно?

Ответы>>749659>>749676>>749692>>750088

21 Май, 20:04 #54 #749659

>>749654
Сижу, баги есть (в подсветке ошибок, дебаггере), порой подтормаживает. Во всём остальном работает нормально.

225 Кб, 700x511

21 Май, 20:20 #55 #749676

>>749654
Clion офигенный, скажу сразу что я приверженец продуктов от Jetbrains.

Ответы>>749746>>749748

21 Май, 20:48 #56 #749692

>>749654
#include <iostream>

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

return 0;
}

21 Май, 21:37 #57 #749746

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

21 Май, 21:37 #58 #749748

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

// но я юзаю другую иде. и нах не надо джет тормознутое на яве

21 Май, 21:41 #59 #749753

>>749483
игровой проект пиши.

21 Май, 22:00 #60 #749782

Как отлаживать работу с кучей? Допустим я насоздавал всяких массивов в куче, а потом начал с ними делать операции. В итоге у меня постоянные corruption of the heap. Помогите!

Ответы>>749810>>749894>>750027>>750512

21 Май, 22:21 #61 #749810

>>749782
Ты как-то неправильно работаешь с массивами. Не используй C-шные массивы, используй std::array или std::vector.

21 Май, 22:40 #62 #749831

>>749446
у тебя проект с precompiled headers. для нее его обязателен stdafx.h
создай пустой проект, в нем cpp файл. и в него напиши main функцию. и все будет работать без студийных прибамбасов

Ответы>>749918

15 Кб, 432x224

40 Кб, 640x406

44 Кб, 400x600

21 Май, 23:36 #63 #749894

>>749782
Рекомендую AddressSanitizer, замечательная вещь, с которой теперь только и пишу.

Ответы>>750739

22 Май, 00:10 #64 #749918

>>749831
Добра, вот бы еще страуструпа осилить. Начал его книгу читать, но этот мудак впихнул файл #include"std_lib_facilities.h"

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

Он там предлагает скачать файл, я вроде по инструкции делаю, копирую в блокнот, вставляю в студию в хедер, переименовываю, но шаги 13 и 14 непонятны и поэтому ничего не работает.

Ответы>>750006

22 Май, 02:23 #65 #750001

https://ideone.com/JCmTwO
Посоны, сократил по максимуму. Почему у меня происходит heap corruption в момент вызова HeapFree()?
Тоже самое у меня происходило при использовании new [], delete [].
Расскажите что это за ебаная куча и почему она корраптится.

Ответы>>750002>>750005

22 Май, 02:28 #66 #750002

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

Ответы>>750004

22 Май, 02:30 #67 #750004

>>750002
Да. Этот файл для шиндовс. Такие дела.

>>750001 Потому что ты не шаришь 22 Май, 02:32 #68 #750005

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

Ответы>>750018

>>749918 страуструп - очень плохая книга для начала. читай шилда или еще какие для начинающих. 22 Май, 02:33 #69 #750006

>>749918
страуструп - очень плохая книга для начала. читай шилда или еще какие для начинающих.

Ответы>>750022>>750382

249 Кб, 477x271

22 Май, 03:01 #70 #750018

>>750005
> Потому что ты не шаришь в указателях.
СЛОЖНА
Поправил:
https://ideone.com/0Cw89i

22 Май, 03:22 #71 #750022

>>750006
Липмана лучше

22 Май, 03:30 #72 #750027

>>749782
Если такая штука как valgrind, которая умеет отслеживать утечки памяти, обращение не в свою память, всякие прочие проблемы с кучей.

Ответы>>750071>>750739

22 Май, 08:04 #73 #750071

>>750027
Ты забыл упомянуть нюфагу что на ШIИD0W2 её нет в природе.

Ответы>>750512

22 Май, 09:05 #74 #750088

>>749654
Я сижу. Не идеально, но для меня лутше остальных IDE.

Ответы>>750111

22 Май, 10:11 #75 #750111

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

Ответы>>750150

sage 22 Май, 11:04 #76 #750133

Месяц не заходил — тут всё тот же тупняк.

Прррррр

22 Май, 11:40 #77 #750150

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

>Где-то за ними плетётся кутякреатор, а дальше блокнотики с подсветкой кода вроде гном/кдебилдеров и кодблоксов.
Поехавший чтоле? У Eclipse CDT навигация по коду уровня CLion, а то и лучше. В рефакторинге немного проигрывает. Плюс, это единственная ide такого уровня, которая просто открывает makefile проекты.

Ответы>>750157>>750164

22 Май, 12:08 #78 #750157

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

Ответы>>750159>>750163

22 Май, 12:09 #79 #750159

>>750157
Уточню: рендеринг шрифтов.

22 Май, 12:13 #80 #750163

>>750157
>шланга с ллвмом
Че пилишь?

Ответы>>750165>>750176

22 Май, 12:13 #81 #750164

>>750150
>просто
Мне даже интересно, каким животным нужно быть чтобы писать мэйкфайлы руками...

Ответы>>750166

22 Май, 12:14 #82 #750165

>>750163
Компилятор своего языка на ллвме конечно же, что ещё можно писать копаясь в этих исходниках.

Ответы>>750171

22 Май, 12:14 #83 #750166

>>750164
И чем makefile отличаются от cmake в плане написания, уважаемый?

22 Май, 12:17 #84 #750171

>>750165
Ну на вскидку: поддержку новой платформы, поддержку новых фич C++, прототипы фич для пропосалов в C++ стандарт, пилить static analyzer

22 Май, 12:24 #85 #750176

>>750163
https://habrahabr.ru/post/119850/

Ответы>>750296

22 Май, 13:55 #86 #750227

>>749082 (OP)
http://ideone.com/tcUulk
Вот есть код из книги. Выполняю я упражнение, там написано напишете прогу для сумирования чисел от 50 до 100. И это я сделал, но вот что не понятно.

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

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

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

Ответы>>750243>>750249>>750254>>750256

22 Май, 14:12 #87 #750243

>>750227
Если выставить значение val =1 и val= 0, то результат будет одинаковым.

Ответы>>750249>>750254

22 Май, 14:20 #88 #750249

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

Ответы>>750252>>750254>>750261

22 Май, 14:24 #89 #750252

>>750249
>++val
>val=val+1
Значит val = 1+1 =2

Ответы>>750254

22 Май, 14:30 #90 #750254

>>750227
>>750243
>>750249
>>750252
Съебите. Пожалуйста

Ответы>>750256

22 Май, 14:37 #91 #750256

>>750254
Мамкина элитка порвалась.

>>750227
Не понятно чему при val =0 и val = 1 результат будет одинаковым(такого не должно быть).

Ответы>>750258

22 Май, 14:41 #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 одна итерация просто "лишняя"

Ответы>>750260>>750265>>750268

22 Май, 14:41 #93 #750260

>>750258
при val = 0 одна итерация просто "лишняя"
фикс

22 Май, 14:42 #94 #750261

>>750249
мы должны еще к val прибавить 1, а поскольку val обладает уже значением единицы то 1+1 блять.

Потому вставить этот val ( со значением 2) в
sum += val

22 Май, 14:44 #95 #750265

>>750258
А все ясно. Вот это годно было.

22 Май, 14:46 #96 #750268

>>750258
Хотя стоп, 0+1 =1. Cхуяли они лишней должна быть 1 итерация?

Ответы>>750271

22 Май, 14:52 #97 #750271

>>750268
При каких условиях?

Ответы>>750272

22 Май, 14:53 #98 #750272

>>750271
Ну смотри, вот val = 0, но по коду(val=val+1) мы должны к нулю прибавить 1.
А потом вставить в сумму sum = val + sum(тут val у нас уже 1)

Ответы>>750277>>750279

22 Май, 14:56 #99 #750277

>>750272
Аа.. мы должны тут(val=val+1) 0 должны прибавить, да? Пардоньте, мсье.

22 Май, 14:58 #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

22 Май, 15:07 #101 #750294

>>750279
Да теперь доходит, добра.

sage 22 Май, 15:08 #102 #750296

>>750176
http://llvm.org/docs/tutorial/

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

Ответы>>750329

22 Май, 15:48 #103 #750329

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

22 Май, 16:06 #104 #750345

>>749415
Пусть симейк осваивает сразу. Бестс практис.

22 Май, 16:09 #105 #750347

>>749567
Ловите невфака.

22 Май, 16:43 #106 #750382

>>750006
Шилд, блядь, это такой экран чугунный, который образовался между твоим котелком и окружающим миром и мешает тебе расширять словарный запас. А фамилия автора - Шилдт. Как содержимое твоей репки на английском, только буква 'д' добавлена.

Ответы>>750462

22 Май, 16:45 #107 #750383

Пиздец вы шустрые. Лучше бы в бамплимите сидели. ОП наверно опять не успеет стих запилить

17 Кб, 562x280

22 Май, 16:47 #108 #750384

Как такое сделать?

Ответы>>750386>>750419

22 Май, 16:50 #109 #750386

>>750384
Считать на какой позиции какая буква чаще всего встречается?

Ответы>>750389

22 Май, 16:52 #110 #750389

>>750386
это через какую функцию делать?

Ответы>>750393>>750412

22 Май, 16:53 #111 #750393

>>750389
for

Ответы>>750394

22 Май, 17:01 #112 #750394

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

Ответы>>750419

22 Май, 17:26 #113 #750412

>>750389
while

22 Май, 17:49 #114 #750419

>>750384
проверяй https://ideone.com/PXMae5

>>750394
Наверно. Другого придумать не могу.

Ответы>>750434

22 Май, 17:57 #115 #750434

>>750419
Спасибо, но пишет что неверно

Ответы>>750435>>750444

22 Май, 17:57 #116 #750435

>>750434
Тесты показывай.

Ответы>>750449

22 Май, 18:01 #117 #750444

>>750434
Кстати может быть случай когда нет решений. Нужно прогу допилить на этот случай. Что в условии про это? Давай линк сам зарегаюсь, почитаю и отправлю.

Ответы>>750453

22 Май, 18:04 #118 #750449

>>750435
Я не знаю, где их взять, пишет wrong answer

Ответы>>750452

22 Май, 18:04 #119 #750452

>>750449
И много таких?

Ответы>>750455

22 Май, 18:04 #120 #750453

>>750444
держи линк, дружище
https://contest.yandex.ru/algorithm2016/contest/2498/enter/

Ответы>>750456>>750516

22 Май, 18:05 #121 #750455

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

22 Май, 18:06 #122 #750456

>>750453
> У вас нет прав просматривать это соревнование
На кодфорс их не перезаливали? вк вроде так делает

Ответы>>750467

22 Май, 18:07 #123 #750458

Нужна помощь: Есть форма и две переменные double x и double y. Как этим переменным присвоить координаты курсора, относительно формы? Например, при нажатии на кнопку, или просто при загрузке окна формы _Load.

Ответы>>750530>>750556

22 Май, 18:08 #124 #750462

>>750382
доебался до опечатки, молодец. еще до имени страуструпа доебись.

Ответы>>750465

22 Май, 18:09 #125 #750465

>>750462
А как джосатис правильно пишется?

Ответы>>750468>>750480

22 Май, 18:11 #126 #750467

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

Ответы>>750475

22 Май, 18:11 #127 #750468

>>750465
А как кохл корутин?

Ответы>>750469

sage 22 Май, 18:12 #128 #750469

>>750468
>кохл корутин?
Лол. Даже я забыл свой псевдоним, а кто-то помнит.

22 Май, 18:14 #129 #750475

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

Ответы>>750481

sage 22 Май, 18:17 #130 #750480

>>750465
Джо Саттис.

22 Май, 18:19 #131 #750481

>>750475
>Важную часть пропустил
приношу свои извинения

22 Май, 18:46 #132 #750512

>>750071
>>749782
https://msdn.microsoft.com/en-us/library/ms220948.aspx
https://msdn.microsoft.com/en-us/library/windows/hardware/ff551063.aspx

22 Май, 18:49 #133 #750516

>>750453
все тесты успешно пройдены https://ideone.com/ItNqwe
очень некрасиво эти break и много ifов. Как красивее записать кто может?

Ответы>>750525

22 Май, 18:54 #134 #750525

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

Ответы>>750534

22 Май, 18:55 #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);
}

22 Май, 18:57 #136 #750534

>>750525
выучить кресты? нихуя для этого знать не надо. решение в лоб.

Ответы>>750541

22 Май, 18:59 #137 #750541

>>750534
ты давно этим делом занимаешься?

Ответы>>750543

22 Май, 19:01 #138 #750543

>>750541
3 года наверно но нихуя почти не знаю

Ответы>>750552>>750562

22 Май, 19:08 #139 #750552

>>750543
И сколько в день часов на изучение уходит?

Ответы>>750554

22 Май, 19:09 #140 #750554

>>750552
месяц не занимался обычно 2 когда особенно готовился то 6

22 Май, 19:10 #141 #750556

>>750458
Цель то какая?

Ответы>>750709

22 Май, 19:13 #142 #750562

>>750543
но решил ведь задачу нормально, значит можешь. Самообразованием занимаешься или еще где учился?

Ответы>>750568

22 Май, 19:16 #143 #750568

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

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

Ответы>>750582

22 Май, 19:25 #144 #750582

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

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

Ответы>>750589>>750595

22 Май, 19:27 #145 #750589

>>750582
> val = 10
> val <= 0
> --val;
> добавить 1 к val

Ответы>>750592>>750596

22 Май, 19:29 #146 #750592

>>750589
Я в курсе, мне лень комменты было менять.

Ответы>>750595

22 Май, 19:34 #147 #750595

>>750592
> val = 10
> val <= 0

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

А теперь лабы идут нахуй.

Ответы>>750600

22 Май, 19:34 #148 #750596

>>750589
Кстати, по идеи, если не стоит val = 0, то разве компилятор не должен считать бесконечно в -?

22 Май, 19:37 #149 #750600

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

Нет, не так. есть val =100, и мы каждую итерацию делаем --val, результаты каждой итерации вывести.

Ответы>>750602>>750627>>750685

22 Май, 19:39 #150 #750602

>>750600
До нуля, забыл написать.

22 Май, 19:55 #151 #750627

>>750600
В твоем случае будет просто идти отчет от 10 до 0.
А в том коде будет примерно
1)10= 10-1 = 9
2)9= 9-2 = 7
3)7 =7-3=4
и вот на экран нужно каждую итерацию вывести.
и тд.

Ответы>>750660>>750662>>750676

22 Май, 20:14 #152 #750660

>>750627
https://ideone.com/9SDz7k
так шоле?

Ответы>>750662>>750676>>750952

22 Май, 20:16 #153 #750662

>>750627
>>750660
просто не очень уловил условие, мимоцппил

22 Май, 20:26 #154 #750676

>>750627
>>750660

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

https://ideone.com/6AY9cz так нужно?

Ответы>>750727>>750952

22 Май, 20:32 #155 #750685

>>750600
>Не, не, я по книжке, никаких лаб.
съебал в ньюфаготред

22 Май, 20:56 #156 #750709

>>750556
Двигать мышку по территории ВСЕГО окна и считать координаты.

Ответы>>750715>>750721

22 Май, 21:01 #157 #750715

>>750709
qt или самописное?

Ответы>>750740

22 Май, 21:04 #158 #750721

>>750709
GetCursorPos
+
GetWindowRect

22 Май, 21:09 #159 #750727

>>750676
> видимость: secret
Боишься что мамка увидит или что?

43 Кб, 572x400

22 Май, 21:21 #160 #750739

>>750027
>>749894
valgrind - ненужная и страшно тормозная параша по сравнению с AddressSantizer. Его плюс не в самом valgrind а в его профайлерах/kcachegrind.

22 Май, 21:22 #161 #750740

>>750715
Я лоу левел, не понимаю про что ты. Пишу на с++ в виндоус формах. IDE - visual studio 2013

Ответы>>750741

22 Май, 21:23 #162 #750741

>>750740
>лоу левел
>виндоус формах
бери qt

Ответы>>750744

22 Май, 21:26 #163 #750744

>>750741
А самописное как делается? winapi? Мне бы гайдов. Я находил в инете, но у меня даже окно не запускается. Много перепробовал.

Ответы>>750747

22 Май, 21:29 #164 #750747

>>750744
под самописным я имел ввиду кнопки на opengl.
https://wiki.qt.io/Qt_for_Beginners
а лучше, пока что, попиши консольный бред. Алгоритмы там и прочее.

Ответы>>750749

22 Май, 21:31 #165 #750749

>>750747
Спасибо, я буду пробовать.

Ответы>>750752

22 Май, 21:34 #166 #750752

>>750749
если плохо с англ. погугли на русском. Ну и видосы на ютьюбе есть.

23 Кб, 819x460

23 Май, 00:00 #167 #750952

>>750676
>>750660
Сори, отходил. Вот упражнение из книги(если интересно)
Да, и то и то можно подогнать. Ок спасиб, пойду разбираться.

Ответы>>750972>>751006

23 Май, 00:31 #168 #750972

>>750952
А что за книга?

Ответы>>750979

23 Май, 00:36 #169 #750979

>>750972
Липпман же.

Ответы>>750980>>750986

23 Май, 00:36 #170 #750980

>>750979
Ну да. Это все знают.

Ответы>>750986

23 Май, 00:43 #171 #750986

>>750979
>>750980
Спс, я полный ньюфажка, нечего не знаю. Вчера решил вкатится.

23 Май, 00:58 #172 #751006

>>750952
конкретна эта задача на три строки
int val = 10;
while(val)
{
std::cout << val;
val--;
}

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

Ответы>>751016>>751037

sage 23 Май, 01:03 #173 #751016

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

Ответы>>751026

23 Май, 01:07 #174 #751019

Ух, как же меня корежит от вашей байтопараши. Сил нет читать эти сраные книги. Сука, как же я это все ненавижу.

Ответы>>751027

23 Май, 01:15 #175 #751026

>>751016
gowno++;
++gowno;
какая разница как херачить в отдельной строке?

Ответы>>751028

23 Май, 01:16 #176 #751027

>>751019
Молодец. Возьми с полки чупа-чупс, заткни им жопу. Это ненадолго остановит пламя.

sage 23 Май, 01:17 #177 #751028

>>751026
Вот почитай про отличия между вариантами и поймешь, почему на отдельной строке лучше использовать префикс вместо постфикса.

Ответы>>751031

23 Май, 01:30 #178 #751031

>>751028
>>751028
на, сам почитай https://msdn.microsoft.com/ru-ru/library/e1e3921c.aspx
>Операция инкремента или декремента выполняется после вычисления операнда. Эта особенность возникает, только когда постфиксная операция инкремента или декремента выполняется в контексте выражения.

Теперь объясни мне серому, или лучше пример приведи, где инкремент отдельной строкой будет лучше префиксным

Ответы>>751242

23 Май, 01:51 #179 #751037

>>751006
https://ideone.com/6ffBZ4

Ответы>>751054

Годный сайт чтобы эффективно учить кресты 23 Май, 01:59 #180 #751041

Дайте пожалуйста годных сайтов, чтобы Learn и Reference на простейшем английском, максимум дружелюбно, эффективно и просто. Что-то вроде HTMLAcademy, W3Schools, вот такого. Чтобы в одном окошке "учиться", читать и, может быть, даже тестить там же, а в другом, если что, без походов в гугл, вбивать неизвестные операторы, чтобы читать про их параметры, либо вбивать запрос вроде "regular expressions in c++" и находить решение сразу же, без сотни васяновских говносайтов с говнокодом из нулевых.

Ответы>>751045>>751051>>751172

23 Май, 02:00 #181 #751045

>>751041
Нет такого. Задачки с кодфорса можно решать.

Ответы>>751048>>751052

23 Май, 02:09 #182 #751048

>>751045
Не гони. По любой хуйне такое уже есть. Мне просто нужно написать несколько хуевин, но я не готов ради них читать 5к страниц по чистым плюсам, бутстрапу, кьюту/гтк, etc...

23 Май, 02:11 #183 #751051

>>751041
http://academy.cppstudio.com/

но там только основы
и иногда не очевидно, отчего тамошний компилятор не принимает, вроде бы, парвильное решение (ах да, фигурные скобочки не стоят, где не обязательно; и подобное )
хотя всё не так плохо для начала

Ответы>>751055

23 Май, 02:12 #184 #751052

>>751045
Хотя бы что-то вроде http://www.w3schools.com/tags/ref_byfunc.asp и htmlbook, я хуй знает, чтобы не ебать гугл каждый раз и читать хуету из 2003

Ответы>>751172

23 Май, 02:13 #185 #751054

>>751037
что это?

23 Май, 02:16 #186 #751055

>>751051
Это все бесплатно?
Вот мне что-то такое, можно даже без интерактива,
>Хотя бы что-то вроде http://www.w3schools.com/tags/ref_byfunc.asp и htmlbook
но по более серьезным вещам. Контейнеры всякие типа МАП, ЛИСТ, регекспы, высокоуровневая работа с ФС, Win32_API, создание гуя, работа с DOM...

Ответы>>751059>>751172

23 Май, 02:20 #187 #751059

>>751055
Бесплатно.
>но там только основы
за остальное нужно брать нормальную книгу и закуривать.

Ответы>>751064

23 Май, 02:26 #188 #751064

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

Ответы>>751068

23 Май, 02:30 #189 #751068

>>751064
>страус
сложно
>Прату
старо
>Липмана
заебись

Ответы>>751075

23 Май, 02:38 #190 #751075

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

Ответы>>751080>>751085

23 Май, 02:44 #191 #751080

>>751075
>чем так сложен страус
У всех кто читал спроси. Каждый ответит что страус сложный.
>Уж проще праты
Он не сложный, а старый. Старее Липмана

>>751075
>шилдт
>Почему его нет
Должен быть. Проверь ещё раз.

Ответы>>751087>>751098

23 Май, 02:55 #192 #751085

>>751075
Страуструп в первом же примере с хелло ворлд пишет: #include"std_lib_facilities.h"

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

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

Ответы>>751086>>751087>>751091>>751098

23 Май, 02:56 #193 #751086

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

23 Май, 02:57 #194 #751087

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

Ответы>>751089

23 Май, 03:01 #195 #751089

>>751087
пример

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

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

Ответы>>751090>>751096>>751098

23 Май, 03:02 #196 #751090

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

23 Май, 03:02 #197 #751091

>>751085
он учил добавлять хейдеры поэтому в кавычках

Ответы>>751092

23 Май, 03:04 #198 #751092

>>751091
https://ideone.com/cNWhYW

Ответы>>751094

23 Май, 03:05 #199 #751094

>>751092
зачем ты это сделал?

Ответы>>751097

23 Май, 03:07 #200 #751096

>>751089
>{}
ковычки еще проебал, там ()

23 Май, 03:09 #201 #751097

>>751094
Я уже спать иду..

23 Май, 03:15 #202 #751098

>>751089
Ну так о том и речь, что иострим и стдлиб отлично зайдут. Это единственная "сложность" страуструпа или назовете еще?
>>751080
>>751085
А с чего вы взяли, что липпман не старее страуструпа, но проще, а вот прата значительно старее страуструпа? Кроме года издания, который нихуя не значит?

Ответы>>751102>>751103

23 Май, 03:18 #203 #751102

>>751098
>значительно
Не говорили такого.

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

Ответы>>751113>>751115

23 Май, 03:21 #204 #751103

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

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

23 Май, 03:34 #205 #751113

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

23 Май, 03:34 #206 #751115

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

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

Ответы>>751138

23 Май, 04:13 #207 #751138

>>751115
>мне посоветовали прату
Он хоть про C++11?

Ответы>>751140>>751144

23 Май, 04:18 #208 #751140

>>751138
Кек))) а липман хоть про 15 (теперь серьезно, если нет, то он вообще нихуя не старее ни разу)?

Ответы>>751143>>751144

23 Май, 04:20 #209 #751143

>>751140
У тебя с Cerebral Cortex всё в порядке?

Ответы>>751145

23 Май, 04:21 #210 #751144

>>751138
И да, ты много вообще переведенных книг по с++ 14 назовешь?
>>751140
14, фикс

Ответы>>751146

23 Май, 04:21 #211 #751145

>>751143
Очень содержательный ответ, и смешной, молодец.

23 Май, 04:25 #212 #751146

>>751144
Бьярне Страуструп.

Ответы>>751149

23 Май, 04:33 #213 #751149

>>751146
Хую выше он сложнасложнанипанятна

Ответы>>751155

23 Май, 04:44 #214 #751155

>>751149
Так пусть уёбывает 1с программировать.
В книге всё предельно просто и понятно. И что такое include тоже объясняется.

Ответы>>751170>>751359

23 Май, 05:10 #215 #751170

>>751155
Я что, спорю? Я не понимаю, нахуя старого жида запихнули во всея сишников первыя книгу вместо трупа/праты

23 Май, 05:12 #216 #751172

>>751041
>>751052
>>751055
Бамп

23 Май, 05:58 #217 #751180

http://rgho.st/67KTlxpyk
Запустите мой бинарник. Работает?

23 Май, 09:58 #218 #751242

>>751031
Если компилятор не оптимизирует будет лишняя трата тактов процесора

23 Май, 11:53 #219 #751287

Лично меня заебал этот ньюфаг, который срет по 50 постов в час. А вас?

Ответы>>751293

23 Май, 12:00 #220 #751293

>>751287
Половину из этого писал не я.

23 Май, 12:00 #221 #751294

Кто-нибудь использовал std::enable_if для конструкторов? В VC++ проблем нет, в GCC похоже не срабатывает трейт, хотя условия выполняются точно и инстанцируются все конструкторы.
http://pastebin.com/WBrRhmCS

Ответы>>751313

23 Май, 12:24 #222 #751313

>>751294
http://en.cppreference.com/w/cpp/types/enable_if

см. notes.

Ответы>>751317>>751323

23 Май, 12:27 #223 #751317

>>751313
Просто перенеси enable_if в тело конструктора.

Ответы>>751323

23 Май, 12:34 #224 #751323

>>751313
>>751317
Спасибо. Так и сделал, проебал этот момент в доке.

Ответы>>751324

23 Май, 12:35 #225 #751324

>>751323
Потому что в студии прокатило успешно.

23 Май, 13:40 #226 #751359

>>751155
> в книге всё как в остальных только читать дольше т.к. сложно написано
> неосилил уёбывай
Ну и зачем жрать говно? С непривычки не переваришь. Когда выучишь кресты тогда читай страуструпа

23 Май, 14:04 #227 #751373

Блеать, книги есть, переведены даже;
Учи, не хочу. Хочу жрать говно ныть на дваче про свою неосиляторность

Ответы>>751600

32 Кб, 1079x89

23 Май, 17:05 #228 #751600

>>751373
О это про меня. Читаю книгу не могу осилить упражнение. Мега простое, но такой вот я тупой пиздец.

Ответы>>751644>>751680

23 Май, 17:06 #229 #751603

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

Ответы>>751644

Годный сайт чтобы эффективно учить кресты 23 Май, 17:12 #230 #751611

Дайте пожалуйста годных сайтов, чтобы Learn и Reference на простейшем английском, максимум дружелюбно, эффективно и просто. Что-то вроде HTMLAcademy, W3Schools, вот такого. Чтобы в одном окошке "учиться", читать и, может быть, даже тестить там же, а в другом, если что, без походов в гугл, вбивать неизвестные операторы, чтобы читать про их параметры, либо вбивать запрос вроде "regular expressions in c++" и находить решение сразу же, без сотни васяновских говносайтов с говнокодом из нулевых.

Вот мне что-то типа вашей этой академи, да, можно даже без интерактива,
>Хотя бы что-то вроде http://www.w3schools.com/tags/ref_byfunc.asp и htmlbook
но по более серьезным вещам. Контейнеры всякие типа МАП, ЛИСТ, регекспы, высокоуровневая работа с ФС, Win32_API, создание гуя, работа с DOM...

Чтобы каждый раз гугл не ебать.

Ответы>>751826>>751970

23 Май, 17:42 #231 #751644

>>751600
>>751603
Ура, я не тупой! Сделал!

https://ideone.com/v6SzN3

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

Ответы>>751673>>751683

23 Май, 17:57 #232 #751673

>>751644
> using namespace std;
> std::cout
> Ура, я не тупой!

Ответы>>751716

23 Май, 18:03 #233 #751680

>>751600
А линканите мне список таких простых задачек для изучения языка.

Ответы>>751716

23 Май, 18:07 #234 #751683

>>751644
Ньюфаг, я понимаю, что ты еще мало знаешь и все такое, но ты реально срешь в тред своим нытьем.

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

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

А теперь съеби в ньюфаг-тред и не заходи сюда до тех пор, пока не напишешь свой простенький компилятор.

Ответы>>751686>>751716

23 Май, 18:09 #235 #751686

>>751683
Истинно так. Давай, парень, не шали, а то милиционера позовем.

23 Май, 18:12 #236 #751691

>>751687
Что здесь было?

23 Май, 18:20 #237 #751707

Давайте решим усложнённую версию задачки из этого треда https://2ch.hk/pr/res/739345.html (М)
1. Размер массива не 368, а 18 446 744 073 709 551 616.
2. В скобках пишется строка, а не число.
3. Сделать нужно на чистом С.

Ответы>>751709

23 Май, 18:22 #238 #751709

>>751707
решай. кто тебе мешает?

Ответы>>751711

23 Май, 18:23 #239 #751711

>>751709
Вместе давайте. Мы же тут обсуждаем сложные задачи. Не достаточно сложно?

Ответы>>751715

23 Май, 18:24 #240 #751715

>>751711
это не задача. это хуета.

Ответы>>751717

23 Май, 18:24 #241 #751716

>>751673
Компилятор задолбал ругаться когда я писал без std::, потом я добавил пространство имен, а вверху ввод забыл поправить.
>>751680
Я сам не знаю где брать такие задачи. Данная из книги C++ Primer, 5th Edition.pdf
>>751683
Благодарю за развернутый ответ, илитарий. В этот тред я написал, т.к подумал что хрен решу задачу, однако все же решил. Я не сру в тред, первый раз написал. А в ньюфаг-треде одни такие же раки как я, кто мне там поможет?

23 Май, 18:26 #242 #751717

>>751715
В том треде на крестах 3 решения и все абсолютно разные. Уверен можно ещё сделать.

Ответы>>751804

23 Май, 19:10 #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

23 Май, 19:12 #244 #751794

>>751791
нахуя ты сюда пишешь?

Ответы>>751796

23 Май, 19:12 #245 #751796

>>751794
Потому что я могу. А ты?

Ответы>>751799

23 Май, 19:13 #246 #751799

>>751796
потому что ньюфаги испортили тред

Ответы>>751802>>751806>>751938>>751941

23 Май, 19:15 #247 #751802

>>751799
Извини. Я просто зашел сюда искать какой нибудь полезной информации в спорах между анонами.

23 Май, 19:17 #248 #751804

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

Ответы>>751807

23 Май, 19:18 #249 #751806

>>751799
Похоже, стихи служили какой-то защитой от долбоебов.

Ответы>>751813

23 Май, 19:19 #250 #751807

>>751804
Это если все 3 пункта выполнить? А по одному?

Ответы>>751811

23 Май, 19:21 #251 #751811

>>751807
Да даже по первому.

23 Май, 19:23 #252 #751813

>>751806
а куда оп пропал вообще?
ОП - СТИХОПЛЕТ. ОТЗОВИСЬ. ТЫ С НАМИ?

Ответы>>751829>>751831

23 Май, 19:40 #253 #751826

>>751611
Бамп

23 Май, 19:42 #254 #751828

>>749415
Ебать, все крестовики такие упоротые? Нет QtCreator лучше.

Мимо java-бог в девичестве плюсовик

23 Май, 19:43 #255 #751829

>>751813
Он пошёл учить D, а потом спился насмерть узнав что такой язык был а он кушал фикалий. кекус

Ответы>>751830>>751838

23 Май, 19:45 #256 #751830

>>751829
не верю
Где топовые стихи в D треде?

Ответы>>751836>>751838

23 Май, 19:45 #257 #751831

>>751813
Стих на инглише наверно пишет.

23 Май, 19:48 #258 #751836

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

23 Май, 19:50 #259 #751838

>>751830
>>751829
>спился насмерть
Был крестовик и нет крестовика, такие дела.

23 Май, 21:18 #260 #751938

>>751799
Рак, убивающий /зк.

23 Май, 21:20 #261 #751941

>>751799
Может памятку ньюфага повыше в шапке поднять?

23 Май, 21:34 #262 #751970

>>751611
Еще бамп

Ответы>>752011>>752030

23 Май, 21:51 #263 #752011

>>751970
Дежурно сходи нахуй со своим бампом. Совсем ньюфаги охуели - еще и бампают свои высеры.

23 Май, 22:08 #264 #752030

>>751970
Нет таких сказали уже.

Ответы>>752079

23 Май, 22:58 #265 #752079

>>752030
А если найду?

Ответы>>752083

23 Май, 23:00 #266 #752083

>>752079
Отсосу.

23 Май, 23:53 #267 #752168

аноны такой вопрос. Допустим у меня есть платформозависимый код. Ну пусть класс Window. Очевидно, что мне нужно иметь два класса WinWindow и LinuxWindow. Сейчас я делаю так:
#ifdef WIN
typedef WinWindow Window
#else
typedef LinuxWindow Window

Я думаю это не правильно. Как сделать правильно?

Ответы>>752187>>752308

24 Май, 00:02 #268 #752187

>>752168
Qt заворачивает весь платформозависимый код условно в один класс: платформонезависимый интерфейс находится в хедере, а платформозависимый - в cpp файле для каждой платформы.

Т.е. есть Window.h и есть WindowWin.cpp, WindowMac.cpp и т.д. Затем в системе сборки в зависимости от target-платформы определяется, какой cpp'шник будет компилироваться.

Ответы>>752198

24 Май, 00:08 #269 #752198

>>752187
идею понял. Правда я не про qt говорил. А вот допустим у нас есть отдельные дескрипторы для win и mac окна. Как мне их тогда объявлять в хедере?

Ответы>>752204>>752231

24 Май, 00:11 #270 #752204

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

Ответы>>752208>>752212

24 Май, 00:13 #271 #752208

>>752204
Другой вариант - сделать интерфейс Window и наследовать от него WinWindow и LinuxWindow. Инстанциировать под ifdef'ом, естественно.

24 Май, 00:16 #272 #752212

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

24 Май, 00:25 #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

24 Май, 00:26 #274 #752233

>>752231
Да. Я так и понял. Просто где мне создавать дескриптор окна?

Ответы>>752236

24 Май, 00:28 #275 #752236

>>752233
Иди кури сорцы Qt: https://github.com/qtproject/qt/blob/4.8/src/gui/kernel/
и, в частности,
https://github.com/qtproject/qt/blob/4.8/src/gui/kernel/qapplication_win.cpp

24 Май, 00:54 #276 #752280

Всё. Разобрался. Вариант с наследованием для меня не очень. Не хочу тянуть лишние вирт. методы. Сделаю как в cocos2d-x. Завтра ещё посмотрю как в qt. А то сегодня уже спать хочу.
Спасибо всем, аноны!

Ответы>>752341

24 Май, 01:32 #277 #752308

>>752168
причем тут тайпдеф??

24 Май, 03:04 #278 #752341

>>752280
> Не хочу тянуть лишние вирт. методы.
Используй шаблоны и статический полиморфизм.

sage 24 Май, 08:00 #279 #752410

Петушочки, дайте ссылку на шапку на жидхабе.

24 Май, 09:26 #280 #752452

есть темплейтобоги в треде? видел какую ебалу можно на них творить... параметризация алгоритмов и структур данных, например, параметризованный сортер для дерева, или параметризованная underlying structure для кучи, кастомные аллокаторы и прочая мета. ну, или вот, например, https://github.com/lukasmartinelli/py14
оно все, конечно, круто, но вот вопрос: выходит ли это за рамки игр с фичами языка, и используется ли это кем-то, кроме александреску и разрабов boost, в реальных проектах? просветите, а то не могу ничего годного найти

Ответы>>752475>>752491>>752519

24 Май, 10:27 #281 #752475

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

24 Май, 10:45 #282 #752491

>>752452
Широко использую трейты через CRPT.

Ответы>>752930

24 Май, 11:38 #283 #752519

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

Ответы>>752525

24 Май, 11:43 #284 #752523

> Ебашим proposals всем двощем.
https://habrahabr.ru/company/yandex/blog/301514/

24 Май, 11:49 #285 #752525

>>752519

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

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

Ответы>>752529>>752533

24 Май, 11:56 #286 #752529

>>752525
> лол, а кресты не полноценный язык?
Имелись в виду сами шаблоны, а не цпп в целом.
мимокрок

24 Май, 12:07 #287 #752533

>>752525
>а можешь написать, что это за приемы
В целом, для реализации всего на свете нужны только условия, циклы(или рекурсия) и память. Условия в шаблонах - by design, рекурсия - через числовой параметр шаблона, память - через константные статические переменные. Все остальное - уже надстройки над этими тремя средствами.

Ответы>>752536

24 Май, 12:08 #288 #752536

>>752533
Пардон, условия не by design, а через LUT в виде специализаций шаблонов(traits).

Ответы>>752542

24 Май, 12:18 #289 #752542

>>752536
Что такое LUT?

Ответы>>752544

24 Май, 12:21 #290 #752544

>>752542
look up table

24 Май, 16:04 #291 #752727

Есть данные, хранящиеся в векторе. В один момент нужно изменить размер вектора и отсортировать данные в нем. Можно ли это сделать без создания дополнительного вектора?

Ответы>>752740

24 Май, 16:20 #292 #752740

>>752727
Да. resize и std::sort.

Ответы>>752742

24 Май, 16:22 #293 #752742

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

Ответы>>752745>>752761

24 Май, 16:28 #294 #752745

>>752742
Ну так ты сначала меняешь размер, а потом пересортировываешь вектор уже с новым размером. В чем проблема?
Или я чего-то не понимаю?

Ответы>>752838

24 Май, 16:53 #295 #752761

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

Ответы>>752838

24 Май, 18:11 #296 #752838

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

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

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

Ответы>>752846>>752907>>753033>>753183

24 Май, 18:19 #297 #752846

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

24 Май, 19:15 #298 #752907

>>752838
В векторе есть пустые ячейки и занятые? Не проще мап взять? Проблема возникает только если тебе 1 элемент надо положить в уже занятую ячейку? Тогда можно рекурсивно искать элемент который можно переложить в пустую ячейку. Типа поиск в глубину. Тогда проблема может быть только с зацикливание. Что делать если наткнулся на цикл понятно. Тупо переложить все элементы по очереди. Сложнее его задетектить. Наверно надо множество создавать в котором будут номера элементов которые уже переложены на свои места и их нельзя трогать. Или только те элементы что посещались в момент рекурсии. Тогда с каждой выходом из рекурсии его можно очищать. Ну и осталось по очереди все элементы перебирать и заново функцией хэш считать. Должно быстрее работать. Правильно условие понял?

Ответы>>752996

1177 Кб, 400x232

24 Май, 19:38 #299 #752930

>>752491
>CRPT
>CRPT

Ответы>>753030

24 Май, 21:04 #300 #752988

Кто-нибудь этим пользовался?
http://www.interstron.ru/developers_means2.html

Ответы>>753016

24 Май, 21:10 #301 #752996

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

Ответы>>753195>>753266

24 Май, 21:23 #302 #753016

>>752988
http://interstron.ru/upload/images/pubs/Redkaya_professiya.pdf

24 Май, 21:27 #303 #753030

>>752930
Уже и опечататься нельзя.

24 Май, 21:28 #304 #753033

>>752838
У тебя при ресайзе вектора память заново выделяется все равно.

Ответы>>753035

24 Май, 21:29 #305 #753035

>>753033
Поэтому лучше не векторами, а вручную выделять.

Ответы>>753075

24 Май, 21:55 #306 #753075

>>753035
что значит вручную?

Ответы>>753158

24 Май, 21:56 #307 #753078

Анончики, кто-нибудь пользовался бустовским any_iterator?
Как организовать цикл по any_iterator'ам, если их даже нельзя сравнивать? В доке найти пример не могу.

Ответы>>753170

24 Май, 22:05 #308 #753095

Почему вот это говно компилится и запускается в VS, но в определенный момент возникает исключение. https://ideone.com/PctvAG

Ответы>>753113>>753119

24 Май, 22:14 #309 #753113

>>753095
std::string нельзя?
Компилятор всё правильно говорит, нельзя так присваивать:
C++ forbids converting a string constant to 'char*'

Ответы>>753116

24 Май, 22:19 #310 #753116

>>753113
Ты за какую строку конкретно говоришь?

Ответы>>753120

24 Май, 22:20 #311 #753119

>>753095
Какую часть фразы "лабы идут нахуй" ты не понял?

Ответы>>753128

24 Май, 22:20 #312 #753120

>>753116
31 и 32

Ответы>>753128

24 Май, 22:25 #313 #753128

>>753119
это не лаба
>>753120
Почему в vs на этом этапе ошибок нет вообще? Да и сообщение о исключении появляется только под конец выполнения. Там вообще эти строчки не используются.

Ответы>>753174

24 Май, 22:59 #314 #753158

>>753075
Маллоком. Создаешь новый буфер нужного размера, копируешь туда элементы, старый удаляешь.

Ответы>>753160>>753165

24 Май, 23:00 #315 #753160

>>753158
>Маллоком
C++

Ответы>>753166

24 Май, 23:04 #316 #753165

>>753158
Или как вариант держишь два вектора. В одном сами элементы в произвольном порядке, во втором твоя хэш-таблица с индексами элементов. При ресайзе очищаешь вектор с индексами и перестраиваешь заново.

24 Май, 23:05 #317 #753166

>>753160
Простая обертка над маллоком удобнее new, new[], delete, delete[].

Ответы>>753168>>753177>>753184

24 Май, 23:10 #318 #753168

>>753166
Вопрос скорее идеологический, если человек разбирается с плюсами логичнее использовать его функционал.

24 Май, 23:11 #319 #753170

>>753078
Бля, судя по всему, только бустовским for_each.
Бля, пиздец. Вроде бы ещё Майерс в одной из старых книжек писал, что не нужно пытаться писать контейнеронезависимый код.

Ответы>>753571

24 Май, 23:13 #320 #753174

>>753128
Если у тебя не цель показать использование выделение памяти (без ее освобождения), то используй вместо char[] std::string (как уже подсказали выше), а вместо char test; std:vector<std::string> test; Возложи заботу по управлению памяти на плечи разработчиков замечательного STL. И падения скорее всего прекратятся.

24 Май, 23:15 #321 #753177

>>753166
ВНЕЗАПНО new и delete – это и есть простая обёртка над маллоком. Использовать "голый" маллок (или системный апи для этого) нужно только в совсем гурманских целях игрищ с байтами.

Ответы>>753267

24 Май, 23:26 #322 #753183

>>752838
Ты пытаешься сделать хештаблицу?

24 Май, 23:27 #323 #753184

>>753166
Бля, съеби. Удобнее ему вручную высчитывать занимаемый размер, а потом еще и кастить. Ага, конечно.

3560 Кб, 2850x1900

271 Кб, 2928x1521

24 Май, 23:31 #324 #753185

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

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

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

http://nponeccop.livejournal.com/491404.html

24 Май, 23:41 #325 #753195

>>752996
Почему мап не подходит? Он никаких ограничений на тип не накладывает

25 Май, 01:09 #326 #753266

>>752996
передай в sort свой компаратор

Ответы>>753491

25 Май, 01:11 #327 #753267

>>753177
внезапно, new умеет вызывать конструктор (размечать память). а delete вызывает деструктор (корректно очищает память объекта

Ответы>>753270

25 Май, 01:13 #328 #753270

>>753267
А еще эксепшены кидать

25 Май, 01:29 #329 #753279

Как построить например бинарное дерево из объектов?

Ответы>>753281

25 Май, 01:31 #330 #753281

>>753279
Взять и построить.

Задавай вопросы более конкретно, если хочешь услышать конкретные ответы.

Ответы>>753284

25 Май, 01:36 #331 #753284

>>753281
есть массив объектов допустимто. как написать структуру бинарного дерева, элементами которого являются эти объекты. например взять и вывести потом инфу этих объектов последовательно. Типо пишем struct A {class-type o[100]; class-type left; class-type right;} Или что? как это вообще работает?

Ответы>>753285>>753290

25 Май, 01:37 #332 #753285

>>753284
лефт райт указатели

25 Май, 01:40 #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;

и так далее.

Как вывести -- да как хочешь, обходи дерево хоть в глубину, хоть в ширину, как тебе нужно и удобнее.

25 Май, 02:59 #334 #753318

А что не так с ОПом?
мимо

25 Май, 03:17 #335 #753323

До чего же уебанский синтаксис у крестов. Есть ли языки с еще более мерзким синтаксисом?

Ответы>>753325

25 Май, 03:25 #336 #753325

>>753323
Ржавый в том имеет уверенное лидерство

25 Май, 04:28 #337 #753334

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

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

Ответы>>753335>>753339>>753548

25 Май, 04:35 #338 #753335

>>753334
Например? О каких обертках ты говоришь?

25 Май, 04:51 #339 #753339

>>753334
>Покажите хоть один юзкейс, где кресты помогают решить задачу быстее и легче, чем в C
Как там твои обобщенные типы на макросах? Или, например, не заебался еще структуры из одной иерархии друг к другу кастить, чтобы сделать ООП? И все это без вменяемой навигации в IDE. Или, к примеру, нравится выводить размеры для маллока? А потом инициализатор вручную вызывать? А ручками RAII хуячить не остоебенило?

Ответы>>753369

25 Май, 07:23 #340 #753369

>>753339
ООП нинужен

25 Май, 09:31 #341 #753447

http://www.scs.stanford.edu/~dm/home/papers/c++-new.html
СИ — СИЛА. СИ++ — МОГИЛА.

Ответы>>753455

25 Май, 09:43 #342 #753455

>>753447
Этот чувак, кстати, разрабатывает настоящую (а не как сейчас) анонимную имиджборду:
https://www.youtube.com/watch?v=hL3AnIOfu4Y
Профессор Стэнфорда потому что, а не любитель паралимпиадного программирования из ИТМО.

Ответы>>753494

25 Май, 10:45 #343 #753491

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

Ответы>>754209

25 Май, 10:55 #344 #753494

>>753455
А ты, видимо, любитель пропускать бквы в слвах.

25 Май, 11:45 #345 #753523

Читаю Прату, тему про указатели. Он использует выражение "указатель на int (или на любой другой тип)". Как это понять?

Ответы>>753524

25 Май, 11:51 #346 #753524

>>753523
Что конкретно не понятно? Указатель? Указатель на int или указатель на любой другой тип?

Ответы>>753527

25 Май, 11:53 #347 #753527

>>753524
Что такое указатель мне понятно. Не понятно, что такое "указатель на int"

Ответы>>753532>>753545>>753546>>753550

25 Май, 11:59 #348 #753532

>>753527
Видимо не совсем понятно, что такое указатель. Из-за статической типизации при обращении через указатель компилятор будет ограничивать считываемую память размером типа (в твоем случае int, причем он может быть разного размера на разных целевых платформах).

25 Май, 12:21 #349 #753545

>>753527
>Что такое указатель мне понятно
И что это такое?

25 Май, 12:23 #350 #753546

>>753527
https://ideone.com/q56mCw

25 Май, 12:26 #351 #753548

>>753334
Все на Си можно, что на плюсах. Но нахрена лепить велосипеды в Сях, когда есть более удобные инструменты. Особено когда лепят костыли из препроцессора и массивов указателей на функции.

25 Май, 12:27 #352 #753550

>>753527
У тебя есть участок памяти на которые указывает указатель. У тебя там куча байтов. А указатель указывает на 1 байт. Если ты не скажешь ему тип, то компьютер не поймёт что с таким указателем делать. А так ты говоришь что это int и тогда очевидно что следующие 4 байта будут принадлежать тому участку памяти куда указывает указатель. И компьютер понимает что 2 этими 4 байтами надо обращаться как с intом. Будь указатель на unsigned int, а байты в памяти лежали те же самые, то программа обращалась бы с ними по другому. Понятнее?

Ответы>>754139

25 Май, 13:24 #353 #753571

>>753170
Майерс это что-то среднее между Скоттом и авторшей Сумерек?

Ответы>>754095

25 Май, 13:41 #354 #753575

Тезисы на сегодня:
1. Долгая компиляция это зло. Отсутствие модулей это плохо. Мы все страдаем от этой проблемы, но попытка быстро-быстро перепилить что-либо обернется куда большей головной болью. Медленная компиляция лучше, чем развалившаяся совместимость. Кресты не идеальны, но, тем не менее, хороши. Лодку пытаются раскачать ньюфаги, которые сели в нее без багажа.
2. На сях можно сделать все, что можно в крестах. На асме тоже можно. Вопрос всегда в количестве альтернатив, ибо выбор между malloc/new/аллокаторами/велосипедами/еще чем-то, вообще говоря, зависит от ситуации и предпочтений погроммиста. Пока в крестах есть malloc, а в сях нет new, кресты лучше сей как универсальный язык (но не обязательно это так в какой-либо конкретной ситуации).

Ответы>>753577

25 Май, 13:48 #355 #753577

>>753575
Набрасывайте, коллега

25 Май, 14:57 #356 #753619

Господа, уверенно ебашу хеллоу ворлды, в поисках прогресса наткнулся на stackoverflow на совет перейти на QtCreator. Прошу разъяснений что это за хуйня, и как сильно придется забыть любимый nano и такие простые include <stdio.h>

Ответы>>753628

25 Май, 15:10 #357 #753628

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

Ответы>>753646>>753713

25 Май, 15:46 #358 #753646

>>753628
>QtCreator сосет
И в чем же он сосет при написании хелловордов? Или это опять тонкая пропаганда сраного code::blocks?

Ответы>>753732>>753743>>753796

25 Май, 16:52 #359 #753713

>>753628
Гуй можно писать и без него. Чисто для рисования формочек есть Designer.

25 Май, 17:09 #360 #753732

>>753646
>сраного code::blocks
А чем он плох то?

Ответы>>753786

58 Кб, 1365x697

25 Май, 17:16 #361 #753743

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

Ответы>>753753>>753787>>753843

25 Май, 17:25 #362 #753753

>>753743
alt+shift+enter в студии

Ответы>>753825

25 Май, 17:52 #363 #753786

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

25 Май, 17:52 #364 #753787

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

Ответы>>753825

25 Май, 18:03 #365 #753796

>>753646
Это пропаганда CodeLite. Не, ну серьезно, посоны. Любой вменяемый человек понимает, что это такое дело... Очень индивидуальное. Есть тысячи мельчайших факторов, которые формируют наши предпочтения, и невозможно сделать какое-то полномасштабное сравнение и окончательно решить вопрос выбора IDE. Опять же, задачи у всех разные, для написания хэллоуворлда вполне достаточно консоли, тогда зачем человеку ебаться с установкой чего-то? Все что мы можем - сделать частичное сравнение по каким-то важным пунктам вроде обилия возможностей, скорости работы или качества отдельных фич. Оно энивей будет предвзятым, потому что все используют разные подмножества фич и имеют разные требования к их качеству. Кому-то лучше много сырых фич, кому-то - меньше, но отточенных, кто-то запускает IDE на калькуляторе, кому-то вообще важен внешний вид, или кроссплатформенность, или еще чего-то. Тут не угадаешь. Ты спрашиваешь анона - он дает тебе свое имхо, говоря за свой рабочий процесс и свои хорошие практики. Если тебя чем-то оно не устраивает - ну поставь себе на виртуалку десять IDE и сравнивай их, никто ж тебе не запрещает! Либо ты получаешь быстрый рецепт от анона, либо кулинаришь сам, третьего варианта просто не.

25 Май, 18:33 #366 #753825

>>753787
>>753753
Такой полный экран только в виме видел. В студии остаются кнопки в верху. Давайте скрин.

Ответы>>753840>>753850

65 Кб, 1042x1000

25 Май, 18:42 #367 #753840

>>753825
Clion, «presentation mode» (надо настраивать размер шрифта для него с дефолтного 24, кроме этого есть обычный фуллскрин).

Ответы>>753846

25 Май, 18:43 #368 #753843

>>753743
Эээ, тот же qtcreator, не?

Ответы>>753845

25 Май, 18:44 #369 #753845

>>753843
В верху же название

25 Май, 18:45 #370 #753846

>>753840
Какое-то странное у тебя соотношение сторон. Это точно фулскрин?

Ответы>>753847>>753854

25 Май, 18:46 #371 #753847

>>753846
Это все окно (alt+printscreen), работающее в presentation mode

22 Кб, 1920x1080

25 Май, 18:48 #372 #753850

>>753825

Ответы>>753858>>753859>>753865>>753966

25 Май, 18:48 #373 #753854

>>753846
Это древний судя по разрешению 4:3 монитор. Хотя они и сейчас продаются – для пейсания в хорошо кастомизируемой IDE (камень в сторону культяп креатора) оч кошерно.

Ответы>>753859

25 Май, 18:53 #374 #753858

>>753850
Это студия?

Ответы>>753863

25 Май, 18:53 #375 #753859

>>753854
Это окно, работающее в presentation mode. Можно его и в fullscreen развернуть
>>753850
ШINDOШS + рюсская локаль, признак пидарана-говноеда

Ответы>>753861

25 Май, 18:56 #376 #753861

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

Ответы>>753866

25 Май, 18:57 #377 #753863

>>753858
Да

81 Кб, 1920x1080

25 Май, 18:59 #378 #753865

>>753850
Это что ещё за флажок? Уведомления? Типа вам пришло сообщение?

Ответы>>753869

25 Май, 18:59 #379 #753866

>>753861
Я еще могу понять использование Windows+Visual Studio, которые имеют свою область применения, но рюсская локаль в комплекте с этим уже за гранью добра и зла.

Ответы>>753867

25 Май, 19:01 #380 #753867

>>753866
Тебе чем-то мешает это? Человека заебет, ну он и поменяет. Похуй по большому счету.

25 Май, 19:03 #381 #753869

>>753865
Обновления плагинчиков студии.

103 Кб, 904x558

25 Май, 19:52 #382 #753927

По оси Х - запуски одной и той же программы с одним и тем же входом, по Y - время выполнения. Но как видите иногда бывают скачки, Синий график - Wall clock time процесса, красный - cpu clock time. Почему одна и та же программа имеет разный cpu clock time на одинаковом инпуте? Рандом в программе не используется.

Ответы>>753934>>753952>>753959

25 Май, 20:02 #383 #753934

>>753927
Если у тебя ОС общего назначения, а не реального времени, то программа в ней выполняется столько, тогда и так как соизволит система.

Ответы>>753956>>753983

25 Май, 20:20 #384 #753952

>>753927
Потому что твоя ОС шедулит программу как твою мамку, в зависимости от нагрузки (активности фонового говна, фазы луны и тд).

Ответы>>753956>>753983

25 Май, 20:22 #385 #753956

>>753952
>>753934
Если я буду программу для тестирования олимпиадных задач писать, то что делать?

Ответы>>753960>>753971

1470 Кб, 2412x1546

25 Май, 20:23 #386 #753959

>>753927
Ну ты понел

Ответы>>753967

25 Май, 20:25 #387 #753960

>>753956
Прогонять тест пару сотен раз и брать среднее время.

Ответы>>753964

25 Май, 20:26 #388 #753964

>>753960
Скорее увеличить объем входящих данных на несколько порядков.

Ответы>>753968

25 Май, 20:28 #389 #753966

>>753850
>PVS-студио
Свежая версия? Где спиздил?

Ответы>>753976

25 Май, 20:28 #390 #753967

>>753959
SHED_RR,SHED_FIFO - как добиться на линуксе гранулярности выполнения ПО хотя бы 200-300мс - софт активно гоняет по сети данные и обрабатывает поток примерно в 16 Гб/c?

Ответы>>753968

25 Май, 20:31 #391 #753968

>>753967
Взять ОС реального времени. Хотя вообще нахуй ОС там нужна...

>>753964
Какой в этом смысл, если нужно получить время выполнения на конкретном тесте?

Ответы>>753972

25 Май, 20:35 #392 #753971

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

25 Май, 20:35 #393 #753972

>>753968

25 Май, 20:38 #394 #753976

>>753966
Пробная с их сайта. Скачал посмотреть что за зверь.

103 Кб, 904x558

25 Май, 20:43 #395 #753980

Почему cpu time (Красный график) возвращённый функцией clock кореллирует с wall clock time (Синий график), если все точки на этом графике - выполнение одной и той же программы на одном входе данных. Рандома внутри программы тоже нет. Почему время выполнения разнится?

Ответы>>753982>>754009

sage 25 Май, 20:45 #396 #753982

>>753980
Ай, простите, думал первый пост не отправился.

25 Май, 20:46 #397 #753983

>>753952
>>753934
Я потому второй график с cpu clock time и нарисовал, по идее количество тиков использованных на выполнение программы то должно быть одинаковым, даже если оно прерывалось.

Ответы>>753993

25 Май, 20:53 #398 #753993

>>753983
Кэш миссы, так же зависящие от фазы луны учитываешь?

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

Ответы>>754001

25 Май, 21:04 #399 #754001

>>753993
>Ну или просто смотри на сколько алгоритм влезает по времени и памяти
В смысле, "или"? Его совет единственно верный

Ответы>>754114

25 Май, 21:13 #400 #754009

>>753980
Потому что так устроены современные ОС и процессоры.

25 Май, 22:59 #401 #754095

>>753571
Ага. В рувики он тоже Майерс.

25 Май, 23:31 #402 #754114

>>754001
Сам себя не похвалишь – никто не похвалит. Авбще я йбл твй руззкейпвтамушта т ы, мудель

Ответы>>754119

25 Май, 23:36 #403 #754119

>>754114
чини детектор

26 Май, 00:01 #404 #754139

>>753550
Да, спасибо

26 Май, 00:22 #405 #754165

Анончики, как там с prec headers за пределами VS? Или можно использовать только на VS?

Ответы>>754167

26 Май, 00:27 #406 #754167

>>754165
У каждого компилятора свой формат этого говна. Но концептуально ph присутствуют везде.

Ответы>>754169

26 Май, 00:28 #407 #754169

>>754167
а вообще в реальных проектах используют? Компиляция намного быстрее?

Ответы>>754171

26 Май, 00:29 #408 #754171

>>754169
В реальных проектах используют, точные цифры не скажу, иди гугли.

Ответы>>754172

26 Май, 00:31 #409 #754172

>>754171
Ок. Спасибо.

26 Май, 01:51 #410 #754209

>>753491
ну тогда просто свопать элементы

26 Май, 08:22 #411 #754309

Работаю в компании, которая занимается полным циклом изготовления приборов для автоматизации. Устроился недавно, после ВУЗа. Сам инженегр. Всегда тяготел к программированию, умею малость в жаваскрипт. У нас висит вакансия уже давно, о том, что им требуется инженер-программист С++ с опытом много чего. Недавно повесили вакансию, что возьмут выпускника программиста и от него требуется только знать С++ (видимо HR совсем отчаялись). Думаю попробовать вкатиться. Литературой уже помаленьку обмазываюсь.

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

Ответы>>754406>>754407

26 Май, 12:10 #412 #754401

Подскажите, можно ли сортировать std::multimap через std::sort? К примеру так:
std::unordered_multimap<int, int> mm;
std::sort(mm.begin(), mm.end(), std::greater<int>());

Ответы>>754405>>754500

26 Май, 12:12 #413 #754405

>>754401
Тебя не смущает слово unordered в названии коллекции?

Ответы>>754408

26 Май, 12:13 #414 #754406

>>754309
дай ссыль на вакансию

26 Май, 12:13 #415 #754407

>>754309
DDE, OPC и прочая ебля с COM моделью, вот это все. А вообще подошел бы к руководителю пограмистов и спросил, что им нужно.

26 Май, 12:14 #416 #754408

>>754405
да, чет я запарился, мапы совсем не предназначены для ручной сортировки.

Ответы>>754409>>754479

26 Май, 12:16 #417 #754409

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

Ответы>>754484

26 Май, 12:19 #418 #754412

СЭПЭПЭ мертв
/дискас

Ответы>>754416>>754434>>754506

26 Май, 12:24 #419 #754416

>>754412
Что мертво, умереть не может.

26 Май, 13:13 #420 #754434

>>754412
C++ is the Chosen Undead.

Ответы>>754438

26 Май, 13:17 #421 #754438

>>754434
C++ is forsaken.

26 Май, 13:58 #422 #754479

>>754408
Нахуярь свое дерево с сортировкой - это на день работы максимум.

Ответы>>754483>>754489

26 Май, 14:05 #423 #754483

>>754479
Оно там нахуй не нужно. Я ключ просто для удобства поиска отдельно хранил. И сейчас решил сортировку добавить и чет тупанул. std::vector<std::tuple<>> и std::find, std::sort заглаза.

26 Май, 14:07 #424 #754484

>>754409
Разбираюсь немного. Но думаю почитать Кормена (все тут советуют) - норм пишет?

Ответы>>754491>>754495

26 Май, 14:11 #425 #754489

>>754479
Дядя, ты поехавший? Какое нахуй дерево с сортировкой?

Ответы>>754518

26 Май, 14:12 #426 #754491

>>754484
Норм, но эта книга не для новичков.

26 Май, 14:15 #427 #754495

>>754484
Начни лучше с чего-нибудь попроще. С хабра, например
https://habrahabr.ru/post/65617/
и с подобных статей.

26 Май, 14:19 #428 #754500

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

Ответы>>755190

26 Май, 14:26 #429 #754506

>>754412
FAQ::Мотивация.2

26 Май, 14:37 #430 #754517

>>749082 (OP)
test

Ответы>>754528

26 Май, 14:37 #431 #754518

>>754489
>Какое нахуй дерево с сортировкой?
Откуда я знаю какое ему нужно.

26 Май, 14:44 #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 ];

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

Ответы>>754547>>754561>>754564

27 Кб, 400x298

26 Май, 15:11 #433 #754547

>>754528

Ответы>>754590

239 Кб, 1959x1959

26 Май, 15:18 #434 #754561

>>754528
>DlinaMassivaForProverki
>CurrentLehtKorPoForProverki
>Verh
>Pravo
>Niz
>Levo

YOBA ETO TI?

Ответы>>754590>>754592

26 Май, 15:19 #435 #754564

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

Choose your destiny.

Ответы>>754590

26 Май, 16:01 #436 #754590

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

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

Ответы>>754615>>755192

26 Май, 16:04 #437 #754592

>>754561
DA ETO YA
POMOGI S PROGRAMMOI

26 Май, 16:39 #438 #754615

>>754590
У тебя там невидно вложеных структур.

Ответы>>754617

26 Май, 16:41 #439 #754617

>>754615
Ясно, о чём ты, но проблема именно в том, что после объявления по этой структуре, по адресу ничего не видит.

Ответы>>754618

26 Май, 16:43 #440 #754618

>>754617
Залей на pastebin, указатели съел парсер

Ответы>>754624

26 Май, 16:48 #441 #754624

>>754618
Всё отбой, нашёл в чём проблема.

26 Май, 16:54 #442 #754630

Котаны, нужна ваша помощь... Пишу свой pacman с блэкджеком и консольным выводом, но постоянное обновление всей карты приводит к мерцанию, которое жутко бесит. Как сделать так, чтобы только изменяемые клетки рисовало, а старые так висели?

Ответы>>754632>>754651>>754681

26 Май, 16:55 #443 #754632

>>754630
Как отрисовываешь?

Ответы>>754633

26 Май, 16:56 #444 #754633

>>754632
system("cls");
затем самописную функции map_printer с сout внутри

Ответы>>754635

26 Май, 16:57 #445 #754635

>>754633
Рисуешь карту отдельно
Рисуешь пэкмена отдельно
Ща ещё подумаю

Ответы>>754637

26 Май, 16:58 #446 #754637

>>754635
Не, не так
Нарисовал карту - раз
Затем по координатам пэкмена отрисовываешь лишь кусок 1х1 карты, то есть только он отрисовывается, а карта висит

Ответы>>754640>>754641

26 Май, 17:02 #447 #754640

>>754637
Чёто типа
for бла бла бла
cout то, что являестя картой
}
Затем снова
массив карты[ коорлината х пэкмена ][ координата y пэкмена ] = пекмен
это постоянно обновляешь, предидущую чистишь, там пробел пишешь

Ответы>>754645

26 Май, 17:02 #448 #754641

>>754637
как каретку по соснольке двигать? fseek чтоль? :\

Ответы>>754642

26 Май, 17:02 #449 #754642

>>754641
Не совсем понял что такое каретка?

Ответы>>754644

26 Май, 17:03 #450 #754644

>>754642
Ловите нюфага. Указатель текста.

Ответы>>754646>>754671

26 Май, 17:04 #451 #754645

>>754640
точка, ввода символа. У меня так и сделано как вы сказали, но из-за низкой тактовой частоты ЦП, у меня при нажатии кнопки (т.е. движения) карта пропадает на мгновение.

Ответы>>754647

26 Май, 17:06 #452 #754646

>>754644
Обана, ну бывает.

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

Ответы>>754647>>754671

26 Май, 17:07 #453 #754647

>>754645 --> >>754646

26 Май, 17:08 #454 #754651

>>754630
Возьми ncurses. Но ты заебешься с консолькой. Она сложнее массива символов. Лучше сразу делать с графоном.

Ответы>>754653

26 Май, 17:08 #455 #754653

>>754651
А почему не OpenGL?

Ответы>>754658

26 Май, 17:14 #456 #754658

>>754653
Можно и его, конечно, но лучше что-то более высокоуровневое вроде sfml.

26 Май, 17:16 #457 #754660

Cпасибо всем за помощь.

26 Май, 17:22 #458 #754671

>>754644
>>754646
Стопе, каретка это мигающее подчёркивание?

Ответы>>754675>>754677>>754678

26 Май, 17:25 #459 #754675

>>754671
Вроде того

Ответы>>754676

26 Май, 17:28 #460 #754676

>>754675
Тогда причём тут ньюфаг?

Ответы>>754679

26 Май, 17:28 #461 #754677

>>754671
В зависимости от твоих предпочтений: от подчёркивания до блока.

26 Май, 17:29 #462 #754678

>>754671
Консоль - поток символов, у него есть текущая позиция, куда идет вывод. Если ты, например, выведешь \r, вывод пейдет на начало текущей строки, \b - сдвинется на символ влево, и т.д.

Ответы>>755270

26 Май, 17:30 #463 #754679

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

Ответы>>754686

26 Май, 17:30 #464 #754681

>>754630
Заблокируй вывод в консоль. Выведи всё что надо. Разблокируй. Осталось узнать как заблокировать. Скорее всего нужна библиотека.

26 Май, 17:36 #465 #754686

>>754679
>это вообще нахуй не нужно
А как же крутящаяся палочка, отображающая прогресс? Или меняющиеся процентики.

Ответы>>754688

26 Май, 17:37 #466 #754688

>>754686
Как твои палочки связаны с консолью?

Ответы>>754691

26 Май, 17:38 #467 #754691

>>754688
Они в консоли.

Ответы>>754693

26 Май, 17:40 #468 #754693

>>754691
Как. Это. Связано. С. Блядь. Необходимостью. Консоли.
Ты совсем конченный?

Ответы>>754697>>754731

26 Май, 17:43 #469 #754697

>>754693
Символ напечатался, а потом поменялся. начит курсор передвинулся и переписал его. Не тупи.

Ответы>>754704

26 Май, 17:46 #470 #754704

>>754697
Лан я понел, ты траль.

26 Май, 17:57 #471 #754718

Скоро 500 постов а ОП продолжает где-то сосать хуй.

Ответы>>754727>>754730

26 Май, 18:02 #472 #754727

>>754718
Ну значит, будем плясать без него.

26 Май, 18:03 #473 #754730

>>754718
После 600 сам перекачу если оп не появится.

Ответы>>754745

26 Май, 18:07 #474 #754731

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

Ответы>>754745

26 Май, 18:18 #475 #754745

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

>>754731
Не траль плз

Ответы>>754747

26 Май, 18:21 #476 #754747

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

Ответы>>754748

26 Май, 18:23 #477 #754748

>>754747
Заебал толстить. Пшёл нахуй из треда.

Ответы>>754754

26 Май, 18:26 #478 #754754

>>754748
В хуй мне потолсти, лалка

26 Май, 19:45 #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);
}
}

Ответы>>754804>>754811>>754817

26 Май, 19:48 #480 #754804

>>754799
нельзя копировать потоки ввода-вывода

Ответы>>754889

26 Май, 19:53 #481 #754811

>>754799
gist.github, pastebin, тысячи их, пидр

26 Май, 19:59 #482 #754817

>>754799
Не умеешь читать доку к либе - страдай.

sage 26 Май, 21:29 #483 #754889

>>754804
♥

27 Май, 05:56 #484 #755091

С++ для чайников автора Стефана Дэвиса (7-е издание)-сойдёт для изучение сишки чи нахуй ?

Ответы>>755092

27 Май, 05:57 #485 #755092

>>755091
Учи с++ по страуструпу.

Ответы>>755093

27 Май, 05:59 #486 #755093

>>755092
А Дэвис-хуесос ?

27 Май, 05:59 #487 #755094

Хочу написать имиджборду на С++, с чего начать?

Ответы>>755123>>755143>>755710>>755885

27 Май, 08:30 #488 #755123

>>755094
Начни с питона

27 Май, 09:25 #489 #755143

>>755094
Локальная консольна ямиджборда! Единственная в своём роде. А унутре у ней неонка!

27 Май, 11:20 #490 #755190

>>754500
Даун, мапы уже отсортированы.

27 Май, 11:20 #491 #755192

>>754590
Иди на хуй и лабу свою забери.

27 Май, 11:56 #492 #755215

> 2016 год
> Майкрософт все еще не в состоянии написать деинталлятор, который бы не ломал систему
> Заводим проект на гитхабе
https://github.com/Microsoft/VisualStudioUninstaller
Эта хуета когда-нибудь закончится?

Ответы>>755218>>755261

123 Кб, 665x510

27 Май, 12:01 #493 #755218

>>755215
Сука лол. Деинсталятор с гитхаба тоже не работает.
https://www.youtube.com/watch?v=tmPG5WfO14A

27 Май, 13:04 #494 #755261

>>755215
Пришло время переустанавливать Ш1ND0W2. или накатить систему с человеческой фс.

27 Май, 13:38 #495 #755270

>>754678
>Консоль - поток символов
это юниксовая сделана на вводе-выводе, виндовая по другому..

Ответы>>755274

27 Май, 13:43 #496 #755274

>>755270
GetStdHandle..

28 Май, 00:21 #497 #755636

Вопрос:
Почему в дочернем классе можно переопределить функцию родительского класса, при этом не указывая virtual в род. классе? Чем эти 2 случая отличаются?

Ответы>>755640>>755644>>755645>>755683

28 Май, 00:33 #498 #755640

>>755636
Ты ее просто перекрываешь. Полиморфизм не будет работать.

28 Май, 00:37 #499 #755644

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

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

28 Май, 00:39 #500 #755645

>>755636
пример
https://ideone.com/CLlbah

28 Май, 02:08 #501 #755675

>>749082 (OP)
Посоны, я полный деб и не могу понять что значит символ ^ допустим в контексте
>String^ string;
Не гуглится нихуя

Ответы>>755679

28 Май, 02:17 #502 #755679

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

До чего техника дошла.

28 Май, 02:39 #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, после чего она и будет вызвана.

Стало понятнее?

28 Май, 03:01 #504 #755690

>>749082 (OP)
Чем code::blocks хуже clion или codelite, почему его нет в шапке?
На чем трушнее разрабатывать гуй в 2016?
Juce/wxvidgets/gtk/qt и почему? Какие плюсы-минусы?

Ответы>>755879>>755881

28 Май, 05:25 #505 #755710

>>755094
С похода к духтору. Он тебе поможет социализироваться, если ещё не всё так запущено, конечно.

28 Май, 11:23 #506 #755812

Ньюфаг ИТТ. Посоны, что вы думаете об оффлайн-курсах? Это вообще эффективно и стоит своих денег? Хочу записать на что-нибудь подобное - http://levelp.ru/courses/programmirovanie/c-junior-developer/
Какие подводные камни?

Ответы>>755831>>755887

28 Май, 12:11 #507 #755831

>>755812
Нахуя тебе эти курсы? Скачай книжку и почитай.

Ответы>>755840

28 Май, 12:28 #508 #755840

>>755831
На книжки я кладу хуй, как только дохожу до непонятного места. С онлайн-курсами то же самое.

Ответы>>755945

28 Май, 13:39 #509 #755879

>>755690
code::blocks лучше чем они имхо
в codelite автодополнение работает плохо/не работает вообще

Ответы>>755920>>756007

28 Май, 13:40 #510 #755881

>>755690
>2016
>GUI

Ответы>>756007

28 Май, 13:43 #511 #755885

>>755094
boost::wakaba. Не благодари

28 Май, 13:46 #512 #755887

>>755812
Да, конечно иди. После подобных курсов меня сразу взяли на должность мидл-девелопера, хотя я вообще языка практически не знал до них. Стоит своих денег!

Ответы>>755898

118 Кб, 596x393

28 Май, 13:57 #513 #755898

>>755887
>40 часов
>мидл-девелопера

Вприсядку с поехавшего

28 Май, 14:20 #514 #755920

>>755879
Ты поехавший дядя? Открой хоть раз eclipse cdt, это - самая сильная IDE в code assistant на данный момент.

Ответы>>755926>>756007

28 Май, 14:28 #515 #755926

>>755920
Про cdt не было речи

28 Май, 14:55 #516 #755945

>>755840
Что тебе мешает положить хуй когда дойдешь до непонятного места на оффлайн курсах?

Ответы>>756083

28 Май, 15:55 #517 #756007

>>755879
Чего его нет в шапке тогда?
>>755920
Эклипс - жуткая и тормозящая параша.
>>755881
Кек

Ответы>>756011>>756117

28 Май, 15:59 #518 #756011

>>756007
moar нажми

Ответы>>756035

28 Май, 16:27 #519 #756035

>>756011
В шапке в основных какое-то говно, я это имею ввиду.

28 Май, 17:02 #520 #756083

>>755945
1. Деньги уплочены.
2. Чисто психологически не так легко соскочить, когда занимаешься с другими людьми.
3. Препод должен популярно объяснять непонятные моменты.

28 Май, 17:20 #521 #756117

>>756007
>Эклипс - жуткая и тормозящая параша.
Ты ебу дал? Почему у меня не тормозит? Ни с hdd, ни тем более с ssd.

28 Май, 18:13 #522 #756188

Есть текстовый файл в котором хранится информация о зависимостях классов, типа класс 1 наследует у класса 2 и тд.

как все это считать в матрицу смежности?

Ответы>>756191

28 Май, 18:16 #523 #756191

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

Ответы>>756192

28 Май, 18:17 #524 #756192

>>756191
что не так?

Ответы>>756197

28 Май, 18:23 #525 #756197

>>756192
Список смежности проще на крестах. Матрицу на си или паскале строить будешь.

Ответы>>756199>>756425

28 Май, 18:24 #526 #756199

>>756197
окей. это не столь важно, список или матрицу. главное реализовать поиск.
считать строку и определить что это за класс и откуда наследует (если наследует вообще).

Ответы>>756210>>756227

28 Май, 18:35 #527 #756210

>>756199
В каком формате храниться инфа?

Ответы>>756214

28 Май, 18:38 #528 #756214

>>756210
текстовый файл с объявлением класса, типа:
class Parent {};
class Child: virtual public Parent {};

Ответы>>756222

28 Май, 18:47 #529 #756222

>>756214
Все классы в разнабой? Родитель может после ребёнка быть? Тогда нёжен мап. Ключ имя класс, а значение это множество унаследованных от него классов. Читаешь файл по строкам. Если встретил класс базовый, то добавляешь в мап и множество детей пустое. Если встретил унаследованный класс, то класс ребёнка добавляешь в множество детей класс родителя, и создаешь пустой класс ребёнка если он ещё не создан. ЗА 1 проход должен справиться. Можно не мапом, а вектром. Так сложнее, но в конце в список смежностей не придётся конвертировать.

Ответы>>756408

28 Май, 18:52 #530 #756227

>>756199
Какие ограничения? Могут ли в классе быть объявления методов, функций и т.п., или это форвард-декларации без тела класса? Могут ли быть комментарии в этом файле? Однострочные, многострочные? Может ли быть что-то кроме классов в файле? Строки, например?

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

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

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

Ответы>>756294>>756408

28 Май, 19:47 #531 #756294

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

Ответы>>756298

28 Май, 19:49 #532 #756298

>>756294
>текстовый файл с объявлением класса
>строчных литералов
Он же вроде объяснил что там только такие строки как в примере.

28 Май, 21:39 #533 #756382

Можно ли как-то взять модуль числа?
Хочу убрать вероятный знак -.

Ответы>>756387>>756388

sage 28 Май, 21:42 #534 #756387

>>756382
n = |n|

28 Май, 21:42 #535 #756388

>>756382
sqrt(sqr(n))

Ответы>>756396>>756410

28 Май, 21:48 #536 #756396

>>756388
sqr - не могу найти, это квадрат, так?

Ответы>>756398>>756399

28 Май, 21:49 #537 #756398

>>756396
Да. Ищи тщательнее.

Ответы>>756402

28 Май, 21:51 #538 #756399

>>756396
можешь сам написать
int str(int num)
{
int res = 0;
for(size_t i = 0; i!=num; ++i)
{
res += num;
}
return res;
}

Ответы>>756400>>756402>>756410

28 Май, 21:52 #539 #756400

>>756399
>str
sqr

28 Май, 21:53 #540 #756402

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

>>756399
Спасибо, сейчас попробую.

Ответы>>756406

28 Май, 21:57 #541 #756406

>>756402
pow ты загуглить смог, а abs нет?

Ответы>>756410

28 Май, 21:58 #542 #756408

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

Каким образом это реализовать?

Ответы>>756413

28 Май, 21:59 #543 #756410

>>756406
Спасибо.

Альсо, а что в этом методе убирает минус: >>756399
>>756388
Так, на будущее.

28 Май, 22:01 #544 #756413

>>756408
Ты не смог распрасить строки в примере или в твоём текстовом файле тебе что-то мешает?

Ответы>>756416

28 Май, 22:03 #545 #756416

>>756413
Я не смог понять КАК это сделать. Мне ничего не мешает, есть текстовик, там все эти наследования, как я и говорил, их может и не быть, а может быть 2-3, к примеру. Суть не в этом.
Мне надо получить то, что я написал выше, с учетом того, что если будет больше наследований, то соответственно больше имен

Ответы>>756537

28 Май, 22:10 #546 #756425

>>756197
Какая разница-то?

Ответы>>756434

28 Май, 22:19 #547 #756434

>>756425
Списсок смежностей легко делать на динамических массивах. И он лучше матрицы т.к. занимает меньше памяти.

Ответы>>756440>>756447

28 Май, 22:31 #548 #756440

>>756434
Это понятно

> Список смежности проще на крестах
Шо на плюсах, шо на сях. Одинаково будет

Ответы>>756442

28 Май, 22:34 #549 #756442

>>756440
на сях не вектора самому функции инсерт и делите в список писать будешь и с указателями ебаться

Ответы>>756446

28 Май, 22:39 #550 #756446

>>756442
А, лол, std::vector же, действительно. Сорь

28 Май, 22:40 #551 #756447

>>756434
Ну на плюсах ты тоже нормально не сделаешь. Фрагментация заебет. Но для laba_graph.cpp норм.

Ответы>>756448>>756450

28 Май, 22:42 #552 #756448

>>756447
>нормально не сделаешь
я про простые методы типа vector<vector<unsigned>>

28 Май, 22:45 #553 #756450

>>756447
>Фрагментация
А где её нет? Это не от языка зависит.

Ответы>>756451

28 Май, 22:47 #554 #756451

>>756450
>А где её нет?
в матрице смежности

Ответы>>756453

28 Май, 22:51 #555 #756453

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

Ответы>>756454

28 Май, 22:52 #556 #756454

>>756453
>костыль по превращению двумерного массива в одномерный нужен
Это новое название memory pool?

Ответы>>756456

28 Май, 22:54 #557 #756456

>>756454
Нет не пул. Там когда a[i*n+m] вместо a[n][m].

Ответы>>756459

28 Май, 22:58 #558 #756459

>>756456
А что плохого то?

Ответы>>756462

28 Май, 23:00 #559 #756462

>>756459
Костыль, сложно, нечитаемо, очень неэффективно по памяти.

Ответы>>756468

28 Май, 23:08 #560 #756468

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

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

ну и обращайся к массиву arr[j].
>очень неэффективно по памяти
поясни

Ответы>>756470>>756473

28 Май, 23:09 #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

28 Май, 23:09 #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;

28 Май, 23:09 #563 #756473

>>756468
>поясни
Это я в общем про метод.

>>756470
Отправь ещё раз. Вдруг получится.

28 Май, 23:10 #564 #756476

http://pastebin.com/Q7GrVvXX

Ответы>>756478

28 Май, 23:15 #565 #756478

>>756476
Ну и что это?

Ответы>>756480

28 Май, 23:20 #566 #756480

>>756478
как ты и хотел. Без
>Костыль, сложно, нечитаемо

А, вообще, тебе любой пояснит, почему так делать лучше.

29 Май, 02:18 #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

29 Май, 02:20 #568 #756538

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

Ответы>>756540

29 Май, 02:38 #569 #756540

>>756538
>Надеюсь, понятно, где они должны стоять везде, где разыменовывается итератор rbegin() и сравнивается с символом
Охуел, бля? Еще мы тут будем вчитываться в твой высер. Заливай на ideon свое говно.

Ответы>>756553

29 Май, 03:36 #570 #756553

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

29 Май, 16:38 #571 #756806

4.6/1 говорит, что сохраняет значение только float->double promotion, а double->long double может терять точность.
3.9.1/8 говорит, что long double имеет достаточную точность, чтобы хранить любое значение из double.
Тебе не кажется, анон, что тут какая-то нестыковка?

Ответы>>756924>>757074

10 Кб, 652x54

sage 29 Май, 18:57 #572 #756924

>>756806
Где ты увидел в 4.6/1 конверсию из double в long double?

Ответы>>756970>>757074

29 Май, 19:35 #573 #756970

>>756924
Я имею в виду как раз, что ее нет среди promotions. Получается, безопасность не гарантируется, но 3.9.1/8 утверждает обратное. Если она всегда безопасная, то зачем ее отнесли к conversions, разве основная суть promotions не отделение гарантированно безопасных преобразований?

Ответы>>757007>>757074

sage 29 Май, 20:05 #574 #757007

>>756970
В 8.5.4/7 вроде указаны все сужающие преобразования, видимо, все остальные являются нормальными. Хотя действительно странно, что напрямую нигде не сказано про double -> long double.

Ответы>>757070>>757074

29 Май, 21:14 #575 #757070

>>757007
>8.5.4/7
Добра тебе, няша. Я-то смотрел в разделе про типы, а оно вон где запрятано.

Ответы>>757074

29 Май, 21:21 #576 #757074

>>756806
>>756924
>>756970
>>757007
>>757070
Krestothread.
Lyrics. Labas. Language lawyers.

Ответы>>757942

30 Май, 17:22 #577 #757646

Switch не работает со string, почему?

Ответы>>757653

sage 30 Май, 17:29 #578 #757653

>>757646
Потому что switch в c и c++ работает только с перечисляемыми типами. string, естественно, к ним не относится.

30 Май, 17:36 #579 #757661

Подскажите пожалуйста, я недавно читаю книгу, но медленно иду, и тут я застопорился в задачке из книги с шапки:
http://ideone.com/iGGnvN
Как сделать так, чтобы если я ввёл unit не из списка (m, cm, in, ft), то мне писалось бы что он неверный и предлагалось заново ввести его, а не закрывалась программа?
На 18-22 строках у меня бам break; стоит.

Ответы>>757667

30 Май, 17:41 #580 #757667

>>757661
Поменять break на continue.

Ответы>>757675

30 Май, 17:47 #581 #757675

>>757667
Cпасибо, т.е. брейк просто прерывает программу, а продолжить прерывает текущую функцию, и делает откат, как-то так?

Ответы>>757682

30 Май, 17:50 #582 #757682

>>757675
У тебя дело происходит в цикле while. break выводит из цикла, continue отправляет на следующую итерацию.

Ответы>>757684

30 Май, 17:52 #583 #757684

>>757682
continue относится только к циклам, типа while / for? У меня он же в if находится. Понятно, в книге, просто, про него не было написано.

Ответы>>757691

30 Май, 17:56 #584 #757691

>>757684
break/continue могут быть в любом цикле, независимо от положения. Они будут относиться к наиболее вложенному, если отсутствует метка.

Ответы>>757705

30 Май, 18:12 #585 #757705

>>757691
А у вас нету чата какого-нибудь?

30 Май, 20:06 #586 #757791

Сап плюсач. Есть одна функция. А вернее целый класс с этой ф-цией.
http://pastebin.com/YJDR9eTL
Вот сам код. При попытке его скомпилить(это кусок библиотеки) все получается и никаких проблем нет. Но вот при подключении этой самой библиотеки к тестовому проекту, последний выдает ошибку линковщика, жалуясь на DelegateProc. К слову если убрать присвоение
DelegateProc = _DelegateProc;
То код вполне себе компилится. Казалось бы дело именно в нем, но как, черт возьми, тогда его правильно сделать?

Ответы>>757794

30 Май, 20:11 #587 #757794

>>757791
>тогда его правильно сделать
как и любой другой статический член класса.

Ответы>>757806>>757817

30 Май, 20:21 #588 #757806

>>757794
Ты имеешь ввиду его нужно было в самом начале еще присваивать? То есть указать сначала тип, потом этот объект, и потом какую-нибудь начальную ф-цию. Но как указать тип?
???? Win32WindowWrapper::DelegateProc = DefWindowProc;
Что писать в начале?

Ответы>>757817

30 Май, 20:35 #589 #757817

>>757794
>>757806
Анончик. Я нашел ответ!
LRESULT(__cdecl *Win32WindowWrapper::DelegateProc)(HWND, UINT, WPARAM, LPARAM);

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

30 Май, 22:45 #590 #757942

>>757074
> Language lawyers.
Собственно, всё "знание" цепепе — это быть language lawyer. ООПе оно в любом языке ООПе.

55 Кб, 722x250

31 Май, 04:21 #591 #758137

Пытаюсь установить box2d, а вот такая ошибка вылазит. что бы это значило?

31 Май, 08:21 #592 #758182

Есть QQuickWindow, можно в него опенгл рендерить отдельно? Пошарил по гуглу, говорят цеплять рендерер к beforeRendering/afterRendering, но это хуйня какая-то, мне нужно больше 60фпс.

57 Кб, 1889x866

31 Май, 19:06 #593 #758702

Читаю Страуструпа
Не могу запустить первую же программу.
ЧЯДНТ?

Ответы>>758926>>758938

31 Май, 23:06 #594 #758926

>>758702
> std_lib_facilities

31 Май, 23:32 #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

31 Май, 23:43 #596 #758948

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

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

Один совет охуительней другого.

01 Июн, 02:14 #597 #759013

>>758938
Даун не знает про гетчар и систем пауз, а советы раздает.

Ответы>>759025

01 Июн, 04:17 #598 #759025

>>759013
>getchar()
Не стандартные средства языка.
>system("pause")
А за такое вообще нужно брать и убивать.

Ответы>>759039

67 Кб, 602x648

01 Июн, 06:30 #599 #759039

>>759025
>>getchar()
>Не стандартные средства языка.
Лолшто

Ответы>>759043

01 Июн, 06:51 #600 #759043

>>759039
>Defined in header <cstdio>
Ферштейн?

Ответы>>759081>>759120>>759136

01 Июн, 09:45 #601 #759081

>>759043
Лол, блядь! Тогда что есть стандартные средства?

47 Кб, 1429x210

01 Июн, 11:04 #602 #759120

>>759043
Ну и что? cstdio - часть стандартной библиотеки c++. В pure c такого хедера вообще нет.

Ответы>>759145

01 Июн, 11:38 #603 #759136

>>759043
Хотя лучше использовать std::cin.ignore(), да

01 Июн, 11:49 #604 #759145

>>759120
Ты тралишь? Зачем тогда cin рекомендуешь, если его нет в pure c?

Ответы>>759146

01 Июн, 11:52 #605 #759146

>>759145
Потому что, он есть в c++, которому посвещен этот тред.

Ответы>>759147

sage 01 Июн, 11:54 #606 #759147

>>759146
Все с тобой понятно.

140 Кб, 800x600

01 Июн, 12:44 #607 #759185

Суп, аноны, поясните за ошибку при создании проектa:

Ответы>>759188>>759243

01 Июн, 12:46 #608 #759188

>>759185
У тебя неправильная ide и ось

01 Июн, 14:01 #609 #759243

>>759185
Вайфая нет
Сети нет
Звука нет

Ответы>>759249

01 Июн, 14:14 #610 #759249

>>759243
enjoy you linux

Ответы>>759259

01 Июн, 14:22 #611 #759259

>>759249
*your

44 Кб, 600x402

01 Июн, 14:22 #612 #759260

QT и OpenMP ПРОБЛЕМЫ
У меня есть два вопроса:
1) Есть Window. На нём есть пара элементов. Как можно поменять параметры одного элемента из кода другого? Обычно это делается сигналами/слотами, но что делать, если я хочу, например, изменить значения на сразу двух лейблах по нажатию кнопки? Мне нужно биндить слот на кнопке сразу к двум сигналам на лейблах?

2) Есть кнопка. Когда нажимаю кнопку, начинается в цикле выполнение некоторого кода. Цикл распараллеленн с помощью OpenMP. После завершения нужно вывести результат в лейбл на форме.
Как сделать так, чтобы во время этих вычислений, само приложение не подвисало? Такое возможно с OpenMP вообще?
Ну то-есть, я хочу, чтобы приложение просто висело и не крашилось от того, что пользователь по нему кликнет пару раз наугад куда-нибудь.

Ответы>>762413

01 Июн, 14:42 #613 #759280

ПЕРЕКАТ

>>759279 (OP)
>>759279 (OP)
>>759279 (OP)

160 Кб, 959x957

02 Июн, 10:47 #614 #759881

Может кто-нибудь помочь с решением задачи по программированию (через функции).

Ответы>>759953>>760253

02 Июн, 13:33 #615 #759953

>>759881
> Лабы идут нахуй
И ты вместе с ними.

02 Июн, 19:55 #616 #760253

>>759881
30 баллов это дохуя или нет?

Ответы>>760661

03 Июн, 15:45 #617 #760661

>>760253
~67$

03 Июн, 17:44 #618 #760750

Нахуй мне учить с++ если в любой компании сидят задроты которые всю жизнь потратили на изучение c++

Ответы>>761635

04 Июн, 21:31 #619 #761635

>>760750
Не учи. Похуй как-то вообще. Или тебя по учебе заставляют? Тогда прогревай анус лол.

ХЕЛП ХЕПЛ 05 Июн, 16:57 #620 #762336

завтра курсак сдавать, а у меня=> Недопустимый путь: "F:\Курсач 0.2.accdb". Убедитесь, что путь указан правильно и имеется подключение к серверу, на котором находятся файлы.
как обновить путь автоматом к базе сразу ко всему?

05 Июн, 18:15 #621 #762413

>>759260
1. Да, либо отдельный слот создавать, чтобы он выводил сразу на обе подписи.
2. QtConcurrent может такое, напихаешь задач и запустишь их. Создашь QEventLoop и стартанешь его, после выполнения всех задач скажешь QEventLoop'у идти нахуй со своими ивентами.

06 Июн, 20:45 #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;
}

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

10 Июн, 19:30 #623 #766465

Посоны, зачем нужно это ебаное std::? У меня без этой хуйни все норм компилится и запускается.

Ответы>>768027

12 Июн, 19:20 #624 #768007

Анон, а какое самое большое приложение ты запердоливал на крестах, и что оно делало?

12 Июн, 19:34 #625 #768027

>>766465
Для сношения вашей матушки, уважаемый.

12 Июн, 21:40 #626 #768170

Скиньте книг по multithreading, которые пояснят за устройство, концепции, что происходит на уровне ОС. Ну и картиночек бы еще, но эт необязательно. Пасиба.

14 Июн, 14:59 #627 #769232

>>749082 (OP)
Чем писать хеллоуворды на линуксе(убунту16.04)?

Тред утонул или удален.
Это копия, сохраненная 16 июня 2016 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion