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

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

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

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

193 Кб, 960x575

Оффициальный™ традиционный® C++ тред #18 10 Янв, 00:15 #622611 В конец треда | Веб

Иные байтоебством тяготятся,
Но местный сброд, участливый к нему,
Алкает жадно: "Я согласен взяться!"

Ликуй же ныне, ибо есть чему:
В тред вполз с вопросом отрок из гейдева:
"Как мне хранить текстуры, не пойму?"

Лишь крестоблядок не сгорит от гнева
И будет поощрять столь низкий вздор,
Тщась разогнать тоску родного хлева,

Ведя пять дней с невеждой разговор.

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

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

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

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

Старший брат: >>609376 (OP)
Предыдущий: >>615922 (OP)\r\n\r\n

\r\n\r\nFAQ:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

boost

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

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

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

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

Qt

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

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

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

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

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

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

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

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

10 Янв, 00:16 #2 #622612

Предыдущие треды на архиваче:
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/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/

64 Кб, 864x863

10 Янв, 01:37 #3 #622653

Каким циклам в C++ соответствуют эти циклы repeat until?

Написал такую хуйню: https://ideone.com/hznxek

Ответы: >>622655

10 Янв, 01:38 #4 #622655

>>622653
do while

Ответы: >>622656

10 Янв, 01:42 #5 #622656

>>622655
Ты уверен? Обычно циклы с until работают до тех пор, пока НЕ выполнится условие until. Но все пидорасы в книгах об этом цикле думают по-разному.

Ответы: >>622658

10 Янв, 01:45 #6 #622658

>>622656
По смыслу там не может быть do while, потому что здесь: while(v < p) i++; надо сканировать массив до тех пор, пока элементы меньше опорного. В do while пришлось бы добавить отрицание.

10 Янв, 02:33 #7 #622666

Читаю Прата. Сейчас дошел до 9 главы. У меня возник вопрос. Вы это все помните наизусть или просто запоминаете какие возможности есть и лезете в мануал? Я просто очень изумлен тем, сколько возможностей есть на крестах.

Ответы: >>622678, >>622686

10 Янв, 02:53 #8 #622678

>>622666
Там азы написаны, мы знаем намного больше и помним о куче подводных камней.

Ответы: >>622692

10 Янв, 03:17 #9 #622686

>>622666
Главное знать где и что искать. А подробности можно посмотреть на cppreference.com

10 Янв, 03:33 #10 #622692

>>622678
Не прояснишь мне по поводу стека? Почему в нем операции выполняются быстрее, чем в куче?

Ответы: >>622696

10 Янв, 03:37 #11 #622696

>>622692
Потому что стэк всегда лежит в кэше процессора, а обращение к оперативной памяти в случае cache miss занимает 200 тактов. Плюс выделение/освобождение памяти на стеке - это прибавление-вычитание 1 указателя, а в куче - зависит от аллокатора и деаллокатора. Стандартный malloc/free медленный.

Ответы: >>622700, >>622705

10 Янв, 03:39 #12 #622699

Если интересно про кэш, почитай лучшие сообщения у этого юзера http://rsdn.ru/Account/Info/38267

Ответы: >>622700

10 Янв, 03:40 #13 #622700

>>622699
>>622696
Благодарю.

10 Янв, 03:47 #14 #622705

>>622696
В общем случае скорость чтения из стека и кучи одинакова. Куча замедляется, только если она сильно фрагментирована.

Ответы: >>622713, >>622715

10 Янв, 04:00 #15 #622713

>>622705
Если данные вылетят из кешей, то лови чтение из оперативки. А кешей всего то ~35 мегабайт

Ответы: >>622718

10 Янв, 04:02 #16 #622715

>>622705
В каком-таком общем случае, поехавший?

10 Янв, 04:04 #17 #622718

>>622713
>35Мб
Это на йоба-серверах? Или я настолько отстал от жизни, что пропустил момент, когда стали распространенны процессоры с огромным кешем?

Ответы: >>622751, >>622873

10 Янв, 05:10 #18 #622751

>>622718
Он, видимо, дефисчик проебал.

10 Янв, 11:32 #19 #622837

>>622526
>Что лучше freopen или fstream?
fstream

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

>>622611 (OP)
OP вообще красавчик со стихом в этот раз.

Ответы: >>622859

10 Янв, 12:20 #20 #622858

Хочу заняться юнити разработкой , и подумываю над с# ,но в университете учил с++ и мне он нравится , можно ли как-то это совместить?
у меня будет где-то год-полгода фри (висеть на шее) , с каким из языков где-то после месяцев 6-9 можно делать хоть какие-то подделки и зарабатывать хотя бы на еду 2-3к рублей в месяц ?

Ответы: >>623170, >>623557

10 Янв, 12:23 #21 #622859

>>622837
>fstream
Почему?

Ответы: >>622870, >>622874

10 Янв, 12:45 #22 #622870

>>622859
Прочитать и вывести 100 мегабайт через fstream занимает 480 миллисекунд, а через freopen 6.8 СЕКУНД. В чём дело? Есть какие-нибудь подводные камни для этих способов ввода? Ничего кроме getline придумать не могу, но он везде работает.

10 Янв, 12:52 #23 #622873

>>622718
6-8миб. Ошибся чутка

10 Янв, 12:54 #24 #622874

>>622859
Потому что ты пишешь на C++ , а не C .

10 Янв, 13:03 #25 #622875

Кто-нибудь пробовал модули в новой VS? Как их включить-то?

10 Янв, 15:33 #26 #622942

Решил взять и прочитать Страуструпа в оригинале. Толк есть?

Ответы: >>623015

23 Кб, 663x328

10 Янв, 16:22 #27 #622957

Я ньюфаг, как в C++, так и в программировании вообще. Излагаю суть задачки. С помощью вложенных циклов (без использования массивов, короче) надо нарисовать в консоли шахматное поле, и на заданную пользователем клетку поставить слона, отметив на поле все клетки, по которым он может двигаться.
Я сделал вот так, но результат у меня кривой: http://ideone.com/CN3Ru7

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

Ответы: >>622977, >>623009

10 Янв, 16:51 #28 #622977

>>622957
Там где z ты хуитой какой-то занимаешся. Точнее не хуитой, там ходы слона высчитываются, а тебе конб нуэен.

Ответы: >>622983

10 Янв, 17:04 #29 #622983

>>622977
Да нет, мне именно слон и нужен.
Просто одна полоса справа от позиции фигуры почему-то пропускается, а я всё не могу обнаружить, в чём проблема.

10 Янв, 17:16 #30 #623000

Братцы, а может кто несколько лаб по Теории программирования сделать за вознаграждение?
Основы кодинга, знающему несложно вероятно будет. Сессия завтра.

Ответы: >>623001

10 Янв, 17:17 #31 #623001

>>623000
Или я не в тот тред пишу?

Ответы: >>623004

10 Янв, 17:25 #32 #623004

>>623001
Не в тот сайт.
Задания скинь, интересно почитать.

Ответы: >>623006

10 Янв, 17:28 #33 #623006

>>623004
Лабораторная работа № 1
Классы. Основные понятия

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

Вариант 1==
Класс «Растение»
Поля: тип (дерево, куст и т.д.), высота и т.д.
Для поля «тип» использовать тип данных enum
Методы:
a.\tсравнение по высоте двух растений, в метод передается высота растения, с которым требуется сравнить текущее
b.\tсравнение по высоте двух растений, в метод передается экземпляр класса «Растение», с которым требуется сравнить текущее

И там 5 лаб. Скажите, большой ли это объем работы и в какую сумму может оцениваться?

Ответы: >>623008, >>623010

10 Янв, 17:29 #34 #623008

>>623006
\t перед a и b лишние.
фикс

10 Янв, 17:38 #35 #623009

>>622957
В 46 строке, у тебя всегда выводить пробел, если не был выведено 'B'. А кроме этого пробел не нужно выводить если ты перед этим вывел '*'.

Ответы: >>623034

10 Янв, 17:38 #36 #623010

>>623006
Хуйня ниачем. Оценят в самый минимум. Если ты по специальности погромизд, то этого вообще недостаточно.
Держи урок https://www.youtube.com/watch?v=EpjVri1AZZc

Ответы: >>623012, >>623013

10 Янв, 17:40 #37 #623012

>>623010
Но это задание целиком было, без моих решений.

10 Янв, 17:41 #38 #623013

>>623010
За видео спасибо.

10 Янв, 17:43 #39 #623014

> str.replace(str.find(str2),str2.length(),"preposition");
Почему здесь порядок ыполненя не нарушен? Он же может сначала str2.length() посчитать, а потом str.find(str2).

10 Янв, 17:45 #40 #623015

>>622942
Нет. Выбери что-то другое.

Ответы: >>623052

10 Янв, 17:56 #41 #623019

Хелп товарисчи! Проблема такая,я решил учить c++,до этого программированием вообще не занимался,читаю книгу из описания треда,там все начальные примеры приводятся в visual studio,подскажите где скачать норм версию,а то та что с оф сайта поломала мне винду 7.

Ответы: >>623054, >>623780

10 Янв, 18:17 #42 #623034

>>623009
Можно как-то пофиксить?
Пытаюсь запихнуть остальные условия (с выводом "B" и "*") в цикл с z, поебавшись при этом с break/continue - пока безуспешно, и, похоже, так и останется.

10 Янв, 18:47 #43 #623052

>>623015
Я уже сносно умею в плюсы, что выбирать?

Ответы: >>623091

10 Янв, 18:48 #44 #623054

>>623019
С оф сайта качай

10 Янв, 19:02 #45 #623058

>>622611 (OP)
Анон, скажи когда уже будут модули?

Ответы: >>623072

10 Янв, 19:11 #46 #623065

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4173.pdf

тактактак, наканецта можно перегрузить operator.

Ответы: >>623067

10 Янв, 19:12 #47 #623067

>>623065
И зачем оно надо?

Ответы: >>623073

10 Янв, 19:18 #48 #623072

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

10 Янв, 19:18 #49 #623073

>>623067
operator-> уже есть, для симметрии

10 Янв, 19:40 #50 #623091

>>623052
Либо любую современную книгу из шапки либо любой Мейерс

Ответы: >>623104

10 Янв, 19:44 #51 #623096

Хочу заняться юнити разработкой , и подумываю над с# ,но в университете учил с++ и мне он нравится , можно ли как-то это совместить?
у меня будет где-то год-полгода фри (висеть на шее) , с каким из языков где-то после месяцев 6-9 можно делать хоть какие-то подделки и зарабатывать хотя бы на еду 2-3к рублей в месяц ?

Ответы: >>623105

10 Янв, 19:49 #52 #623104

>>623091
Спасибо

10 Янв, 19:52 #53 #623105

>>623096
>но в университете учил с++
Разве в университетах не преподают обычный Си только с классами (то есть древний как говно мамонта С++)?
>, и подумываю над с#
У шарпоблядей свой тред. Вообще, если ты знаешь Си или С++, тебе любой язык будет даваться намного проще, так как от Си пошли большинство ЯО, а С++ включает в себя огромное количество идей. Но я сомневаюсь, что ты в универе учил С++.

Ответы: >>623113, >>623250

792 Кб, 1343x670

10 Янв, 20:06 #54 #623113

>>623105
>ЯО
Хотел запостить ядерное оружие, но почему-то у гугла ЯО ассоциируется с чем-то другим.

Ответы: >>623116, >>623119

10 Янв, 20:10 #55 #623116

>>623113
>яой

10 Янв, 20:13 #56 #623119

>>623113
Интересно. А какие языки программирование используют военные, имеющие отношение к такому оружию?

Ответы: >>623121, >>623122, >>623123

10 Янв, 20:14 #57 #623121

>>623119
Ада?

Ответы: >>623125

10 Янв, 20:14 #58 #623122

>>623119
Паскаль, отвечаю

Ответы: >>623125

10 Янв, 20:15 #59 #623123

>>623119
хтмл и цсс

Ответы: >>623125

10 Янв, 20:16 #60 #623125

>>623121
Хм. Вполне может быть. Я слышал только о автоматизированных и бортовых системах.

>>623122
Может Фортран тогда уж?

>>623123
Тогда нам конец.

10 Янв, 20:56 #61 #623170

>>622858
udk

10 Янв, 22:02 #62 #623233

Хочу сделать типа виджетик на рабочий стол на qt. Нагуглил что это делается через Qt::WindowStaysOnBottomHint .Создаю новый проект в Qt Creator`e, добавляю одну строчку:
[code]
#include "widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
\tQApplication a(argc, argv);
\tWidget w;
\tw.setWindowFlags(Qt::WindowStaysOnBottomHint); //this
\tw.show();

\treturn a.exec();
}
[/code]
ничего не меняется, окно как окно. Меняю Bottom на Top - окно исправно висит поверх остальных. qt-opensource-windows-x86-mingw492-5.5.1 ЧЯДНТ?

https://doc.qt.io/qt-5/qt.html#WindowType-enum
>Informs the window system that the window should stay on bottom of all other windows. Note that on X11 this hint will work only in window managers that support _NET_WM_STATE_BELOW atom. If a window always on the bottom has a parent, the parent will also be left on the bottom. This window hint is currently not implemented for OS X.
Написано, что не работает в OS X, про windows ничего, намекает на то, что должно работать.

Ответы: >>624664

10 Янв, 22:22 #63 #623250

>>623105
ну не то что я прям учил с++ , на 1 семестре алгоритмы на с++ , на втором пролог и лисп , 3 и 4 семестр ооп на с++ , а на 5 асп.нет на шарпе , учился на граф.дизайнере но понял , на ласт семестре что не мое и хочу быть программистом , учюсь в польще (мимохохол)

11 Янв, 00:11 #64 #623295

Можно ли в класс запихнуть переменную, которая будет считать количество объектов? Как это сделать?

Ответы: >>623296

11 Янв, 00:15 #65 #623296

>>623295
Статическая переменная, инкриментируй при вызове конструктора.

Ответы: >>623300

11 Янв, 00:21 #66 #623300

>>623296
https://ideone.com/NZJucu
Пишет без константы никак.

Ответы: >>623304, >>623305, >>623324

11 Янв, 00:27 #67 #623304

>>623300
Инициализируй не при объявлении.

11 Янв, 00:28 #68 #623305

>>623300
А. Кажется понял. Надо было сделать после объявления класса что-то вроде:
int A::counter = 0;
Так?

11 Янв, 15:21 #69 #623324

>>623300
https://ideone.com/WNADdy

было: ошибка: ISO C++ запрещает инициализацию внутри класса неконстантного статического элемента «A::counter»

Ответы: >>623363

11 Янв, 16:53 #70 #623363

>>623324
почему так нельзя?

Ответы: >>623419, >>623460

11 Янв, 18:27 #71 #623419

>>623363
> почему так нельзя?
Ну, Страусс утверждает что якобы если такое разрешить то плюсы поломаются http://www.stroustrup.com/bs_faq2.html#in-class но, честно говоря, я не понимаю в чем проблема.

Ответы: >>623464

11 Янв, 19:28 #72 #623460

>>623363
Ты создал объект, изменил значение этой переменной. И создаешь другой объект. Какое значение будет у нового объекта?
А в разных модулях могут быть разные static storage и в них разные значения твоей переменной. Как все это отслеживать?

11 Янв, 19:32 #73 #623464

>>623419
Короче, как всегда. Старпёры не хотели забивать на убогие компоновщики или тупо не осилили.
Зато на модули какой хайп подняли, стены дрожат.

Ответы: >>623465, >>623466

11 Янв, 19:34 #74 #623465

>>623464
Хотя вроде же это в новом стандарте есть или будет, не?

Ответы: >>623477

11 Янв, 19:35 #75 #623466

>>623464
Илюшь, съеби обратно в го-вно тред.

11 Янв, 19:55 #76 #623477

>>623465
Нестатические члены можно так инициализировать.

56 Кб, 1440x1080

11 Янв, 21:27 #77 #623539

Вопрос по qt,
QObject::connect(this->obj_timer, SIGNAL(timeout()), this->objcts, SLOT(RefreshOL()));
obj_timer, objcts - объекты структуры, откуда исходит коннект
Ошибка на 40 строк, я уж не знаю, что забыл тут
Помню, была подобная ошибка, решалась парой символов

Ответы: >>623788

11 Янв, 21:54 #78 #623557

>>622858
На c++ библиотеки. Из шарпа тупо к ним обращаешься. Вижу так. Буду пробовать так когда-нибудь.

istringstream, ostringstream, stringbuf - в чём необходимость этого при наличии stringstream? Вроде об одно и том же, на первый взгляд.

11 Янв, 21:57 #79 #623561

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

Ответы: >>623564, >>623598

11 Янв, 22:02 #80 #623564

>>623561
Недостатков нет. Просто сложнее чем указатели. Разве что операции с указателями не выбрасывают исключений.

11 Янв, 22:54 #81 #623598

>>623561
Нельзя изменить ссылку. Значение по ссылке - да, но не саму ссылку.

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

11 Янв, 23:31 #82 #623607

Я правильно понимаю, что целесообразно наследовать класс как private тогда, когда необходимо получить все свойства и методы так, чтобы они были доступны только в пределах класса?

Ответы: >>623638

12 Янв, 00:02 #83 #623616

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

Ответы: >>623636

12 Янв, 00:04 #84 #623618

Интеллектуальные указатели - надо, нет? Когда целесообразно использовать?

Ответы: >>623636

12 Янв, 00:56 #85 #623636

>>623616
Код с исключения течет как твоя мамаша, а чтобы не текло, нужно обмазыватья RAII и только RAII, а также copy-and-swap и прочими методиками.
>>623618
Не надо использовать в одном случае - когда нет владения и ты 1000% уверен, что объект будет жить дольше, чем указатель. В остальных случаях надо.

Ответы: >>623648

12 Янв, 01:00 #86 #623638

>>623607
Да.

Но целесробразно ли вообще приватно наследовать класс - другой вопрос.

Ответы: >>623776

12 Янв, 01:11 #87 #623648

>>623636
Владение - это когда я в одной сущности создаю другую?

Ответы: >>623774

12 Янв, 01:14 #88 #623650

Вот скажите, тако вообще возможно? Чтобы код сам себя редактировал и изменял, вносил правки?

Ответы: >>623772, >>623774

12 Янв, 01:57 #89 #623772

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

Ответы: >>623775, >>623787

12 Янв, 01:58 #90 #623774

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

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

Поэтому тебе нужно придумать владельца (например, Graph), внутри которого будут unique_ptr на каждую из нод (и при уничтожении Graph у тебя уничтожатся ноды), а вот между нодами уже можно делать обыкновенные простые указатели. Или shared_ptr, если ты хочешь делить ноды между графами, тогда между нодами можно будет завести weak_ptr. Далее, придется написать ad-hoc сбощик мусора в классе Graph, который бы подчищал память.
>>623650
Это называется метапрограммирование.

12 Янв, 02:00 #91 #623775

>>623772
В общем — это черная магия?

Ответы: >>623777

12 Янв, 02:00 #92 #623776

>>623638
Про это хорошо написано у Саттера-Александреску в Coding Standards. Приватное наследование это, по сути, аналог композиции, и композицию обычно использовать лучше. Но бывают ситуации, когда это не так, например, если ты пилишь стратегии и хочешь, чтобы пустой базовый класс оптимизировался и не жрал памяти.

12 Янв, 02:01 #93 #623777

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

12 Янв, 02:23 #94 #623780

>>623019
Ты сначала винду с офсайта скачай, вообще по софту вопросы в /s задают.

12 Янв, 02:56 #95 #623787

>>623772
Еще вот что вспомнил. Была такая либа типа http://demonastery.org/2011/04/c-eval-hell-yes/ , возможно, что не именно эта, но суть та же - она не самомодифицировалась, а компилировала новую версию своего кода установленным в системе gcc, после чего делала exec на новый бинарник, чтобы дальше выполнялся он. Такой аналог eval из интерпретируемой параши. Работало довольно медленно, поэтому с большой софтиной пришлось бы долго ждать перекомпиляции, но все равно интересная штука. Возможно, тебе подойдет.

Ответы: >>623789

12 Янв, 02:57 #96 #623788

>>623539
obj_timer и objcts — действительно у наследованы от QObject?
алсо Q_OBJECT макрос нигде не проебал?

Ответы: >>623938

12 Янв, 02:58 #97 #623789

>>623787
Сейчас есть cling и llvm-jit, не нужно каждый раз мир перекомпилировать.

Ответы: >>623806

12 Янв, 02:58 #98 #623790

Правда, с оптимизациями там не очень весело.

12 Янв, 02:58 #99 #623791

Ребят, установил убунту, а потом уже задумался, хоть куда-то берут на работу если под Линуксом кодишь?

Ответы: >>623792, >>623866

12 Янв, 03:02 #100 #623792

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

Ответы: >>623794

12 Янв, 03:04 #101 #623794

>>623792
Ну на яблоки у студента денег точно нет. Понял, спасибо за ответ.

Ответы: >>623795

12 Янв, 03:07 #102 #623795

>>623794
юзай хакинтош

Ответы: >>623797, >>623867

12 Янв, 03:10 #103 #623797

>>623795
На виртуалке, что ли? Хорошая идея.

12 Янв, 03:32 #104 #623806

>>623789
Там скорость страдает, не?

Ответы: >>623827

12 Янв, 05:32 #105 #623827

>>623806
Оптимизации некоторые недоступны, но один хрен быстрее Java.

12 Янв, 08:59 #106 #623866

>>623791
Если компания пишет не виндоус-специфик код, то все на линупсах сидят.

Ответы: >>623874, >>623896

12 Янв, 08:59 #107 #623867

>>623795
Но зачем?

Ответы: >>623893

12 Янв, 09:10 #108 #623874

>>623866
А не пояснишь по поводу вышки. Это обязательное условие? Или просто надо показать на собеседовании себя хорошо?

Ответы: >>624300

12 Янв, 10:13 #109 #623893

>>623867
ПОТОМУ ЧТО МЫ ПЛОТИМ ЭТИМ ПАРАЗИТАМ, ВОТ ПУЩАЙ СТРАДАЮТ!!!111 НАПОКУПАЮТ РАБАМ ЯБЛОК, А ПОТОМ ОНИ РАБОТАТЬ НЕ ХОТЯТ

Ответы: >>623896

12 Янв, 10:16 #110 #623896

>>623893
сюда >>623866

12 Янв, 11:21 #111 #623920

что хорошего в visual studio? Громоздкое говно, да еще и переустанавливать муторно. Чем ecipse хуже например? Посоветуйте ide for C++ кроме вс.

Ответы: >>623922, >>623923, >>623928, >>624305, >>624480, >>624895

12 Янв, 11:34 #112 #623922

>>623920
>Чем ecipse хуже например?
1. кол-во NullPointerException за единицу времени
2. уебаношным интерфейсом

>Посоветуйте ide for C++ кроме вс.
kdevelop

Ответы: >>624116

12 Янв, 11:35 #113 #623923

>>623920
Код блокс

12 Янв, 11:41 #114 #623928

>>623920
На порядок удобнее всего остального, так что прощаются все косяки, да с запасом.

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

12 Янв, 12:19 #115 #623938

>>623788
Проебал, действительно

302 Кб, 1291x1544

192 Кб, 1480x1024

12 Янв, 14:51 #116 #624078

Есть идеи?

Ответы: >>624097, >>624099, >>624101, >>624132, >>624364, >>624373, >>624516, >>626109, >>626400

12 Янв, 15:18 #117 #624097

>>624078
ограничения по памяти есть?

Ответы: >>624098

12 Янв, 15:19 #118 #624098

>>624097
128 мегабайт. По времени только 1 секунда.

Ответы: >>624101

sage 12 Янв, 15:19 #119 #624099

>>624078
За О(M) в среднем делается проверка на интересность (если прикрутить массив из ста ячеек и нехитрую логику, которая будет дропать итерацию, как только число встретилось не первый раз, а предыдущее ему не равно). Всего проверок надо будет 2^100 (максимум можно выбросить сто чисел, всего вариантов будет сумма биномиальных коэффициентов). На 10к должно 2^100*O(M) должно летать, так что вперед.

Ответы: >>624101

12 Янв, 15:24 #120 #624101

>>624099
>На 10к должно 2^100*O(M) должно летать, так что вперед.
петросян.жпег

>>624098
>>624078
кароче, идеи такие:
1. "интересность" — это значит что последовательность состоит из наборов AAAABBCDDEE, т.е. одинаковые числа должны идти подряд вместе
2. чтобы получить интересную последовательность, нужно либо удалить все числа на промежутках между двумя одинаковыми, либо сами одинаковые числа

Ответы: >>624103, >>624109, >>624129, >>624852

12 Янв, 15:25 #121 #624103

>>624101
т.е. имея ABCADEA, нужно либо сносить B,C,D,E либо A

12 Янв, 15:29 #122 #624109

>>624101
>между двумя одинаковыми
1 2 5 4 6 7 8

12 Янв, 15:33 #123 #624116

>>623922
Sublime Text + cmake + scan build + valgrind + gdb + компилятор (выставишь через cmake нужный).

Ответы: >>624308

12 Янв, 15:50 #124 #624129

>>624101
И как выбрать? Нетривиальный алгоритм уже будет. К примеру, CBCBBB. С точки зрения C, надо удалять B, ибо 2 против 1, а с точки зрения B (и на самом деле) надо удалять C, ибо 4 против 2. В сложном случае придется многократно обходить всю последовательность, чтобы понять, что же действительно надо удалять в первую очередь. А разделять и властвовать не получится, пример выше показывает, что локальная оптимальность не дает правильного ответа.

Ответы: >>624136

12 Янв, 15:51 #125 #624132

>>624078
если есть последовательность ABCABDA, то очевидно, что:
1. если в искомой посл. есть A, то в искомой посл. не может быть B,C,D
2. если в искомой посл. есть B, то не может быть A,C
3. если есть C, то не может быть A,B
4. если есть D, то не может быть A

т.е. получается какой-то граф..

Ответы: >>624138, >>624426, >>624597

12 Янв, 15:53 #126 #624136

>>624129
Двумерная динамика наверно.

12 Янв, 15:55 #127 #624138

>>624132
>т.е. получается какой-то граф..
Можешь его нарисовать для твоего примера?

Ответы: >>624151

12 Кб, 229x251

12 Янв, 16:10 #128 #624151

>>624138

Ответы: >>624156, >>624597

12 Янв, 16:13 #129 #624156

>>624151
Это и я сделал, но как веса рёбер поставить разница количества повторов? и что искать?

Ответы: >>624164

7 Кб, 275x155

12 Янв, 16:19 #130 #624164

>>624156
альтернативно можно вот так

Ответы: >>624191

12 Янв, 16:45 #131 #624191

>>624164
проще не стало

12 Янв, 19:00 #132 #624300

>>623874
Что? Какая вышка?

12 Янв, 19:02 #133 #624305

>>623920
Пожалуй, самая мощная среда разработки, в которой есть все. Ещё и бесплатная. А новый режим дебага с анализом памяти вообще красота.

Но для лабы2 ничего этого не нужно.
Да и не только лабы2.
st3+clang+gdb достаточно

12 Янв, 19:03 #134 #624308

>>624116
Два успешных билда этому.

12 Янв, 20:26 #135 #624364

>>624078
Если упростить формулировку, то это задача на поиск длиннейшей не убывающей подпоследовательности

За O(n^2) можно сходу решить, n - длина начальной последовательности

Ответы: >>624392

12 Янв, 20:38 #136 #624373

>>624078
>к концу года задачи становятся труднее и интереснее
>увлекательнейшую задачу
>интересная последовательность
Даун-аутист пытается вызвать ИНТЕРЕС к своему говну, но не может, и поэтому от бессильности заставить людей есть говно увлекает их ИНТЕРЕСНЫМИ эпитетами. Прямо как Лавкрафт, который пугает СТРАШНЫМИ словами.

Ответы: >>624599

12 Янв, 21:00 #137 #624392

>>624364
нихуя. там нужно числа в начале выкидывать тоже

12 Янв, 21:46 #138 #624426

>>624132
Так что с алгоритмом? Он пока самым правдоподобным выглядит.

23 Кб, 810x542

12 Янв, 22:15 #139 #624444

Обязательно ли регаться? Там телефон требуют

Ответы: >>624450, >>624455, >>624456, >>624462

12 Янв, 22:24 #140 #624450

>>624444
Не знаю точно, но абсолютно уверен что нет

12 Янв, 22:25 #141 #624452

Что же делать. Как их наебать

12 Янв, 22:35 #142 #624454

ЕБУЧИЕ МАЙКРОСОФТОБЛЯДИ, НАЕБЫВАЮТ УЖЕ С САМОГО НАЧАЛА. НУЖНО БЫЛО СКАЧИВАТЬ ИСО А НЕ ВЕБ УСТАНОВЩИК. А ВЕБ УСТАНОВЩИХ ЛЕЖИТ ГДЕ-ТО В ЕБУЧИХ ЗАГРУЗКАХ, НЕТ БЛЯТЬ ПИДОРЫ СРАЗУ ПРЕДОСТАВИТЬ ВЫБОР ЧТО СКАЧИВАТЬ, ТАК ЭТИ УЕБКИ МНЕ-НАЧИНАЮЩЕМУ ЗНАКОМИТЬСЯ С ИХ ПРОДУКТОМ ПОДСОВЫВАЮТ ЕБУЧИЙ ТРИАЛ, ПИДОРЫ, ГОРИТЕ В АДУ

Ответы: >>624457, >>624466

12 Янв, 22:35 #143 #624455

>>624444
>Там телефон требуют
Твоей мамки?

12 Янв, 22:38 #144 #624456

>>624444
Хуйня какая-то, если честно. Community edition должна быть бесплатна, пиздос какой-то, может там просто надо учётную запись создать или еще какую-то поеботу, но она 100% должна быть бесплатна, а имеет почти всё ,что нужно.

Ответы: >>624464

12 Янв, 22:38 #145 #624457

>>624454
>А ВЕБ УСТАНОВЩИХ ЛЕЖИТ
исо

12 Янв, 22:41 #146 #624459

Скачиваю исошник 5 гигов, удаляю старую вс, будет пиздец как круто, если исошник потребует у меня регистрации. Ебучий вижуал, еще не начал, но уже думаю съебывать.

Ответы: >>624466, >>624481

12 Янв, 22:46 #147 #624462

>>624444
Дык запиши его, никто тебя не сдеанонит и на ебло ссать не станет. Денег не снимают, просто зарегаться просят.

Ответы: >>624463

12 Янв, 22:47 #148 #624463

>>624462
Я аноним

Ответы: >>624468

12 Янв, 22:47 #149 #624464

>>624456
Бесплатна. Учетную запись надо.

12 Янв, 22:47 #150 #624466

>>624454
Я те щас секрет открою: ты - даун.
>>624459
В чём блядь проблема зарегестрироваться-то?

Ответы: >>624467

12 Янв, 22:47 #151 #624467

>>624466
Телефон - деанон

Ответы: >>624469

12 Янв, 22:48 #152 #624468

>>624463
Значит зарегай на свою мамку/папку/бабку/кота.
Палю годноту для совсем ананасиков: https://www.google.ru/search?client=ubuntu&channel=fs&q=online+phone+number+for+verification&ie=utf-8&oe=utf-8&gfe_rd=cr&ei=OGGVVoicGIrIYMPZpMAM

12 Янв, 22:49 #153 #624469

>>624467
Перед кем? Пиндосами, у которых таких миллиона? В заговор массонов-рептилоидов веришь?

10 Кб, 446x644

12 Янв, 23:03 #154 #624475

Нажал удаление. Что он делает?

12 Янв, 23:05 #155 #624480

>>623920
>переустанавливать муторно
Зачем переустанавливать?

Ответы: >>624481

12 Янв, 23:06 #156 #624481

>>624480
>>624459

12 Янв, 23:44 #157 #624516

>>624078
бамп

12 Янв, 23:46 #158 #624518

Бля, это что, Bridge и есть пимпл? Охуеть.

Ответы: >>624532

13 Янв, 00:15 #159 #624532

>>624518
Wut?

13 Янв, 06:17 #160 #624597

>>624151
>>624132
Охуенная идея, кстати. Два чая придумавшему анону.

Ответы: >>624810

13 Янв, 06:19 #161 #624599

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

67 Кб, 429x604

13 Янв, 07:51 #162 #624620

Итак, джентельмены, настало время:
а)
int main()
{

}

или

б)
int main() {

}

Ответы: >>624622, >>624626, >>624627, >>624636, >>624652

13 Янв, 08:08 #163 #624622

>>624620
"а" разумеется, "б" говно вырвиглазное.

13 Янв, 08:25 #164 #624626

>>624620
Чтобы никому обидно не было.
[code lang="cpp"]
int main () {
{
\treturn 0;
}
}
[/code]

Ответы: >>624629

13 Янв, 08:25 #165 #624627

>>624620
Не принципиально. Вот у if/while/for нужно использовать только { на той же строчке (а) используют только ньюфаги, пришедшие с паскаля, да Штульман), а для функций - не принципиально, но лучше унифицировать с if/while/for, почему нет. Ведро, книги K&R и Страуструпа, хромиумы и прочее говно используют б) (точнее, Страуструп использует а) для функций, но он вообще обожает влепить где-нибудь ебнутый частный случай). Короче, только 1TBS.

85 Кб, 717x325

13 Янв, 08:26 #166 #624629

>>624626

13 Янв, 09:03 #167 #624636

>>624620
Только (б). Экономим вертикальное пространство ибо функции должны умещается в 20 строк, каждая строчка на вес золота :3

Ответы: >>624645

13 Янв, 09:18 #168 #624645

>>624636
Байтоеб чтоле или пиздонист?
Господа пишут с размахом, не экономя место, с пустыми строками для визуального разделения. Код получается легковесный, легко читаемый. И компактный, если ты не долбокряк.

Ответы: >>624646, >>624647, >>624929

13 Янв, 09:20 #169 #624646

>>624645
Пустые строки для абзацев - это другое. В том-то и дело, что от этих висящих скобок толку нет, абзацевость только теряется.

13 Янв, 09:21 #170 #624647

>>624645
Типичный совок.

Ответы: >>624819

13 Янв, 09:38 #171 #624652

>>624620
int main() { }
Так пишу. Мои функции всегда помещаются в одну строку на монитоде 21/10. Пустые строки для пидорасов и нюфагов.

211 Кб, 521x403

13 Янв, 10:02 #172 #624664

>>623233
Пожалуй бампану.

13 Янв, 13:05 #173 #624756

таки поставил ебучий вижуал студио профессионал. Спиратил с рутракера, зато не надо ебаться с регистрациями, истечением 30 дневного польования. Бляди из мелкософта сами подтталкивают к КРАЙНОСТЯМ

Ответы: >>624757, >>624820

13 Янв, 13:08 #174 #624757

>>624756
Он все равно стучит куда надо. Если у тебя десятка, то жди пативена

Ответы: >>624758

13 Янв, 13:09 #175 #624758

>>624757
8

Ответы: >>624766

13 Янв, 13:16 #176 #624766

>>624758
Сама обновится до 10-ки скоро :)

13 Янв, 13:17 #177 #624767

Если ты студент, MS тебе бесплатно может все это дать.

Ответы: >>624770

13 Янв, 13:19 #178 #624770

>>624767
Там регаться надо и телефон давать

Ответы: >>624782

13 Янв, 13:29 #179 #624782

>>624770
Не надо никакого телефона, блджад, необучаемая сука. Dreamspark-логин выдают по почте в домене .edu или аккаунту втентакле, Dreamspark Premium можно получить у админа в своем вузе. И все, блядь, сразу получаешь ключи, никакого телефона не нужно.

Ответы: >>624783

13 Янв, 13:30 #180 #624783

>>624782
Пошел нахуй, студентоблядь

Ответы: >>624784

13 Янв, 13:32 #181 #624784

>>624783
Иди заплати Балмеру еще 5к зелени за топовую версию студии, пока я получаю все бесплатно, маня.

Ответы: >>624791

13 Янв, 13:47 #182 #624791

>>624784
Пфф, я вообще в кьют криейторе пишу.

Ответы: >>624831

13 Янв, 14:24 #183 #624810

>>624597
но что дальше? я просто н понимаю какой путь искать и какие веса рёбрам/вершинам ставить.

Ответы: >>624816

13 Янв, 14:38 #184 #624816

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

Ответы: >>624822

13 Янв, 14:39 #185 #624817

Заменяем каждый элемент на тройку [элемент; индекс первой встречи; индекс последней встречи; количество].

Получается набор отрезков. Если 2 отрезка пересекаются, значит такой комбинации быть не может.

Гуглим задачу non intersecting objects maximum, это https://en.wikipedia.org/wiki/Maximum_disjoint_set#1-dimensional_intervals:_exact_polynomial_algorithm . Все?

Ответы: >>624821

13 Янв, 14:40 #186 #624819

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

13 Янв, 14:41 #187 #624820

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

13 Янв, 14:41 #188 #624821

>>624817
Точнее, нужен weighted max disjoint set, потому что у нас есть веса - количества элементов.

13 Янв, 14:42 #189 #624822

>>624816
> суммарно наименьшего веса вершин
Не понял что это. Он будет минимальный если вообще не брать вершин.

Ответы: >>624834

13 Янв, 14:47 #190 #624824

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

Ответы: >>624835

13 Янв, 15:03 #191 #624831

>>624791
там не чистый C++

Ответы: >>624832

13 Янв, 15:06 #192 #624832

>>624831
Можно напердолить под чистый c++

13 Янв, 15:16 #193 #624834

>>624822
Ты удоляешь вершины так, чтобы граф стал без ребер (компонент связности столько же, сколько вершин), но при этом из всех вариантов выбираешь тот, где сумма весов удаляемых вершин наименьшая.

Ответы: >>624836

13 Янв, 15:18 #194 #624835

>>624824
А оригинал?

13 Янв, 15:23 #195 #624836

>>624834
>Ты удоляешь вершины так, чтобы граф стал без ребер
Это алгоритм какой-то известный или перебором? Там 2^n вариантов удаления.

Ответы: >>624842

13 Янв, 15:34 #196 #624842

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

Ответы: >>624849

13 Янв, 15:45 #197 #624849

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

Ответы: >>624850, >>624853

13 Янв, 15:47 #198 #624850

>>624849
Вот это похоже на O(n). Спасибо.

Ответы: >>624858

13 Янв, 15:54 #199 #624852

>>624101
>т.е. одинаковые числа должны идти подряд вместе
Ты вторую картинку глянь, там интересной названа последовательность (1,2,5)

Ответы: >>624856

49 Кб, 1172x751

13 Янв, 15:54 #200 #624853

>>624849
Пикчу забыл.

Ответы: >>624861, >>624862

13 Янв, 15:55 #201 #624856

>>624852
Ну так все правильно, они же не повторяются.

13 Янв, 15:55 #202 #624858

>>624850
np-hard превратить в o(n)? Оригинально.

Ответы: >>624860, >>624861

13 Янв, 15:56 #203 #624860

>>624858
Пруфы, что np-hard.

13 Янв, 15:57 #204 #624861

>>624858
>np-hard
Что? Там предобработка как на этой пикче >>624853 и в 1 проход максимум найти.

Ответы: >>624868

13 Янв, 16:00 #205 #624862

>>624853
Стой, а на второй что удалять? У них количество ребёр разное, а веса одинаковые.

Ответы: >>624865, >>624866

13 Янв, 16:05 #206 #624865

>>624862
Блять туплю. По ним пройтись надо и ребра оставшееся посчитать. Можешь не отвечать.

Ответы: >>624880

13 Янв, 16:05 #207 #624866

>>624862
Да, не совсем допилено получается. Но я думаю, что на основе этой идеи должно получиться. Может, похимичить с вычитанием, чтобы явно выделялась центральная вершина.

13 Янв, 16:07 #208 #624867

Здарова, почаны. Помогите разобраться:

Пытаюсь релизнуть неконсольную программу и получаю ошибку

LNK2001: unresolved external symbol _wWinMain@16

Если делаю этот же код как консольный проект тоже появляется LNK2001 но с __imp__ShowWindow@8 на конце

С консольным проектом проблемма решилась подключением в linker>input>additionalDependencies стопки разных .lib, по советам из интернетов

По какому принципу их нужно добавлять?

13 Янв, 16:10 #209 #624868

>>624861
Жадным алгоритмом? С чего ты взял, что он даст наилучший результат?

Ответы: >>624869

13 Янв, 16:12 #210 #624869

>>624868
Придумай контрпример.

15 Кб, 926x614

13 Янв, 16:37 #211 #624880

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

Ответы: >>624881

13 Янв, 16:42 #212 #624881

>>624880
Там же 2 центральных и они соединены ребром. Для удаления этого ребра по любому придётся. Одну из них удалить. А потом и 2 крайних.

Ответы: >>624883

13 Янв, 16:45 #213 #624883

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

Ответы: >>624884

13 Янв, 16:47 #214 #624884

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

13 Янв, 16:52 #215 #624890

Встретил такое нечто:
Foo(Foo const &) = delete;

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

Как вообще называется эта фича, чтобы ее можно было нагуглить?

Ответы: >>624892

13 Янв, 16:55 #216 #624892

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

13 Янв, 16:59 #217 #624895

>>623920
Очевидный CLion.

Ответы: >>624905

8 Кб, 654x598

13 Янв, 17:02 #218 #624898

Суп, аноны, у меня СТУДЕНТОПРОБЛЕМЫ. Поясните, пожалуйста, как реализовать вывод полей объекта производного класса, который образован в следствии наследования, как на пикрилейтед. Про ромбовидное наследование я читал, но это не мой случай, т.к. поля объектов будут разные, несмотря на общий класс. (Простите за кривой почерк, надеюсь более-менее понятно обьяснил суть проблемы.)

Ответы: >>624900, >>624907, >>624908

13 Янв, 17:03 #219 #624900

>>624898
>поля объектов базового класса

13 Янв, 17:51 #220 #624905

>>624895
Очевидно, платный

13 Янв, 17:56 #221 #624907

>>624898
Проблема в чем?

Ответы: >>624910

13 Янв, 18:01 #222 #624908

>>624898
Блять, ну и хуйню же я написал. Суть в том, что Б1 и Б2 - это один и тот же базовый класс, но в производном классе Н2 они оба используются и имеют разные значения полей.

Ответы: >>624910, >>624912, >>624913

13 Янв, 18:01 #223 #624910

>>624907
>>624908

13 Янв, 18:05 #224 #624912

>>624908
Че за хуйня, давай на реальном примере

Ответы: >>624914

13 Янв, 18:09 #225 #624913

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

Ответы: >>624914

13 Янв, 18:15 #226 #624914

>>624912
Есть базовый класс ДАТА, у которого есть поля д/м/г. Есть производный от ДАТЫ класс ФАЙЛ, в котором ДАТА - это дата создания файла. И есть производный и от ФАЙЛА и от ДАТЫ класс, в котором ДАТА из ФАЙЛА - это дата создания, а другая ДАТА - это дата редактирования.

>>624913
Виртуальное мне не подходит, т.к. две ДАТЫ не обязательно одинаковы.

Ответы: >>624916, >>624924

13 Янв, 18:16 #227 #624916

>>624914
При вызове метода вывода ДАТЫ будет неоднозначность, нужно как-то от нее избавиться.

Ответы: >>624918, >>624921

13 Янв, 18:21 #228 #624918

>>624916
Ну вон же на википедии есть пример.
https://en.wikipedia.org/wiki/Virtual_inheritance

Хоть и делаешь ты какую-то дичь

Ответы: >>624925

13 Янв, 18:26 #229 #624921

>>624916
Пиши Н1::поле. Но напрямую наследоваться от Б1 все равно будет нельзя, ибо ты не сможешь никак отличить поля, унаследованные из Н1 и напрямую из Б1.

13 Янв, 18:27 #230 #624924

>>624914
Ты определенно делаешь что-то не то.

13 Янв, 18:28 #231 #624925

>>624918
Если так сделать, то обе даты будут одинаковы, разве нет?

Ответы: >>624927, >>624930

13 Янв, 18:31 #232 #624927

>>624925
Жопой читаешь.
In order to call eat(), the same disambiguation, or explicit qualification is needed: static_cast<Mammal&>(bat).eat() or static_cast<WingedAnimal&>(bat).eat() or alternatively bat.Mammal::eat() and bat.WingedAnimal::eat(). Explicit qualification

13 Янв, 18:32 #233 #624929

>>624645
В том и дело, что пустые строки и так много места занимают, а сами блоки (if, for, while, итд) пускай будут поэкономнее.

Ответы: >>624931, >>624938

13 Янв, 18:33 #234 #624930

>>624925
Используй композицию вместо наследования, Люк. Заведи в производном классе джва члена базового класса и все. Сейчас ты вскукарекнешь, что тогда нельзя будет делать касты указателей, но я отвечу, что в твоем случае допустимо только приватное наследование, которое и так не допускает касты. Публичное наследование должно удовлетворять отношению "объект производного класса является объектом базового класса", а у тебя такого не будет, будет какая-то двойная нех.

Ответы: >>624934

13 Янв, 18:33 #235 #624931

>>624929
Какое место они занимают, поехавший? Код меряется не строками, а байтами

Ответы: >>624940

13 Янв, 18:36 #236 #624934

>>624930
Спасибо, анончик, вот это, я думаю, мне как раз подойдет.

13 Янв, 18:39 #237 #624938

>>624929
Пространство по вертикали, недоехавший.

Ответы: >>624940, >>624941

13 Янв, 18:40 #238 #624940

>>624931
>>624938

13 Янв, 18:41 #239 #624941

>>624938
Ебать, ты чего с квадрата 1024x768 конпелируешь что ли?

Ответы: >>624946, >>624960

13 Янв, 18:44 #240 #624946

>>624941
У меня открыто 4 окна на мониторе 1920x1200, получается на окно даже поменьше.

Ответы: >>624978

13 Янв, 19:24 #241 #624960

>>624941
Открываю иногда и по 3 колонки окон, в два окна по вертикали. Но монитор всего 24 дюйма. Один.

Ответы: >>624964

13 Янв, 19:32 #242 #624964

>>624960
У меня 17.

90 Кб, 668x319

13 Янв, 20:03 #243 #624978

>>624946
Сделай вот так, хуле.

Ответы: >>624981, >>625068

13 Янв, 20:16 #244 #624981

>>624978
И верти шеей как мудак.

Ответы: >>624984, >>624995

13 Янв, 20:21 #245 #624984

>>624981
Полезно, затекать не будет

13 Янв, 20:34 #246 #624995

>>624981
В этом плане у него лучше, нежели 3 монитора в ландшафтной ориентации

sage 13 Янв, 22:24 #247 #625068

>>624978
>(90Кб, 668x319)

61 Кб, 1366x768

13 Янв, 23:02 #248 #625110

Ребята помогите. Что нужно докачивать. Хочу писать на C++, консольное приложение например. Откуда и как докачать Win32?

Ответы: >>625139

13 Янв, 23:38 #249 #625130

Спасибо ребята.

13 Янв, 23:46 #250 #625139

>>625110
Нажми ok, он тебе и скачает. А что из этих двух тебе нужно - сам решай. Для себя пойдёт первый, для ковыряния легаси - второй.

Ответы: >>625141

13 Янв, 23:51 #251 #625141

>>625139
Да спасибо, разобрался

14 Янв, 00:09 #252 #625156

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

39 Кб, 1366x768

14 Янв, 00:22 #253 #625167

Что делать ребята?

Ответы: >>626425

14 Янв, 14:28 #254 #625423

Начал изучать С++, хотел с НГ, но как-то затормозил. Какие подводные камни?
Уже написал свою 1 крутую программу - перевод строки чаров в фски номера.

14 Янв, 14:30 #255 #625425

>>622611 (OP)
Сяп. codeblock+sfml. При попытке компиляции проекта пишет default is untitled. Отдельный файл (он же пока единственный) компилирует, но не запускает, ссылаясь на отсутствие на компе sfml-graphics-2.dll, хотя она есть. Что делать?

СФМЛ подключена как в гайде написано.

Ответы: >>625447

14 Янв, 15:22 #256 #625447

>>625425
> sfml-graphics-2.dll, хотя она есть
Где она есть? Попробуй в папку с программой кинуть.

Ответы: >>625469

14 Янв, 16:04 #257 #625469

>>625447
Пробовал. Все равно. К тому же, я думаю, тут в другом дело. Проект не компилируется, а файл компилируется. Мне кажется, что проект не компилируется по той же причине, по которой потом программа на запускается, но я хз, почему. Когда сфмл не было, он об этом говорил в виде ошибок компилятора, не распознававшего функции сфмл, сейчас с этим вроде все норм, но все равно проблема именно с либами этой библиотеки

14 Янв, 17:51 #258 #625528

Есть у кого философеры на C++11?

Ответы: >>625573

14 Янв, 17:54 #259 #625530

Сап аноны. Вопрос от нюфани.
Вопрос касательно использования указателей. Навскидку могу придумать два случая, когда они нужны:
Когда нужно передать "большие данные" (массив) между функциями, тут понятно, выгодней передать указатель.
Или когда заранее неизвестен объем данных, который потребуется, можно динамически выделять память оператором new.
В каких еще случаях лучше использовать указатели, а не обычные переменные?

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

Ответы: >>625583

14 Янв, 17:59 #260 #625532

>Когда нужно передать "большие данные" (массив) между функциями, тут понятно, выгодней передать указатель.
константную ссылку используй
>Или когда заранее неизвестен объем данных, который потребуется, можно динамически выделять память оператором new.
vector используй
>В каких еще случаях лучше использовать указатели, а не обычные переменные?
графы, деревья, когда размер типа заранее неизвестен из-за наследования, pimpl

14 Янв, 19:07 #261 #625573

>>625528
Обедающие?

Ответы: >>625581

14 Янв, 19:16 #262 #625581

>>625573
Хоть кукарекающие

Ответы: >>625597

14 Янв, 19:16 #263 #625583

>>625530
>Когда нужно передать "большие данные" (массив) между функциями, тут понятно, выгодней передать указатель.
Открою секрет - в C++ нельзя передать массив по значению. http://cpphints.com/hints/38
>В каких еще случаях лучше использовать указатели, а не обычные переменные?
Всегда, когда тебе нужно использовать какие-то данные вне этой функции/класса, или у тебя большой объём данных (зависит от настроек конпелятора, но максимальный размер всех "обычных" переменных где-то 4 мб).

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

Ответы: >>625691, >>625944, >>625947

14 Янв, 19:33 #264 #625597

>>625581
>кукарекающие философы
Попробуй /ph/.

14 Янв, 21:24 #265 #625691

>>625583
А когда мы делаем мув, то мы выходит из стека помещаем в кучу, так?

Ответы: >>625740, >>625742

14 Янв, 22:09 #266 #625740

>>625691
Нет, это не связано.

14 Янв, 22:09 #267 #625742

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

Ответы: >>625753, >>625806

14 Янв, 22:20 #268 #625753

>>625742
Хотя хз насчёт именно переноса, я не проверял, но у меня такое ощущение что именно при таком раскладе вместо переноса будет просто вызван копирующий конструктор.

Ответы: >>625793

14 Янв, 23:10 #269 #625793

>>625753
Мув меняет принадлежность. Если у тебя нетривиальный конструктор, ты должен сам определить конструктор переноса и конструктор копирования тоже, разумеется. Читай учебники.

>вместо переноса будет просто вызван копирующий конструктор
Это легко проверяется.

Ответы: >>625822

14 Янв, 23:19 #270 #625806

>>625742
http://ideone.com/U5Zrrp
В таком случае все в стеке?

Ответы: >>625822

14 Янв, 23:50 #271 #625822

>>625806
Да. В твоём примере move и не нужен - йоба скопируется, я говорил про возврат указателя на стэк.
>>625793
Хорошо, капитан, почитаю. Проверил. Не нашёл ни одного корректного способа вернуть указатель на стак, мув просто копирует как и без него. Чо делать?

Ответы: >>625881, >>625886

14 Янв, 23:59 #272 #625826

Помогите с лабой на C++.
Задание: Дан массив типа BYTE размером не менее 256 Кбайт. Переписать его во внешнюю память поблочно. Операцию повторить 10 раз. Характеристика: размер блока (диапазон изменения 512-1024 байта).

Моя попытка решить: http://pastebin.com/EfGYjgfa

Проблема в том, что буфер нужно инициализировать не из файла, а из массива в оперативной памяти.(см. 70 строчку в пасте)

15 Янв, 01:38 #273 #625881

>>625822
Нихуя она не скопируется, ебанутый.

15 Янв, 01:46 #274 #625886

>>625822
Дебил, прежде чем в следующий раз кукарекать и нормальных людей вводить в заблуждение - проверь и подумай.
Генерируется implicit move ctor, Yoba(Yoba&&),
Это ты можешь проверить, добавив вывод "Yoba ctor called" в конструкторе, и убедиться что вызывается конструктор перемещения.
Ты об этом бы знал, если бы был в курсе про правила генерации специальных методов класса.

Ответы: >>625887

15 Янв, 01:46 #275 #625887

>>625886
>добавив вывод "Yoba ctor called" в конструкторе
добавив вывод "Yoba move ctor called" в конструкторе перемещения

15 Янв, 08:18 #276 #625944

>>625583
Спасибо за ответ, инфу по ссылке ща почитаю.

15 Янв, 08:46 #277 #625947

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

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

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

Ответы: >>625949, >>625956, >>626023

15 Янв, 08:49 #278 #625949

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

15 Янв, 09:08 #279 #625956

>>625947
http://goo.gl/LsqNZT

Вот тебе грамотная статья по твоему вопросу

Ответы: >>625978

15 Янв, 09:18 #280 #625957

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

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

Ответы: >>625978, >>625980

15 Янв, 09:33 #281 #625958

15 Янв, 09:52 #282 #625961

Привет.
Пишу под MSP430, столкнулся с непонятной вещью:
unsigned long flash_addr =
(unsigned int) page_num FLASH_SEG_SIZE;
memcpy(ram_temp, (void )flash_addr, FLASH_SEG_SIZE);
/ смотрю отладчиком, а здесь, после memcpy переменная flash_addr ВНЕЗАПНО ОБНУЛЯЕТСЯ /
Почему такое может происходить?

Ответы: >>625962, >>625964

15 Янв, 09:53 #283 #625962

>>625961
Мерзкая макаба!
Вот отформатированный код: https://gist.github.com/anonymous/6462edfcb45625e75772

Ответы: >>625968

15 Янв, 09:56 #284 #625964

>>625961
Это вопрос к реализации memcpy в твоей хуитке.

15 Янв, 09:59 #285 #625968

>>625962
Ну во первых, memcpy берёт размер в бпйтах, а не двойных словах.
Во вторых, пошёл вон со своей железякой в другой тред

15 Янв, 10:18 #286 #625978

>>625956
>>625957

Спасибо.

15 Янв, 10:21 #287 #625980

>>625957
У scoped и unique_ptr нет оверхеда

15 Янв, 11:53 #288 #626023

>>625947
> Как адекватно выделять и освобождать память?
Особождать - ТОЛЬКО в деструкторе. Иначе у тебя будет текущий на исключениях код. Выделять, соответственно, только в парном деструктору конструкторе. Вот и вся наука.
>Я вроде и понимаю, что в некоторых функциях мне лучше передать указатели, а не копировать данные, но очкую, что в итоге поимею утечки памяти и трудноуловимые баги поведения программы.
Используй ссылки, написал же. Лучше константные, можно и неконстантные.

Ответы: >>626539

15 Янв, 13:08 #289 #626065

Пацаны, так вопрос.
Есть шаблонныц класс с шаблонной функцией, например такой - www.ideone.com/w3BZXF . Когда все это в одном файле, работает, но стоит мне переместить определение шаблонной функции и ее специализации в .cpp файл, то появляются ошибки линкера.
А оставлять потенциально тяжелую реализацию в хидере, да еще и заинлайненную - это не лучшая практика, наверное.

Ответы: >>626149

15 Янв, 13:58 #290 #626109

>>624078
Попытка №1
https://ideone.com/NHkiT8

Ответы: >>626150, >>626152

15 Янв, 14:50 #291 #626149

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

Ответы: >>626295

15 Янв, 14:52 #292 #626150

>>626109
Не работает на
7
1 1 2 1 2 2 2

15 Янв, 14:54 #293 #626152

>>626109
Вместо sortfunc лучше бы сделал лямбду, раз у тебя auto и 11 стандарт.

Ты юзал тот алгоритм с взвешенными графами? Да, мне лень вчитываться до вечера, блджад. Тесты проходят?

Ответы: >>626155, >>626160

15 Янв, 14:58 #294 #626155

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

15 Янв, 15:06 #295 #626160

>>626152
>Тесты проходят?
Нет только 3. Потом ответ завышен. Здесь тесты если хочешь проверить http://rghost.ru/6LVyKdZkX
Скомпилировать файл и положить в эту папку. Потом запустить test.bat с параметром имени файла без расширения. Результат в res файле будет.
И не лень было это всё писать?

15 Янв, 18:51 #296 #626295

>>626149
Можно перечислить специализации и тогда унести код в цпп

Ответы: >>626300

15 Янв, 18:54 #297 #626300

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

Ответы: >>626304, >>626322

15 Янв, 19:01 #298 #626304

>>626300
Макросы плохи не этим.

15 Янв, 19:38 #299 #626322

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

Ответы: >>626338

15 Янв, 19:53 #300 #626338

>>626322
Только если у тебя лаба2 и шаблон какой-нибудь хуйни с джвумя инстансами на int и double. В реальности шаблоны используются гораздо многограннее, начиная от non-type parameters ты для всех натуральных чисел вызывать инстансы будешь, да?, и заканчивая library-like ебалой навроде самодельных концептов и метафункций.

Ответы: >>626343

15 Янв, 20:07 #301 #626343

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

Ответы: >>626345

15 Янв, 20:11 #302 #626345

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

Ответы: >>626351

15 Янв, 20:23 #303 #626351

>>626345
Так скомпилируешь один раз в .o и больше не надоть.

Ответы: >>626550

15 Янв, 23:00 #304 #626400

>>624078
Каждое уникальное число в входной последовательности можно представить в виде отрезка у которого начальная координата равна индексу первого появления этого числа, конечная координата - индексу последнего появления (могут совпадать) и есть еще характеристика "вес" которая равна количеству появлений этого числа в последовательности. Тогда задача сводится к нахождению набора непересекающихся отрезков с максимальным суммарным весом - этот сумарный вес и есть ответ. Мне почему-то кажется что это NP-полная задача, тоесть нужно применять какой-то метод оптимизации. Я попробывал простой перебор через рекурсию http://ideone.com/dnXRkk но он отрабатывает только на небольших (по количесву уникальных чисел) задачах (первые 16 из твоих тестов). На больших задачах (важно количество уникальных чисел, а не длина последовательности - по длине там линейная сложность) моя писанина ожидаемо обсирается, причем серьезно - для 100 уникальных чисел похоже в лучшем случае нужны года, а скорее всего тысячелетия. Тоесть просто заменить рекурсию на итерации или "распаралелить" не поможет. Нужен какой-то метод оптимизации, но мне ничего простого не приходит в голову. Я пробывал ветвей и границ применить (так как он легко на полный перебор накатывается) но нихуя не придумал, был один вариант но он не помог, только еще один из первых тестов зафейлил из-за какого-то бага. Идеальный вариант конечно если окажется что тут не NP-полнота. Если задачка с олимпиадки то наверное так и есть - врядли там дают задачи на оптимизацию, хотя я хуй знает. Тоесть возможно есть нормальный способ решения.

Ответы: >>626404

15 Янв, 23:10 #305 #626404

>>626400
Ты весь день этим занимался? Здесь авторские решение есть если поймёшь. Но вариант с графом который выше я на выходных сделаю и отчитаюсь если смогу написать.

http://pastebin.com/HF5g1RkC
http://pastebin.com/Fx2MigGq

Ответы: >>626429

16 Янв, 00:25 #306 #626425

>>625167
Ну бамп, неужели икто не сталкивался? Что делать? Я даже собрать ничего не могу

Ответы: >>626427

16 Янв, 00:26 #307 #626427

>>626425
Перестановить? Установить генту? Сходить в софтач?

Ответы: >>626428, >>626450

16 Янв, 00:27 #308 #626428

>>626427
Переустановил уже пять раз. Есть бубунту

16 Янв, 00:28 #309 #626429

>>626404
> Ты весь день этим занимался?
Ты меня наверное перепутал с кем-то. Посмотрел твои решения, первый динамика, никогда не мог сам полностью придумать. Понимаю без проблем, даже с полунамека могу сообразить как решать а полностью сам никак. Другие подходы вроде норм, а в динамическом совсем ноль. Получается такое, если мой вариант подправить https://ideone.com/qbcLKs

Ответы: >>626447, >>626795

16 Янв, 00:52 #310 #626447

>>626429
Спасибо. Работает. Опишешь алгоритм? Знаю что смотреть программу, но после сортировки не совсем понятно что происходит.

Ответы: >>626502, >>626551

16 Янв, 00:58 #311 #626450

>>626427
Могут-ли всякие вимы в линуксах заменить визуальную студию?

Ответы: >>626454, >>626501

16 Янв, 01:01 #312 #626451

Висуал студио говно без задач. Виснет и выдает ошибки. Что я могу еще сказать

16 Янв, 01:03 #313 #626453

Ебал я его в рот. Перехожу на эклипсе

16 Янв, 01:05 #314 #626454

>>626450
Не пользовался студией ни разу. Слышал у неё дэбагер ахуенный с свистелками и перделками.

16 Янв, 02:50 #315 #626501

>>626450
А что тебе нужно для разработки? Подсветка? Автокомплит? Навигация по именам? Отладка?

16 Янв, 02:50 #316 #626502

>>626447
У тебя есть массив отрезков (начало, конец и вес) который сортируется по координате начала отрезка (у моего варианта там небольшой недостаток что отрезков всегда 100, я не хотел усложнять код, на ответ это не влияет но там получается что может быть дохуя нулевых отзрезков на бессмысленную обработку которых пробывается время). Дальше создается массив размером равном количеству отрезков, в i ячейке которого записывается оптимальный ответ при использовании первых i отрезков (из отсортированого массива). Тоесть в первой ячейке массива хранится оптимальный ответ при использовании только первого отрезка (это вес этого отрезка), во второй ячейке при использовании первых двух отрезков и так до конца. А потом ты постепенно добавляешь новые отрезки (тоесть увеличиваешь индекс i и заполняешь массив). Изначально в текущую ячейку этого массива записывается вес текущего отрезка - так как ты всегда можешь все выкинуть и взять текущий за основу. Потом ты проверяешь все которые ты заполнил до этого - если какой-то из рассмотренных ранее отрезков можно использовать вместе с текущим (ранний отрезок заканчивается до того как начнеться текущий), то ты используешь их вместе - суммируешь и записываешь в текущую ячейку, но просто так записать нельзя так как там может находиться большее значение от рассмотрения предыдущих отрезков - выбираешь максимум и его записываешь. И потом как заполнишь весь массив то максимальное число в нем и будет ответ.

Ответы: >>626649

16 Янв, 06:10 #317 #626532

как быть, если два из предыдущих конфликтуют друг с другом, но не с текущим?

16 Янв, 06:55 #318 #626539

>>626023
Понял, спасибо.

16 Янв, 06:59 #319 #626540

во, такое придумал: у нас есть <100 отрезков, т.е. <200 концов. Каждый конец делит нашу прямую на две части: левую и правую. Соот.
result(i,i)=0
result(i,j)=max(result(i,start(k)) + weight(k) + result(end(k),j))
где i,j - номера точек, k - номера отрезков

16 Янв, 07:03 #320 #626542

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

16 Янв, 07:57 #321 #626550

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

16 Янв, 08:00 #322 #626551

>>626447
Оно все тесты проходит, или тоже обсирается на длинных?

Ответы: >>626649

16 Янв, 13:00 #323 #626649

>>626551
Все за 0,1 секунду.

>>626502
Спасибо. Кажется понял.

16 Янв, 15:45 #324 #626792

Какой способ парсинга NMEA будет более быстр, если мне нужно выдрать из ответа пару параметров?
1. Ищем при помощи strlen начало пакета: $GPGGA, при помощи sscanf считывает это всё в кучу аргументов. Проблема в том, что ответов от GPS в буфере может лежать несколько штук разных, не будет ли этот способ медленным?
2. Конечный автомат, на вход принимает по одному байту.
При помощи atof, atoi выдернуть нужную мне информацию.

Пример строки:
$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

16 Янв, 15:51 #325 #626795

>>626429
Нелегитимно, стандарт не гарантирует, что по дефолту там 0.

Ответы: >>626796, >>626956

16 Янв, 15:51 #326 #626796

>>626795
Вот про это, в смысле:
>int i{}

Ответы: >>626802

16 Янв, 15:57 #327 #626800

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

Ответы: >>626801

16 Янв, 15:58 #328 #626801

>>626800
Скидывай решение.

Ответы: >>626811

16 Янв, 15:58 #329 #626802

>>626796
Кстати на самой олимпиаде компилировали без 11ого стандарта. И всякие лямбды делать нельзя.

Ответы: >>626812

16 Янв, 16:08 #330 #626811

>>626801
Тут оптимизировать пытался. Сделал всего 1 массив размером n*k и за 1 проход всё выщитал без удалений. Но не уверен что оно сработало т.к. часть тестов по времени не проходят.

http://pastebin.com/7G0KpXxy

Ответы: >>626966

sage 16 Янв, 16:11 #331 #626812

>>626802
Гениально. А чё сразу не на C89-то?

Ответы: >>626814

16 Янв, 16:14 #332 #626814

>>626812
Понятия не имею. Один из авторов вообще в Си стиле пишет избегая vector'ов и fstream'ов.

Ответы: >>626835

16 Янв, 16:36 #333 #626835

>>626814
Ну если цель - олимпиадное питушение, где важна 0,001 мс - правильно делает.
Алсо, попробуй зарезервировать память в векторе после инициализации или заменить его на статичный массив.

Ответы: >>626840

16 Янв, 16:38 #334 #626840

>>626835
>заменить его на статичный массив
А как тогда его длину менять? Я же из двух вектаров 1 склеиваю.

Ответы: >>626844

16 Янв, 16:43 #335 #626844

>>626840
А никак не менять. Взять сразу все 4 мб на стёке и молится что тестов там будет не 40 мб (лол).
По крайней мере через такой анус можно будет убедится, что нету оверхеда на аллокациях.

Алсо, скинь ещё сами тестики.

Ответы: >>626849, >>626906

16 Янв, 16:50 #336 #626849

>>626844
>Алсо, скинь ещё сами тестики.
http://rghost.ru/6vrVz6HT6
Скомпилировать файл и положить в эту папку. Потом запустить test.bat с параметром имени файла без расширения. Результат в res файле будет.

16 Янв, 17:54 #337 #626906

>>626844
Переписал. Ничего не поменялось.
http://pastebin.com/U9FrRGE9

16 Янв, 18:57 #338 #626952

Что значит конструкция if(!cin)

Ответы: >>626953, >>627419

16 Янв, 19:00 #339 #626953

>>626952
Если в предыдущей строчке cin не распарсил входные данные.

Ответы: >>627419

16 Янв, 19:04 #340 #626956

>>626795
> стандарт не гарантирует, что по дефолту там 0.
Почему ты так пишешь? Судя по http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
на 190 странице указано что { } считается как braced-init-list
на 201 странице, где рассматривается инициализация с помощью "a braced-init-list" указано что "Otherwise, if the initializer list has no elements, the object is value-initialized"
на 191 странице, где дается определение value-initialized перечислено 4 случая, где первые два относятся к класам, третий к массивам а для скалярного типа остается "otherwise, the object is zero-initialized"
Ну и на 201 странице последняя строка "int k { }; // initialize to 0"

Ответы: >>626960

16 Янв, 19:12 #341 #626960

>>626956
Да, твоя правда, я обосрался.

16 Янв, 19:24 #342 #626966

>>626811
Чем ты занимаешся в 38-40 строках? тебе не нужно k раз физически инвертировать массив. Просто в зависимости от четности шага нужно искать или возврастающие или снижающиеся последовательности. И в конце один раз перевернуть если k нечетное. В зависимости от того как должны обрабатыватся последовательности равных чисел, можно обойтись и без удаления а делать вместо "удаленных" последовательностей типа "плато" - но там нужно продумать все ситуации. И если задание конечно вообще позволит такое сделать. Как вариант, заменять удаленные числа на заведомо невозможные значения - обратно же если такое возможно по заданию.

Ответы: >>626967, >>626975

sage 16 Янв, 19:30 #343 #626967

>>626966
> или снижающиеся последовательности.
Имелось ввиду "или снижающиеся последовательности, при этом идя с конца массива к началу."

Ответы: >>626975

16 Янв, 19:36 #344 #626975

>>626967
>снижающиеся последовательности
>идя с конца
Это возрастающая. Имеешь ввиду что можно всего в 2 прохода ответ узнать?

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

26 Кб, 566x273

16 Янв, 21:02 #345 #627026

Что бля? Чому у меня вечно читает числа, в книжке вот такой пример? Это же нелогично будет бесконечно считать, а написано что если ввести 3 4 5 6, он выведет 18.
ЧЯДНТ?

Ответы: >>627034, >>627388

16 Янв, 21:13 #346 #627034

>>627026
Ctrl+D

17 Янв, 00:33 #347 #627186

ССССука.
Путаюсь в ебучих битовых операциях.

Ответы: >>627420

sage 17 Янв, 11:32 #348 #627388

>>627026
Чтобы дать программе понять, что ты закончил ввод, введи Ctrl+Z

17 Янв, 12:45 #349 #627419

>>626952
>Что значит конструкция if(!cin)

cin имеет bool'евые функции-члены о состоянии потока (несколько флагов). В частности, одна из них, успешно ли проходили все предыдущие записи (если ты не очищал этот флаг).

Называется она operator bool (совершенно самоговорящее название). Так вот, вызывается она тупое сравнением потока с логической переменной (или запихиванием внутрь if/while/for и т.д.)

Что означает успешно прошли все предыдущие записи: это означает, что всё было записано как и хотелось, но не сообщает, пустой ли буфер cin. Если хочешь проверить на то, пустой ли он, то включай проверку cin.eof() -- обязательно пустые скобки в конце, т.к. это вызов булевой функции без аргументов.

(cin) означает, что все предыдущие записи были успешны (или ты очистили этот флаг)
(cin.eof()) означает END OF FILE (пустой буфер потока cin)

>>626953
>Если в предыдущей строчке cin не распарсил входные данные.
Необязательно последней.

17 Янв, 12:46 #350 #627420

>>627186
Что тебе непонятно?

Ответы: >>627704

17 Янв, 20:17 #351 #627704

>>627420
Разобрался уже. И дополнительно в stl' битсет.
Нужно было флаги реализовать.

Где загрузить исходники STL? Нашел http://llvm.org/svn/llvm-project/libcxx/trunk/ , но стащить их не очень выходит.

Ответы: >>627727

17 Янв, 21:04 #352 #627727

>>627704
Гугли STLport, EASTL, RDESTL.

17 Янв, 21:21 #353 #627738

Может кто подскажет, как в boost::asio использовать SSL и не SSL подключение в одной программе. По отдельности всё понятно, а если мне надо выбирать тип подключения, то тут не знаю, как сокет в boost::asio::ssl::stream передать.

Ответы: >>627950, >>627981

18 Янв, 02:59 #354 #627950

>>627738
наоборот, юзаешь sslStream.next_layer() пока делаешь незащищенное, а потом переползаешь в защищенное

Ответы: >>627980

18 Янв, 07:21 #355 #627980

>>627950
Проблема в том, что мне может быть нужно нешифрованное соединение без SSL вообще. Получается, что придётся инициализировать SSL (boost::asio::ssl::context, boost::asio::ssl::stream), получить заголовок от клиента и, если нет запроса на SSL, работать с next_layer(). Неужели нет возможности сделать по другому?

18 Янв, 07:44 #356 #627981

>>627738
Использовать человеческую I/O библиотеку, а не это тормозное overarchitectured9000 говно.

Ответы: >>627982

18 Янв, 07:52 #357 #627982

>>627981
Какую?

Ответы: >>627983, >>627984

18 Янв, 08:02 #358 #627983

>>627982
libcurl же.

Ответы: >>627986

18 Янв, 08:05 #359 #627984

>>627982
Да хоть libuv из нового.

Ответы: >>627986

18 Янв, 08:14 #360 #627986

>>627983
Только клиент без сервера.
>>627984
SSL не вижу. По внешнему виду, просто лёгкая обёртка над сокетами.

Ответы: >>627993

18 Янв, 08:59 #361 #627993

>>627986
https://www.gnu.org/software/libmicrohttpd/

Ответы: >>628116

18 Янв, 11:48 #362 #628052

Решил токой поконтрибутить в Qt сдуру.
Посмотрел пару часов в эту огромную кодобазу, иерархия инклудов перестала помещаться на втором мониторе, я закрыл.
Как у людей выходит понимать все это, отсылать по 5 патчей в день и не сходить с ума?
С какой стороны подходить вообще к таким огромным репозиториям? Или без ста грамм нихуя не поймешь и по-любому придется сквозь тернии к звездам?

Ответы: >>628084, >>628325, >>628330

18 Янв, 12:28 #363 #628084

>>628052
>по 5 патчей в день
Батя кстати все время какие-то доки читает, чтобы пулл-реквесты делать часто, контрибутит по 5 раз в день, а потом говорит, что репозиторий на диск не влезает, и еще форкает он. Пиздец короче. Реальная история, я не шароварщик.

18 Янв, 13:03 #364 #628116

>>627993
Вероятно, и эта библиотека хороша, но мне надо тренироваться на бусте.
Что-то буст начинает меня расстраивать, хотя и начал изучать его совсем недавно. Тысячи конструкторов на любую ситуацию, миллион функций для любого случая, а такую простую вещь, как сокет невозможно передать через конструктор или заменить через метод. Забавно, но неужели ни у кого из пользователей/разработчиков не было необходимости в реализации прокси? Так и пришлось создавать boost::asio::ssl::context и boost::asio::ssl::stream и, в зависимости от заголовка, использовать либо SSL, либо через socket.next_layer() получать сокет и работать уже с ним. Хорошо, что хотя бы к внутренним данным доступ есть.

Ответы: >>628122, >>628219

18 Янв, 13:20 #365 #628122

>>628116
Дык из-за этого на нем даже ни одного нормального вебсервера нету (где-то были бенчмарки, где бустовый.асио Goвну слил).
Тебе уде говорили: если нужна именно вот такая низкоуровенная хуитка - забей на буст.

18 Янв, 15:29 #366 #628219

>>628116
Таки что, не стоит бустом обмазываться?

Ответы: >>628263

18 Янв, 16:24 #367 #628263

>>628219
Буст неоднороден, я уже который раз об этом втираю ньюфагам ИТТ. Его писали разные люди, на протяжение почти 15 лет уже. И когда написали хуйню, от нее уже нельзя отказаться, приходится поддерживать. Поэтому там есть годнейшие вещи треды, умные указатели, chrono, которые постепенно перекочевывают в стандарт. Есть просто хорошие пулы всякие, any/variant. Есть сложные и узкоспециализированные spirit, MPL, они быстро устаревают, но стабильны и все еще могут дать прикурить standalone-аналогам. Есть громоздкие части для популярных задач filesystem, test, они обычно хуже, чем standalone-аналоги, но не сильно, зато позволяют не прикручивать ничего, кроме буста. А есть всякий шлак, который неудачно впилили, и теперь выпилить уже не могут, а нормальный аналог пихать не хотят, потому что перекрытие зон ответственности, и вообще ВСЕ УЖЕ НАПИСАНО. asio - типичный пример такого говна, которое трогать не стоит, только понюхать, поморщиться и найти нормальную либу.

18 Янв, 16:40 #368 #628272

>>622611 (OP)
Плюсогоспода, поясните вот что. Уходят ли кресты постепенно в легаси? В каких проектах они теряют популярность, а в каких - набирают?

Например, не станут ли через пару лет весь GUI делать на чём-то более лёгком в освоении, чем плюсы+Qt? Вон даже Microsoft в какой-то VS ограничил поддержку плюсов, чтобы на решётку перешли. Если есть какие-нибудь хорошие статьи 2015-2016 годов, поясняющие области применения C++ и то, откуда он не собирается уходить, с удовольствием почитал бы. Ну и ваше мнение интересно, разумеется. Заранее спасибо.

Ответы: >>628273, >>628312, >>628317

18 Янв, 16:41 #369 #628273

>>628272
Просто есть пару свободных месяцев - думаю либо в плюсы нормально вкатиться, либо вкатиться в решётки или вообще в джаву.

Ответы: >>628301, >>628314

35 Кб, 640x549

18 Янв, 17:31 #370 #628301

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

Ответы: >>628313, >>629115

18 Янв, 18:02 #371 #628312

>>628272
>на чём-то более лёгком в освоении, чем плюсы+Qt
Его и для плюсов уже на QML пишут (для лёгкого софта там и плюсов не надо).
> области применения C++ и то, откуда он не собирается уходить
Чо там статьи-то писать.
Легаси в: десктопных хуитках, автоматизации, всякой сайнс-хуйне, энтерпрайз и пр. где скорость разработки стоит выше производительности;
Не собирается двигаться из: игрулек (конкретно - движков), системщины и всякого эмбедеда (сюда только вкатывается, лол), всякого супер-хуйлода вроде поисковика гугла, короче говоря везде, где главное - производительность.

Ответы: >>629115

73 Кб, 604x604

18 Янв, 18:03 #372 #628313

>>628301

18 Янв, 18:04 #373 #628314

>>628273
Хуёвая затея. Если нюфаг - даже не смотри в сторону плюсов, конкретно становление как программиста они только замедляют.

Ответы: >>628320, >>629115

18 Янв, 18:05 #374 #628317

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

Ответы: >>629115

18 Янв, 18:10 #375 #628320

>>628314
Я кстати после крестов пытался питон выучить недавно начал. Там полный пиздец с пониманием. Может говноскрипты писать и научишься, но программировать вряд ли. Там сразу ООП и совсем нелогичная или не оптимизированная архитектура. Там меняется тип переменных в ходе работы программы. С первых минут в глаза бросается вся хуйня из-за которой он будет тормозить. Поэтому для ньюфагов наверно лучше паскаль какой-нибудь, а не эту хуету которую обычно советуют.

Ответы: >>628331, >>628350

18 Янв, 18:19 #376 #628325

>>628052
Ты им пользовался вообще? Понимание его архитектуры начинается после понимания принципов использования.

Ответы: >>628334

18 Янв, 18:21 #377 #628330

>>628052
Хули там понимать? Хочешь вектор - берешь кулист, хочешь строку - берешь кустроку.

Ответы: >>628334

18 Янв, 18:25 #378 #628331

>>628320
Суть всяких питонов в обучении - без ебли можно реализовывать разные алгоритмы, двигаться в этом направлении хоть как-то. Я в своё время был упрямым школьником начал с плюсов, и плюсов сего действа сейчас не вижу.
Насчёт паскаля ты вообще прав, надо модеру пизды дать чтобы из шапки строку про "Рабе/петон для нюфань" убрал.

Ответы: >>628340, >>628363

18 Янв, 18:29 #379 #628334

>>628325
>>628330
Ахуенные истории от папок ципипи подъехали. Ублюдки вроде вас, понимающих всё с полюзанья кде уже убили - вам, похоже, мало.

Ответы: >>628522

18 Янв, 18:33 #380 #628340

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

>надо модеру пизды дать чтобы из шапки строку про "Рабе/петон для нюфань" убрал.
Щас вроде новый. Он добрый не считая предупреждений за скобочки))))) и отзывчивый. Скорее всего прислушаемся. А вообще пора новую шапку для прикреплёного треда пилить всем программачем. Или может сначала крестоёбскую доделаем?

Ответы: >>628363

56 Кб, 505x380

18 Янв, 18:47 #381 #628350

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

Ответы: >>628352

18 Янв, 18:50 #382 #628352

>>628350
Сейчас же все уже на смешанной типизации, не?

Ответы: >>628353, >>628357

18 Янв, 18:50 #383 #628353

>>628352
А что у бэйсика?

18 Янв, 18:52 #384 #628357

>>628352
Нет, сплюнь. Это пережиток Си.
Сейчас мода на статику с выводом типов.

## Mod ## 18 Янв, 19:00 #385 #628363

>>628331
>Рабе/петон для нюфань
Я насчет Ruby и сам не оче согласен, но не хочу игнорировать труд предшественника. Пусть у него вся лента из "руби, скалы и еще какой-то хуйни", человек старался же, собирал материалы. Не мной покладено, не мне и дадено, такие дела. К тому же, я бы для начального обучения алгоритмизации выбрал питон, а не паскаль, ибо вред от отсутствия жесткого контроля за ньюфагом с лихвой компенсируется живостью языка и на порядок более высоким уровнем абстракции. ИМХО.
>>628340
Я только за. Если анон захочет допилить прикрепленный тред, с удовольствием все добавлю. Алсо, можете создать тред для обсуждения всего этого. Если анон проявит желание и начнется движуха, то можно будет прикрепить его, или сделать голосовалку, или еще что-то.

Ответы: >>628389

18 Янв, 19:15 #386 #628389

>>628363
> труд предшественника
Того долбаёба который ссылки на треды про ЯП по пол года не обновлял?
У него ещё есть админка?

>Я только за.
https://2ch.hk/pr/res/628387.html (М)

18 Янв, 21:13 #387 #628522

>>628334
Ага, брать кулист вместо няшного кувектора.

175 Кб, 700x516

19 Янв, 14:01 #388 #629115

>>628301
>>628314
>>628312
Знаю сишку на довольно неплохом уровне, могу в микроконтроллеры на сишке, могу в приличный код, но по части ООП и мультитрединга новичок. Знаю плюсы на уровне теории (прослушал курс в универе, лол) и пары лаб, но не практиковался пока в STL и разных shared_ptr и прочих тонкостях, которые, как я понял, необходимы. Рефакторил немного один проект на плюсах, офигел от паттернов.
>>628312
Про Qt - довольно логично, ибо плюсы в GUI как-то непонятно даже, зачем. А почему в энтерпрайзе он легаси? В эмбеддед пока не собираются завозить джаву? Сложно ли вкатиться в такие серьёзные проекты? Что обычно нужно знать, кроме стандартных вещей вроде ООП и мультитрединга? Работы вообще много в мире, или на плюсовиков спрос ограничен, как на админов?
>>628317
Вроде бы, Intellisense там теперь не такой интеллигентный, как прежде, в отличии от шарпа. Сам не смотрел, но слова анона, который об этом сообщил, насторожили.

Ответы: >>629365

19 Янв, 19:26 #389 #629365

>>629115
Помидоры скачай, хули как маленький.

19 Янв, 19:28 #390 #629367

Дайте годный гайд как запилить сервер на сокетах в Qt

Ответы: >>629376, >>629379, >>629507

19 Янв, 19:33 #391 #629376

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

Ответы: >>629378, >>629507

19 Янв, 19:34 #392 #629378

>>629376
Надо убрать это правило из шапки.

Ответы: >>629399

19 Янв, 19:34 #393 #629379

>>629367
Ричард Стивенс, любая книга по TCP/IP.

Ответы: >>630188

19 Янв, 19:54 #394 #629399

>>629378
Хейтер сосет хуй на пару со своей мамашей.

Ответы: >>629768

19 Янв, 20:55 #395 #629507

>>629376
Лабы идут нахуй. Мне >>629367 для себя. Но я нихуя нормального не нагуглил.

Ответы: >>629539

19 Янв, 21:27 #396 #629532

Котоны, делаю хуйню на Qt, короч.
Для хуйни нужен секундомер.
Ну я короч велосипед с second++ пилить не стал, взял qtime
Тут такая хуйня, доки говорят что:

addSecs()
Returns a QDateTime object containing a datetime s seconds later than the datetime of this object (or earlier if s is negative).

(вольная копипаста, суть передана)

И, собственно, добавить секунду в QTime stopwatch у меня получилось только так:

QTime temp = stopwatch->addSecs(1);
*stopwatch = temp;

Это нормально или полный пиздец и можно проще?

Ответы: >>629537

19 Янв, 21:34 #397 #629537

>>629532
Да, долбоеб, додумался до
*stopwatch = stopwatch->addSecs(1);
но все равно мне это кажется костылем

Ответы: >>629558

19 Янв, 21:36 #398 #629539

>>629507
https://github.com/ololoepepe/ololord

Ответы: >>629768

19 Янв, 22:21 #399 #629558

>>629537
Нормально это. Енджой ойр ИММУТАБЕЛЬНОСТЬ.

Ответы: >>629559

19 Янв, 22:23 #400 #629559

>>629558
Хорошо, благодарю.
Если честно, сам немного жалею что такой диплом брал, еще и на qt. Лучше бы простое "проектирование"

19 Янв, 22:38 #401 #629580

http://pastebin.com/c9pKVq4N

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

Ответы: >>629581

19 Янв, 22:39 #402 #629581

>>629580
Производитель потребитель задача.

19 Янв, 22:58 #403 #629596

Как можно оптимизировать этот код?

int i, j;
float sum = 0;
int num = 100000000;
for( i = 0; i < num; i++ )
{
for( j = 0; j < num; j++ )
{
float x = myDataX;
float y = myDataY[j];
float value = x+y;
sum+=value;
}
}

Кроме как вынести

float x = myDataX;

из вложеного цикла ничего в голову не приходит. Подскажи Анон?

Ответы: >>629598, >>629672, >>629798

19 Янв, 22:59 #404 #629598

>>629596
int i, j;
float sum = 0;
int num = 100000000;
for( i = 0; i < num; i++ )
{
for( j = 0; j < num; j++ )
{
float x = myDataX;
float y = myDataY[j];
float value = x+y;
sum+=value;
}
}

быстрофикс

Ответы: >>629600, >>629614, >>629798

19 Янв, 23:01 #405 #629600

>>629598
http://pastebin.com/HUYhhJ92

Ответы: >>629798

19 Янв, 23:17 #406 #629614

>>629598
>
http://pastebin.com/xkHpGxzk
Помог чем смог

Ответы: >>629621

19 Янв, 23:29 #407 #629621

>>629614

Ответы: >>629652

20 Янв, 00:25 #408 #629652

>>629621
Ну, что ты хотел, милаш?

20 Янв, 00:50 #409 #629672

>>629596
Во-первых неясно зачем тебе переменные x, y и value. Во-вторых тебе достаточно сумму первого массива умножить на 100000000 и прибавить к ней сумму второго массива умноженую на 100000000 ^ 2.

Ответы: >>629903

20 Янв, 03:10 #410 #629768

>>629539
>>629399
пшёл нахуй со своей парашей. и высер твой из шапки нужно убрать.

20 Янв, 03:50 #411 #629776

Посоны, постоянно на SO вижу отсылки к стандарту, мол
"Деструктор анального писюна, псалма 14 параграф 88 лука"
Где достать это говно? Как часто оно обновляется?

Ответы: >>629777, >>629798, >>629881

20 Янв, 03:59 #412 #629777

>>629776
open-std.org Обновляется, 98, 2003, 2011, 2014, и будет вроде 2017. Важные обновления - 98 и 2011, а промежуточные - багфиксы по сути.

20 Янв, 05:37 #413 #629798

>>629776
оно тебе не нужно, сын мой

>>629600
>>629598
>>629596
какая-то хуйня написана
у тебя myDataX и myDataY не зависят от одного из циклов
короче получается так:

sum = (std::accumulate(myDataX, myDataX + num, 0f) + std::accumulate(myDataY, myDataY + num, 0f)) * num;

либо распиши что там у тебя вместо "float value = x+y;"

Ответы: >>629875, >>629903

20 Янв, 09:12 #414 #629875

>>629798
Нужно.

20 Янв, 09:18 #415 #629881

>>629776
Оно есть в шапке этого треда же.

20 Янв, 10:28 #416 #629903

>>629672>>629798
кусок кода из тестового задания, где надо его оптимизировать
вот программа для теста (переменную num я уменьшил) результат в ней: 998540800
http://pastebin.com/XesqpaGR

если суммировать элементы и множить потом на размер, как здесь:
sum = (std::accumulate(myDataX, myDataX + num, 0.f) + std::accumulate(myDataY, myDataY + num, 0.f)) * num;

результат получается: 999000000

Ответы: >>629908, >>629936

20 Янв, 10:39 #417 #629908

>>629903
>кусок кода из тестового задания, где >надо его оптимизировать

Это я к тому что понятия не имею чего хотел автор достичь переменными x, y, value

20 Янв, 11:34 #418 #629936

>>629903
> если суммировать элементы и множить потом на размер, как здесь:
А здесь все ок https://ideone.com/NMaxiV

52 Кб, 513x285

20 Янв, 12:35 #419 #629979

навернул boost.. Указатели,контейнеры, графы, графы, ГРАФЫ!!!!11
В гугле на русском ничего, кроме одной книжки. Что делать ?

Ответы: >>629987, >>629996, >>630014

20 Янв, 12:45 #420 #629987

>>629979
Нахуя оно тебе надо?

20 Янв, 13:03 #421 #629996

>>629979
Буст или графы ? Годная штука, много фич.

20 Янв, 13:55 #422 #630014

>>629979
>кроме одной книжки
>boost
>книга на русском
Реквестирую срочно!

20 Янв, 14:11 #423 #630032

Есть у кого-то нормальная, не наркоманская реализация обедающих философов на 11 стандарте без блядских mvc/posix семафоров?

Ответы: >>630034, >>630115

20 Янв, 14:13 #424 #630034

>>630032
Захват семафоров в алфавитном порядке.

Ответы: >>630036

20 Янв, 14:15 #425 #630036

>>630034
А в стандарте есть семафоры? или ты имеешь ввиду condition_variable?
Сорцы есть?

Ответы: >>630162

20 Янв, 16:00 #426 #630115

>>630032
>posix
Кстати что это? Вики прочитал, но нихуя не понял. А выглядит интересно. Если нуфаг, то можно для него какую-нибудь хуету написать? Реквестирую книгу.

Ответы: >>630124

20 Янв, 16:06 #427 #630124

>>630115
>Кстати что это? Вики прочитал, но нихуя не понял.
Стандарт.
>А выглядит интересно
Выглядит как unix way c-only.

Ответы: >>630130

20 Янв, 16:08 #428 #630130

>>630124
>c-only
Тогда не надо книг. А ты не врешь?

Ответы: >>630169, >>630183

20 Янв, 16:52 #429 #630162

>>630036
Для философов тебе мьютексов хватит же. Пока используешь любую вилку - блокируешь конкретно ее мьютексом. Дальше просто нумеруешь вилки и берешь всегда по возрастанию номеров.

20 Янв, 16:56 #430 #630169

>>630130
Ричард Стивенс, "Программирование UNIX".

Ответы: >>630188

20 Янв, 17:05 #431 #630183

>>630130
>А ты не врешь?
if ((sem_id = semget (ipc_key, 2, IPC_CREAT | IPC_EXCL |0600)) <0)
semctl (sem_id, 1, SETVAL, 1);

20 Янв, 17:07 #432 #630188

>>629379
>>630169
>Ричард Стивенс
Это у вас новый мем?

20 Янв, 19:45 #433 #630356

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

Ответы: >>630362, >>630490

20 Янв, 19:54 #434 #630362

>>630356
Не туда смотришь. У Qt свой дух, весьма вонючий. Либо используешь Qt Creator, либо студию с нормальными библиотеками FLTK или wxWidgets там, если любишь помощнее и посложнее. Не надо мешать вино с пивом, блджад.

Ответы: >>630747

20 Янв, 21:56 #435 #630490

>>630356
Да, можно, есть инсталляшка для интеграции, посмотри у qt на сайте.

Ответы: >>630747

20 Янв, 22:33 #436 #630530

О, тут уже как раз за Qt пиздежь идет.
Хочу что-нибудь напердолить на кутешечке, но ума не приложу, что.

Ответы: >>630542

20 Янв, 22:42 #437 #630542

>>630530
>Хочу что-нибудь напердолить на кутешечке, но ума не приложу, что
Визуализацию случайного блуждания с отражением.

Ответы: >>630546

20 Янв, 22:43 #438 #630546

>>630542
Мм, как хуем в ротеш типо?

Ответы: >>630605

20 Янв, 23:19 #439 #630605

>>630546
Как домой в пятницу вечером.

Ответы: >>630624

20 Янв, 23:28 #440 #630624

>>630605
У меня любой день одинаков.

21 Янв, 01:09 #441 #630747

>>630490
Я чет вот после таких >>630362 отзывов уже и не знаю, нужна ли мне эта кутя.

Ответы: >>630759, >>630837

21 Янв, 01:40 #442 #630759

>>630747
Тут индивиды любят пояснять что кутя нинужна, как и цпп - фве работает на гэтэкаплас и си.

Ответы: >>630775

21 Янв, 02:18 #443 #630775

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

Ответы: >>630785

21 Янв, 02:42 #444 #630785

>>630775
зато без МАНГЛИНГА биндится через GObject Introspection даже к пердаку твоей мамки

21 Янв, 09:03 #445 #630837

>>630747
Будешь каждого дауна слушать - так и будешь думать, что X не нужен, а на Y работы нет.

Ответы: >>630840

21 Янв, 09:23 #446 #630840

>>630837
Давай, расскажи, как ты удачно впихнул string и QString в одно приложение.

Ответы: >>630845, >>630899

21 Янв, 09:34 #447 #630845

>>630840
Но зачем мне это делать? В Qt свои контейнеры, зачем мне там нужен stl?

Ответы: >>630848, >>630864

21 Янв, 09:41 #448 #630848

>>630845
Патамушта. Ты. Должин. !!!
Ведь ооп придумали не для разделения кода, видимо НИЛЬЗЯ разделять кодобазу на stl и qt.

Ответы: >>630849, >>630958

21 Янв, 09:42 #449 #630849

>>630848
Ты кто вообще такой и что мне от тебя надо? Свяжешься с моим секретарем.

21 Янв, 10:26 #450 #630864

>>630845
А алгоритмы на контейнерами там есть?

Ответы: >>630868

21 Янв, 10:38 #451 #630868

>>630864
А нахуя тебе алгоритмы в гуе? Или ты не умеешь отделять логику от представления? Это уже к тебе вопрос тогда, лолка.

Ответы: >>631017

21 Янв, 12:04 #452 #630899

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

21 Янв, 13:35 #453 #630958

>>630848
Еблан тупой, Qt-контейнеры stl-совместимые. Сложно в хелп слазить, посмотреть?

Ответы: >>631019

21 Янв, 13:47 #454 #630974

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

Ответы: >>631148

21 Янв, 14:07 #455 #630991

http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/
Cначала нихуя не понял
потом тоже

21 Янв, 14:58 #456 #631017

>>630868
>А нахуя тебе алгоритмы в гуе?
Вот вся суть кутеблядков в одном предложении. Сначала пихают везде свои нестандартные велосипеды в духе QYourMomma, а потом проект оказывается склепан из stl, qt и Аллаха в каждом файле и адаптеров к адаптерам, как ебаный монстр Франкенштейна.

Ответы: >>631022

21 Янв, 15:01 #457 #631019

>>630958
>stl-совместимые
>без аллокаторов
Ну это вообще пушка.

Ответы: >>631062

21 Янв, 15:09 #458 #631022

>>631017
Хуйню спизданул и рад.

21 Янв, 16:02 #459 #631062

>>631019
Даже обоссывать тебя лень, дегенерат тупой.
http://doc.qt.io/qt-4.8/containers.html#stl-style-iterators
>STL-style iterators have been available since the release of Qt 2.0. They are compatible with Qt's and STL's generic algorithms and are optimized for speed.

Ответы: >>631108

21 Янв, 16:40 #460 #631108

>>631062
>Qt-контейнеры stl-совместимые
Глядите, маняманевры пошли. Ты разницу между совместимостью с STL и совместимостью с алгоритмами STL ощущаешь, чепуш? Охуеть просто, я напишу пустую заглушку с интерфейсом итератора, буду ее возвращать и кукарекать о совместимости с STL, а пацаны-то не знали.

Ответы: >>631121

21 Янв, 17:04 #461 #631121

>>631108
Что ты вкладываешь в понятие "совместимость с STL" дауна ты кусок? Скажи, зачем вот это вот суетливое маняврирование про неработающие самописные итераторы? Конечно, если их написать чтобы они не работали, то они работать не будут, то же мне сюрприз. Вот только те которые сейчас в Qt есть - они работают, и можно при помощи std::sort сортировать QVector или там при помощи std::find_if что-то в нем искать. Какая тебе еще совместимость с STL нужна, дегенератина ты тупая?

Ответы: >>631143

21 Янв, 17:14 #462 #631132

Объясните ньюфагу.
Пока не раскурил <atomic> и <future>. Понять не могу, везде кукарекают, что надо lock-free, lock-free; нахуй тогда вообще в таком случае нужны мутексы и локи и хуёки, если можно все ебашить ЛОК ФРИ?!
Я серьезно не понимаю, объясните, если кто осведомлён.

Ответы: >>631133, >>631134

21 Янв, 17:14 #463 #631133

>>631132
Ну как ньюфагу, ньюфагу в паралеллизме на стандарте.

21 Янв, 17:17 #464 #631134

>>631132
потому что нельзя абсолютно всё заебашить локфри
зато там, где можно, есть ч0ткий рост скорости

Ответы: >>631135

21 Янв, 17:19 #465 #631135

>>631134
Что именно нельзя, можешь немного конкретизировать? За пеленой абстракции не воспринимается разница.

Ответы: >>631137

21 Янв, 17:23 #466 #631137

>>631135
одновременное действие с двумя и более общими объектами

Ответы: >>631139

21 Янв, 17:25 #467 #631139

>>631137
А, ну охуеть тогда.
Примерно понятно. Спасибо.

21 Янв, 17:40 #468 #631143

>>631121
Ты наркоман штоле, сука? stl-совместимый контейнер = контейнер с интерфейсом, идентичным контейнерам stl. Ты можешь использовать объекты QVector вместо объектов std::vector без перепила клиента? Нет. О какой тогда совместимости ты кукарекаешь, маня?

Ответы: >>631187

21 Янв, 17:47 #469 #631148

>>630974
В другом, разумеется, в этом вся суть PIMPL. В книжках называют TvoyaMamkaImpl, но я обычно сразу делаю все классы имплементациями, используя родные имена. Если надо PIMPL, использую специальную шаблонную обертку с джвумя хэдерами. Если интересно, могу пояснить подробнее за принцип.

Ответы: >>631152

21 Янв, 17:55 #470 #631152

>>631148
Но нахуя?
У мэйерса в том же, и http://c2.com/cgi/wiki?PimplIdiom здесь
в том же файле - имел ввиду .cpp а не .hpp, может ты неправильно меня понял

Ответы: >>631194

21 Янв, 17:56 #471 #631154

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

Ответы: >>631156, >>631184

21 Янв, 17:58 #472 #631156

>>631154
Перепишешь всю С++ кодобазу на ди - потом приходи.

Ответы: >>631157

21 Янв, 17:59 #473 #631157

>>631156
Но ведь их можно использовать совместно.

Ответы: >>631158

21 Янв, 18:00 #474 #631158

>>631157
Все сказал?

21 Янв, 18:29 #475 #631184

>>631154
съеби в дэ тред

21 Янв, 18:30 #476 #631187

>>631143
>Ты можешь использовать объекты QVector вместо объектов std::vector без перепила клиента?
Да могу, большинство методов std::vector продублированы в QVector. Я ж советовал тебе хелп посмотреть, хули ты этого еще не сделал?

Ответы: >>631199

21 Янв, 18:30 #477 #631190

О, напишу потокобезопасное BST, может надрочусь немного.

21 Янв, 18:33 #478 #631194

>>631152
Лол, так у Мейерса это просто иллюстрация, а не реальное использование. Чтобы можно было скопипастить и скомпилировать. Это как с using namespace std - удобно писать примеры, но реально так не делают.

Первоочередная задача PIMPL - ускорение компиляции. Допустим, ты хочешь завести в классе YourBatya член-экземпляр класса Trukhany. Тогда компилятору нужен размер труханов, т.е. внутри файла с классом бати это должен быть т.н. complete type. Поэтому ты делаешь #include <Trukhany.h>

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

Вот чтобы такого не было, используют PIMPL. Вместо инклуда пишут просто объявление, что есть такой class Trukhany, а что это за класс - батин хэдер не ебет, потому что при использовании PIMPL экземпляр хранится по указателю, а все методы, которым уже надо знать про внутренности труханов, вынесены в батин .cpp. Таким образом, при изменении Trukhany.h придется перекомпилировать только .cpp-шники, которых не так много, а не рекурсивно большую часть проекта.

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

Ответы: >>631202, >>631257, >>631259

21 Янв, 18:36 #479 #631199

>>631187
std::vector <int, std::allocator <int>> v {};

Вот тебе тело функции из одной строчки. Заменяешь vector на QVector, пробуешь скомпилировать, обретаешь просветление.

Ответы: >>631206

21 Янв, 18:38 #480 #631202

>>631194
Ты щас описал то что у мэйерса.
Какой прикол выделять реализацию в другой файл ( НЕ БАТЯ.cpp ) - ты так и не написал.

Ответы: >>631218

21 Янв, 18:39 #481 #631206

>>631199
Скомпилировал.
Что дальше кукарекаем?

Ответы: >>631207

21 Янв, 18:42 #482 #631207

>>631206
Пруф на ideone давай.

Ответы: >>631208

21 Янв, 18:42 #483 #631208

>>631207
На идеоне есть кьют?

Ответы: >>631213

21 Янв, 18:44 #484 #631213

>>631208
тогда экзэшник. или в ассемблер конвертируй и показывай

Ответы: >>631215

21 Янв, 18:45 #485 #631215

>>631213
Еще чего, я что, виндоманька какая?

Ответы: >>631217

21 Янв, 18:46 #486 #631217

>>631215
Тогда линуксовый файл или ассемблер показывай.

21 Кб, 1565x789

21 Янв, 18:52 #487 #631218

>>631202
Пикрелейтед два подхода. Вопрос скорости компиляции решают оба, но правый более гибкий и связанность меньше.

Ответы: >>631219

21 Янв, 18:54 #488 #631219

>>631218
И профит только в том, что ты на два файла разбил? Ну озуеть.

Ответы: >>631222

21 Янв, 19:00 #489 #631222

>>631219
Профит в том, что firewall_* пишутся один раз и потом их можно использовать с любыми классами. Когда ты пишешь батю, ты не думаешь про способ его использования, просто пишешь обычный класс. Захотел сделать для него PIMPL - правишь только клиент (мамку). Принцип единственной обязанности же.

Ответы: >>631229, >>631244, >>631254

21 Янв, 19:14 #490 #631229

>>631222
Ну окей.

21 Янв, 19:36 #491 #631244

>>631222
Бля, и decl, и def.
Понятно, я такое в сорцах Qt видел.

99 Кб, 1919x1061

21 Янв, 20:12 #492 #631254

>>631222
Вот так примерно будет правильно?

Ответы: >>631255

21 Янв, 20:13 #493 #631255

>>631254
Ну и мамку тоже, и типа логика пердежа будет независима от субъекта.

Ответы: >>631300

21 Янв, 20:17 #494 #631257

>>631194
>Первоочередная задача PIMPL - ускорение компиляции
блядь, что ты несешь?? кто сейчас заморачивается скоростью компиляции??
PIMPL нужен для библиотек, чтобы можно было бы менять внутренности скрытого класса, не ломая ABI

>Вместо инклуда пишут просто объявление, что есть такой class Trukhany
бляяяяяядь, это всего лишь forward declaration, а не PIMPL

Ответы: >>631318

21 Янв, 20:19 #495 #631259

>>631194
читай хотябы вику: https://en.wikipedia.org/wiki/Opaque_pointer

Ответы: >>631260, >>631322

21 Янв, 20:20 #496 #631260

>>631259
Кстати, я вот хотел ему сказать за эту статейку и за fragile binary interfaces, но разве одно отменяет другое? Быстрая компиляция действительно имеет место.

21 Янв, 20:22 #497 #631261

Окончательно меня запутали, короче.

21 Янв, 20:24 #498 #631262

Things to Remember
• The Pimpl Idiom decreases build times by reducing compilation dependencies
between class clients and class implementations.

У Мэйерса вот написано про время компиляции.
А он тоже не хуй с горы, как бы.

21 Янв, 20:34 #499 #631269

Как передавать инфу из соседнего класса?
К примеру, хочу сделать так, чтобы у меня файл читался и выводился на экран, но чтобы при этом чтение файла было в соседнем классе.
Т.е.
Файл 1.cpp должен пользовать файл 2.cpp чтобы вызвать функцию открытия файла.
А файл 2.cpp должен заюзать 1.cpp чтобы вывести это дело на экран. Данных предполагается много, поэтому return (переменная с дохуя текста), не хотелось бы юзать.
Подключать "друг в друга" мечта /b компилятор, естестна не дает

Ответы: >>631270, >>631272, >>631282, >>631405

21 Янв, 20:35 #500 #631270

>>631269
Чем плох ретурн?

Ответы: >>631276

21 Янв, 20:37 #501 #631272

>>631269
Hui::print(Pizda::read())?

Ответы: >>631276

21 Янв, 20:39 #502 #631275

Короче, я понял, ты описал Firewall, а он лишь частный случай пимпла.

Ответы: >>631333

21 Янв, 20:40 #503 #631276

>>631270
>>631272
Не хотел признаваться, но придется.
Не осилил QSettings, решил писать свой костыль (заодно научиться парсить файлы - тип оправдание).
А там надо прочитать файл, и потом на основе его раскидать параметры в файле, заправляющем гуями.
Можете обоссывать

Ответы: >>631278, >>631279, >>631280

21 Янв, 20:42 #504 #631277

Так перепиши, там хуйни на 2 минуты с докой

21 Янв, 20:42 #505 #631278

>>631276
Что пишешь, кстати?

Ответы: >>631283

21 Янв, 20:42 #506 #631279

>>631276
А какие проблемы с QSettings?

Ответы: >>631283

21 Янв, 20:43 #507 #631280

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

Ответы: >>631281, >>631283

21 Янв, 20:45 #508 #631281

>>631280
Я бы использовал хаскель.

21 Янв, 20:45 #509 #631282

>>631269
Передавай частями. Тоесть 1.cpp хочет отобразить файл, он создает объект 2.cpp, передает уме себя как делегата (или кого-то специально обученого быть делегатом). 2.срр читает файл, и каждые n байт отдает делегату. Еще можно просто общий буфер использовать, но там по-моему больше нюансов всплывает.

Ответы: >>631284

21 Янв, 20:46 #510 #631283

>>631279
Первое и основное - прочитал джва раза, понял что ничего не понял.
Второе - оно как-то странно раскидывает конфиги - в винде в реестр, в линухах - в ini. Хотя видел упоминание второго режима. Но тут вступает первый пункт в игру.

>>631278
Мокропиську для работы под себя, чтобы удобней было.

>>631280
Хотел бы рискнуть, но мне бы работающую версию поживее. Да и опять же, помимо qt нужно будет и перл тянуть сверху (предполагается помимо как на линухах и на винде пользовать еще)

Ответы: >>631285

21 Янв, 20:47 #511 #631284

>>631282
Я только вкатился (не профессия, решил себе жизнь упростить прост, поебавшись много и заранее), поэтому для меня это пока... сложновато.

21 Янв, 20:47 #512 #631285

>>631283
Ну на винде реесто, а на линупсе в конфиги.
А что не так то?

Ответы: >>631287

21 Янв, 20:49 #513 #631286

Оп, ты учёл эти советы при составлении шапки? Там список кидал. Ещё есть время что-то исправить.
https://arhivach.org/thread/135285/#618203

Ответы: >>631342

21 Янв, 20:49 #514 #631287

>>631285
Единый конфиг проще для бэкапа, тем более в случае с виндой и реестром, имхо.

Ответы: >>631289

21 Янв, 20:52 #515 #631289

>>631287
Ок. Тогда чем плох JSON?

Ответы: >>631290, >>631292, >>631296

21 Янв, 20:53 #516 #631290

>>631289
Тем что я о нем не знал.
Буду смотреть сейчас, спасибо.

Ответы: >>631292

21 Янв, 20:55 #517 #631292

>>631290
>>631289
Тем, что QSettings предоставляет унифицированный доступ к конфигам настроек без ебли?

Ответы: >>631295, >>631296

21 Янв, 20:56 #518 #631293

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

Ответы: >>631297

21 Янв, 20:58 #519 #631295

>>631292
Ну кусеттингс его не устроил же.

21 Янв, 20:58 #520 #631296

>>631292
Честно - читал вчера документацию. Пробовал. Не пришло осознание. Сейчас почитаю по совету этого >>631289 анона. Наступит просветление - переведу. Или нет. Не знаю (один хрен не в продакшн же)

Ответы: >>631305

21 Янв, 20:58 #521 #631297

>>631293
По идее делегат - это лямбда. Функция, которая видит свое окружение.

Ответы: >>631304, >>631343

21 Янв, 21:00 #522 #631298

> Тред в бамплимите
> Скорость постинга возрастает в 10 раз

Ответы: >>631299

21 Янв, 21:00 #523 #631299

>>631298
Это нормально.

21 Янв, 21:00 #524 #631300

>>631255
В целом да, unique_ptr позволяет. Есть такой нюанс, что для безопасности лучше не использовать голый unique_ptr, потому что там может быть nullptr, или, к примеру, кто-то может внезапно заменить объект. Удобнее всего сделать класс у меня это firewall, который содержит unique_ptr и самостоятельно инициализирует указатель, а после создания гарантирует, что его никто не изменит. Поэтому и надо разделение на decl и def - деструктору и конструктору нужна полная инфа о бате, поэтому def включается уже в .cpp, когда это известно.

21 Янв, 21:04 #525 #631304

>>631297
Так лямбда она и есть лямбда
А делегат при чем?

Ответы: >>631308

21 Янв, 21:05 #526 #631305

>>631296
Лол, те же яйца, только в профиль.
На выхлопе ты изобретешь кусеттингс, понимаешь, где ты себя наебал?

Ответы: >>631311

21 Янв, 21:07 #527 #631308

>>631304
Делегат необязательно лямбда, блять.
Грубо говоря, делегат это каллбек. Насколько я понял.

Ответы: >>631310

21 Янв, 21:09 #528 #631310

>>631308
В дишке есть function и есть delegate.
Разница в том, что function видит только свои параметры, а делегат может видеть то, что снаружи.

То есть, std::function, которая чего то снаружи захватывает - и есть делегат.

Ответы: >>631312

21 Янв, 21:09 #529 #631311

>>631305
Я понимаю твой настрой.
Но прошу учитывать мою зеленость и твой укор - для меня тоже новая информация.
Также меня смутила эта статья: http://habrahabr.ru/post/149085/ хоть я и понимаю, что там для меня ничего полезного (на данном этапе)

21 Янв, 21:10 #530 #631312

>>631310
[this] или [&] да?

Ответы: >>631313

21 Янв, 21:10 #531 #631313

>>631312
Вроде того.

Ответы: >>631317

21 Янв, 21:11 #532 #631317

>>631313
Спасибо.

21 Янв, 21:11 #533 #631318

>>631257
>кто сейчас заморачивается скоростью компиляции?
Пару тредов назад была ссылка на презентацию команды яндекс-браузера. У них он компилировался "два часа на хорошем макбуке". Ты не с ними работаешь, часом?
>чтобы можно было бы менять внутренности скрытого класса
Это одно и то же, лол. В случае библиотек просто цена выше - придется перекомпилировать не половину проекта, а все проекты, юзающие библиотеку.
>это всего лишь forward declaration
Ну. В PIMPL-обертке же есть указатель на имплементацию, поэтому требуется forward declaration, иначе не скомпилируется.

Ответы: >>631320

21 Янв, 21:15 #534 #631320

>>631318
Блин.
This technique is described in Design Patterns as the Bridge pattern. It is sometimes referred to as "handle classes",the "Pimpl idiom" (for "pointer to implementation idiom"),"Compiler firewall idiom", "d-pointer" or "Cheshire Cat", especially among the C++ community.

Почему чеширский кот и d-ptr? Особенно д, в Qt сырцах ввеееезде d, что он символизирует?

Ответы: >>631352

21 Янв, 21:17 #535 #631322

>>631259
Вряд ли я оттуда это спиздил. ЕМНИП, я выработал такой подход на основе Мейерса, когда хотел повторно использовать эту хуйню.

Ответы: >>631328

21 Янв, 21:19 #536 #631328

>>631322
Ну так это уже частный случай, лол.
В чистом пимпле это не нужно, нужна скорость компиляции и скрытие от пользователя.
А то что можно многоразово юзать - это уже фишечка. Отталкиваться нужно от ситуации, ящитаю. Если нету бати и мамки - то зачем плодить еще два файла :)

21 Янв, 21:22 #537 #631333

>>631275
Да. Суть в том, что надо баланс между повторным использованием и специализированностью к твоей задаче. PIMPL можно сделать по-разному, и вообще граница между ним и другими подходами с внедрениям зависимости оче размыта. Можно каждый раз делать два класса, форвардить методы и получать PIMPL с идентичным интерфейсом. Или вынести только часть методов. А я зделал упор на повторное использование, но ценой некоторого фиксирования конкретной реализации.

Ответы: >>631335

21 Янв, 21:23 #538 #631335

>>631333
Во-во, именно, баланс исходя из ситуации.

21 Янв, 21:29 #539 #631342

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

Литературу как раз сейчас смотрю, возможно, успею что-то впилить уже в этом перекате.

21 Янв, 21:30 #540 #631343

>>631297
Она не видит же, если не делать захват.

Ответы: >>631348

21 Янв, 21:31 #541 #631346

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

21 Янв, 21:31 #542 #631348

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

Ответы: >>631356

21 Янв, 21:35 #543 #631352

>>631320
Чеширский кот потому что типа видно только улыбку-обертку, как в сказке про Алису. Алсо, там много разных названий и много разных деталей. Я стараюсь как-то систематизировать это, а не мешать в кучу. Конкретно под мостом у банды подразумевался случай с немного другой мотивацией - разделением иерархий интерфейсов и реализаций, чтобы не плодить классы. А у Скотта pimpl решает именно проблему скорости компиляции, поэтому я обычно различаю эти понятия. Но вообще это просто вопрос терминологии, можно и не заморачиваться.

Ответы: >>631399

21 Янв, 21:39 #544 #631356

>>631348
Вики вообще говорит, что делегат это "безопасный указатель на функцию". Зачем, кстати, тянуть в кресты лишнее понятие из шарпа? Есть лямбды, есть функторы, есть function wrappers, хуле еще надо?

Ответы: >>631357, >>631360

21 Янв, 21:41 #545 #631357

>>631356
Разве это не абстрактное, не зависящее от языка понятие?

Да и сабж в крестах появился недавно, лет 5 назад всего. Всякие бусты не смотрел.

21 Янв, 21:42 #546 #631360

>>631356
>безопасный указатель
оксюморон

21 Янв, 22:00 #547 #631379

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

21 Янв, 22:17 #548 #631399

>>631352
Одно идет со вторым, лол. Компиляция и разделение. Велкам ту исходники Qt.

Ответы: >>631421

21 Янв, 22:17 #549 #631404

А нахуя перекоты такие частые? 500 постов на микротематике всего-то

Ответы: >>631410

21 Янв, 22:18 #550 #631405

Ребят, спасибо за помощь и за то что заставили осилить таки QSettings (вроде управился, получается)

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

Всем доброго времени суток.

>>631269-кун

Ответы: >>631408

21 Янв, 22:19 #551 #631408

>>631405
Ну вот :3 Хули там, записать-прочитать, группу открыть-закрыть, сохранить, открыть.

21 Янв, 22:20 #552 #631410

>>631404
Все любят кресты, бамплимит быстро наступает. Скоро джаву с пхп обгоним.

Ответы: >>631413

21 Янв, 22:21 #553 #631413

>>631410
Еще работу по ним найти.

21 Янв, 22:26 #554 #631421

>>631399
Зачастую да, но вообще это совершенно разные вещи, так что не обязательно. Например, может быть pimpl без разделения (если impl - конкретный класс без наследования от абстрактного интерфейса, то так и есть: сменить его в рантайме не получится, но зато работает немного быстрее без виртуальности), а может быть разделение без pimpl (когда в силу легкости абстрактный интерфейс отделенной части инклудят сразу, чтобы иметь возможность звать его методы прямо из хэдера).

21 Янв, 23:13 #555 #631472

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

Ответы: >>631499

21 Янв, 23:37 #556 #631499

>>631472
Элементарно. Когда тебе что то нужно - ищешь это в составе Qt и из хуень оттуда, как из кирпичиков, херачишь прогу.

А там есть практически все.

Ответы: >>631502

21 Янв, 23:40 #557 #631502

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

Ответы: >>631503

21 Янв, 23:41 #558 #631503

>>631502
Ну и что такого. Суть погромирования - постоянно что то перепиливать. В мире постоянно меняющихся хуйнянеймов.

21 Янв, 23:51 #559 #631506

>we can ship only headers and binaries instead .cpp
Как это сделать?

Ответы: >>631523

22 Янв, 00:21 #560 #631523

>>631506
.h и .lib/.a/.dll/.so Гугли статические и динамические библиотеки

Ответы: >>631525

22 Янв, 00:22 #561 #631525

>>631523
Это я туплю уже. Сорян.

22 Янв, 04:03 #562 #631601

Ребят, я тупой, не могу установить VS, а точнее - не хочет устанавливаться .net framework 4.6.1. Что делать? Окна версии 8.1. Отдельно пытался установить - тоже какая-то проблема у него.
лог ошибки для фреймвока:
OS Version = 6.3.9600, SP = 0.0, Platform 2
OS Description = Win81 - x64 Enterprise Edition
MSI = 5.0.9600.17905
Windows servicing = 6.3.9600.17709
CommandLine = D:\9b9e4e20fea3f3ccdd3319a1\\Setup.exe /x86 /x64 /redist
Using Simultaneous Download and Install mechanism
Operation: Installing
Package Name = Microsoft .NET Framework 4.6.1 Setup
Package Version = 4.6.01055
User Experience Data Collection Policy: AlwaysUploaded
Number of applicable items: 6
RmShutdown failed with error: 351
RmShutdown failed with error: 351
Exe (D:\9b9e4e20fea3f3ccdd3319a1\SetupUtility.exe) succeeded.
Exe Log File: dd_SetupUtility.txt
Exe (D:\9b9e4e20fea3f3ccdd3319a1\SetupUtility.exe) succeeded.
Exe Log File: dd_SetupUtility.txt
Exe (D:\9b9e4e20fea3f3ccdd3319a1\x64-Windows8.1-KB3102467-x64.cab) failed with 0x490 - Element not found. .
Final Result: Installation failed with error code: (0x00000490), "Element not found. " (Elapsed time: 0 00:04:12).

Ответы: >>631664

22 Янв, 09:00 #563 #631664

>>631601
>x64-Windows8.1-KB3102467-x64.cab) failed with 0x490 - Element not found
Ну очевидно же, что надо поставить эту обнову вручную. Найди ее в центре обновления или скачай у мелкомягких с сайта.

22 Янв, 11:21 #564 #631752

НОВЫЙ ТРЕД
https://2ch.hk/pr/res/631744.html (М)
https://2ch.hk/pr/res/631744.html (М)
https://2ch.hk/pr/res/631744.html (М)

23 Янв, 16:43 #565 #632798

>>622611 (OP)
><устарело> Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004)
Котаны, насколько устарело? У меня издание 2006 года (4е издание). Легко читается. Есть ли смысл учить по этой книге а потом добрать знаний по новшествам либо лучше сразу брать новую кригу? эта в бумажном варианте, а читать с монитора ну совсем не круто
При этом паралельно смотрю разные видео на тытрубе, кстати.

23 Янв, 16:48 #566 #632801

>>622611 (OP)
Вот вы мне поясните, почему, если С++ так охуенен, в перепись треде все нормальные зарплаты у тех кто пишет на php и JS а с плюсами там всего пара человек???

Тред утонул или удален.
Это копия, сохраненная 31 января 2016 года.

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

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

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion