Сохранен 511
https://2ch.hk/pr/res/566041.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Оффициальный™ традиционный® C++ тред #10 ЮБИЛЕЙНЫЙ

 Аноним 26/10/15 Пнд 09:40:35 #1 №566041 
14458416353340.gif
Здесь кладбище для веривших когда-то,
Что код не должен быть переносим.
От байтоебства к жизни нет возврата -

Задачам ты найдешь ответ своим
Без утоленья помысла иного,
Который в сердце у тебя таим.

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

И вскоре со слезами на глазах,
Средь ста платформ терзанием объятый,
Тщась побороть пред оверхедом страх,

Будешь хулить свой инструмент проклятый.


FAQ:

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

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

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

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

Литература:

Для нюфань:
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется.
Стэнли Липпман, Жози Лажойе и Барбара Му - Язык программирования 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
Скотт Мейерс - Effective Modern C++ (на ангельском) (2015) - https://goo.gl/uImH0J
Скотт Мейерс - Эффективное использование 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/n4527.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++. Справочник разработчика (2003) - https://goo.gl/0M4NpG
Роберт Седжвик - Фундаментальные алгоритмы на C++ (2001) - https://goo.gl/4jwxSl (части 1-4), https://goo.gl/yDuQgG (часть 5)
Ариндам Мукерджи - Learning Boost C++ Libraries (на ангельском) (2015) - https://goo.gl/b0gPN1

Ссылки:

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

Куда писать код:

Под шиндошс удобно использовать 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, например, Code::Blocks (sudo aptitude install codeblocks) и работать в ней.

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

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

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

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

Йоба-набор библиотек, способный удовлетворить даже самые скотские фантазии - http://www.boost.org
Библиотека для удобной высокоуровневой работы с сетью (ахтунг! утягивает за собой boost, openssl и даже Аллаха) - https://casablanca.codeplex.com
Простая в обращении библиотека для работы с графикой и аудио - http://www.sfml-dev.org

И многое другое - http://en.cppreference.com/w/cpp/links/libs

Памятка:

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

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

Старший брат: >>518562 (OP)
Предыдущий: >>559303 (OP)
Аноним 26/10/15 Пнд 09:41:58 #2 №566042 
Добавлены ссылки на блоги и FAQ по языку.

Предыдущие треды на архиваче:
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/
Аноним 26/10/15 Пнд 11:00:59 #3 №566081 
Я нафаня. Сибляди утонули кудато, поэтому я здесь. Есть вопросы по структурам:

Если я создал указатель на структуру, например struct MyStruct* p_ms. Сработает ли free( p_ms ), память освободится?
Должны ли быть поля такой структуры, тоже ссылками или нет?
Аноним 26/10/15 Пнд 11:21:10 #4 №566090 
>>566081
Ты такой командой не создашь структуру. Это просто указатель, в котором мусор. Ты даже еще не определил саму структуру, только объявил, указав struct MyStruct, что твой указатель смотрит на нечто с пользовательским типом MyStruct. Пока ты не положить туда выделенный malloc/calloc/realloc указатель на на самом деле созданный экземпляр такой структуры, free вызывать нельзя, пиздец будет. Алсо, мне кажется, что ты путаешь объекты и классы. Сущность "struct MyStruct" это как бы метаобъект, тип. В программе ему ничего не соответствует, если ты не создаешь его экземпляров. А указатель должен смотреть на его экземпляр. Представь, что у тебя есть тип int, а есть числа типа int, это же разные вещи. Со структурами то же самое, и для работы с их типами ты не можешь применять free и всякое такое, как в пистоне или языках с интроспекцией. Если уж ты создал тип структуры, то никак его не удалить, увиденное не развидеть, в общем.
Аноним 26/10/15 Пнд 11:21:52 #5 №566092 
>>566081
Если выделил через malloc то освободится. Без разницы поля указатели или нет, только если указатели нужно освободить то что по ним находится. Не используй "ссылка" как синоним слова "указатель".
Аноним 26/10/15 Пнд 11:26:59 #6 №566093 
>>566090
>>566092
Спасибо, почитал всякие статейки, нашел там что надо делать:

struct MyStruct* p_ms = malloc( sizeof( MyStruct ) );

После чего можно таки делать free( p_ms );
Аноним 26/10/15 Пнд 13:28:08 #7 №566142 
>>566081
>Я нафаня. Сибляди утонули кудато, поэтому я здесь.
Шапка треда, самый конец:
>>Старший брат: >>518562 (OP) (OP)
Там ещё аж целых 10 постов до бамплимита.

>p_ms
Petrosyan.png
Аноним 26/10/15 Пнд 13:38:09 #8 №566149 
Хочу выучить с++, немного знаком с джаба-скриптом, но совсем немного. Но веб мне не очень интересен, JS вообще случайно начал осваивать дошел до основ ООП, могу запилить регистрацию на сайте и всякие несложные дргие штуки, а вот в погромисты хочется записаться. Таки вопрос: обязательно мне к прочтению Кнут и архитектура пеки? Когда-то еще учил паскаль, но нихрена не помню. Думаю делфи еще обмазаться, под прочтение "Искусства программирования", а уже после этого читать учебники непосредственно по срр. чтобы структурированно было.
Или лучше все в одну кучу? то есть учебник по с++, Кнут, архитектура, а делфи не нужен

Мимо нюфаг
Аноним 26/10/15 Пнд 15:46:14 #9 №566228 
14458635740600.jpg
>>566142
мен струация
Аноним 26/10/15 Пнд 15:48:49 #10 №566231 
>>566149
Делфи не нужен, если кмеешь в жс. Смотришь на архитектуру пеки, оси и чистый си. Когда немного разберешься, начинай кресты. Кнута и всякие алгоритмы можно учить независимо, ибо любые алгоритмы оттуда сложнее, чем любые, которые тебе понадобятся для изучения языка.
Аноним 26/10/15 Пнд 16:05:56 #11 №566235 
>>566231
>Смотришь на архитектуру пеки, оси
Юслесс хуйня. Кнут тоже довольно бесполезен. Кучу времени прососешь, а пользы особо не будет. Кормена почитай местами, да и всё.
Аноним 26/10/15 Пнд 16:23:21 #12 №566243 
>>566235
Да ты охуел, погроммировать эффективно не получится у него без хотя бы базовых знаний о том, как внутри все устроено. http://платиновая_ссылка_на_джоэля
Аноним 26/10/15 Пнд 16:30:27 #13 №566253 
>>566243
Максимум, что понадобится знать - это что-то про память и про представление чисел. Больше ничего ен могу придумать.
Аноним 26/10/15 Пнд 16:44:06 #14 №566260 
>>566253
>Больше ничего ен могу придумать
Это потому что ты ничего сложнее laba3.cpp не писал. cache-friendly алгоритмы, параллелизм, сокеты и сетевое взаимодействие, ассемблерные вставки, cpu vs gpu, ну ты понел.
Аноним 26/10/15 Пнд 17:04:30 #15 №566277 
>>566260
>параллелизм
Там требуются знания, уровня НУ, КАРОЧ, МОЖНО МОЖНО ИСПОЛЬЗОВАТЬ НЕСКОЛЬКО ПРОЦЕССОВ, ВОТ))0)
>сокеты и сетевое взаимодействие
Опять же, знания на уровне НУ, ЕСТЬ ПОРТЫ ТАМ БЛЯТЬ, НУ И ПО НИМ КАРОЧ ПОДКЛЮЧАЕШЬСЯ))
>ассемблерные вставки
Ну, вот насколько они юзабельны, я не знаю, да.
>cpu vs gpu
Это уже не совсем с++. Вернее, там уже нехилые расширения и вообще другой компилятор.

Аноним 26/10/15 Пнд 17:06:45 #16 №566279 
>>566277
Вот именно, что на диванном уровне достаточно того, что ты написал. А потом тебя просят решить задачу, которую еще никто не решал, и начинается ебля с глубоким погружением.
Аноним 26/10/15 Пнд 18:33:22 #17 №566329 
>>566277
>> параллелизм
>Там требуются знания, уровня НУ, КАРОЧ, МОЖНО МОЖНО ИСПОЛЬЗОВАТЬ НЕСКОЛЬКО ПРОЦЕССОВ, ВОТ))0)
И потом после таких пидоров надо ковыряться в дампах и выяснять, почему оно виснет или падает, когда несколько потоков пытаются в один ресурс.
Аноним 26/10/15 Пнд 19:39:44 #18 №566368 
>>566260
А где откопать всю эту информацию у тебя под спойлером? Нужен ли скилл матана соответственный под чтение алгоритмов?
Аноним 26/10/15 Пнд 19:43:34 #19 №566369 
>>566368
http://www.dmoz.org/World/Russian/Компьютеры/Программирование
Аноним 26/10/15 Пнд 19:49:57 #20 №566370 
>>566369
Я в раздел интернет зашел и хотел позыреть сетевое взаимодействие, допустим. Но там его нет, а только языки разметки и как сайтом управлять. Что я не так делаю?
Аноним 26/10/15 Пнд 19:58:25 #21 №566374 
>>566370
Друг, скажи.
Аноним 26/10/15 Пнд 20:23:51 #22 №566387 
>>566279
Ну это совсем толсто. Все знают про такое.
>>566374
>>566370
Не слушай этого пидараса. Не нужно тебе знать, как работает компьютер блять. Если ты не собираешься никакой низкоуровневой хуйней заниматься, то просто начни изучать какой-нибудь язык и почитай начало Кормена про сложность алгоритмов, затем там же почитай про структуры данных, про графы, комбинаторику. Дальеш сам поймешь что делать дальше и чем хочешь заниматься.
Никакие книжки про УСТРОЙСТВО КОМПЬЮТЕРА тебе нахуй не нужны.
Аноним 26/10/15 Пнд 20:31:01 #23 №566390 
>>566387
Я не тот, о ком ты возможно думаешь, просто мимопроходил, но тоже ньюфаг. И четко решил, что мне интересно было бы узнать как устроено сетевое взаимодействие (не физическая часть офкорс), заодно и ещё чего-нибудь, ассемблерные вставки было бы круто, но надо знать когда их применять и ваще дочитать Калашникова. Архитектуру пеки более менее знаю, в любом случае Таненбаум под боком есть.
Аноним 26/10/15 Пнд 20:36:34 #24 №566391 
>>566390
Есть там сайты с книгами, есть. Кто ищет, тот найдёт.
Аноним 26/10/15 Пнд 20:41:17 #25 №566392 
>>566368
>>566374
Это >>566369 не я был. Тебе нужно всего-то осилить две книги Таненбаума - оси и архитектура компьютера так и называются. Это общепризнанная годнота, но они довольно длинные, так что можешь читать неинтересные места по диагонали. Или глянь 4-5 тред на архиваче, там я вбрасывал ссылку на ВМКшный курс, там то же самое, но сжато.

>>566387
>все знают про такое
Эффект Даннинга-Крюгера, братюнь.
>Никакие книжки про УСТРОЙСТВО КОМПЬЮТЕРА тебе нахуй не нужны, если твоя мечта - стать веб/тырпрайз макакой и клепать формочки всю жизнь
Пофиксил тебя.
Аноним 26/10/15 Пнд 20:44:36 #26 №566393 
>>566391
Может быть и есть, нашел citforum, там вроде по сетям есть что-то, но я не имею никакого представления в каком порядке читать эти статьи/книги, чтобы понять.
Аноним 26/10/15 Пнд 20:46:28 #27 №566395 
>>566393
Про сети внезапно тоже есть Таненбаум компьютерные сети.
Аноним 26/10/15 Пнд 20:47:30 #28 №566396 
>>566395
Я в курсе, только там половину книги идет рассказ о физической части сетей.
Аноним 26/10/15 Пнд 20:51:11 #29 №566399 
>>566396
Ну а хуле, в рамках стека протоколов там все разжевано вплоть до уровня представления данных. А все, что выше, это уже платформозависимая хуйня, и там либо очень краткий универсальный материал сокеты, MPI всякое, который легко нагуглить и осилить, либо совсем высокоуровневая хуйня, которая у каждой библиотеки своя, и нужно читать доки к ним.
Аноним 26/10/15 Пнд 21:03:43 #30 №566407 
>>566399
Тут остается только обмазаться Таненбаумом. Как я понимаю ещё и ОС прочесть придется, знаний архитектуры на уровне "есть регистры, основная память, шины, через которые повязаны периферийные устройства" нихуя не хватит, правильно я понимаю?
Аноним 26/10/15 Пнд 21:13:51 #31 №566410 
>>566407
Ага. И еще в книге про оси есть много инфы про сети, на самом деле.
Аноним 26/10/15 Пнд 21:44:36 #32 №566435 
Вопрос: где есть хорошие тесты и задачки на знание С++ и алгоритмов? Чтобы только бесплатно и примерно соответствовало тому, что бывает на собеседованиях.
Аноним 26/10/15 Пнд 21:51:27 #33 №566441 
>>566435
В жопе. В жопе, братан...
Аноним 26/10/15 Пнд 23:01:48 #34 №566487 
посоны, а как вы обрабатываете ошибки выделения памяти?
Аноним 26/10/15 Пнд 23:04:04 #35 №566489 
>>566487
catch (std::bad_alloc& ba)
Аноним 26/10/15 Пнд 23:05:29 #36 №566492 
>>566489
а дальше?
алсо, в каком месте ловите?
Аноним 26/10/15 Пнд 23:20:13 #37 №566508 
>>566492
От архитектуры зависит же. Но обычно в обработчике наиболее крупной из вложенных задач, в которых не смогло выделиться. Или в наиболее вложенной из тех, которые гарантируют безотказность. Или во внешней функции потока, если не хочется ебаться, и можно позволить в таком фантастическом случае всему упасть.
Аноним 27/10/15 Втр 00:28:23 #38 №566587 
Репостну сюда, эта паста просто не имеет права пропасть.

>ты, наверное, читал рассказ про Рипа Ван-Винкеля. Напомню, на всякий случай, он заблудился в лесу, потом играл в кегли с Генри Гудзоном, ну или приснилось что играл. Проснулся он в лесу - смотрит - "хуе-мое!" - а у него борода отросла. Оказалось, что проспал 100 лет и как-то отстал от жизни. Ну а как нагонять? Никакой актуальный ко времени своего пробуждения язык (вроде того же эмелеговна) он не осилил и пришлось ему собственноручно повторить всю историю языкостроения. Начал он с говняшной, потому что до того как в лесу заплутал он, видимо, писал на сишке прошивки для фонографов и телеграфов. Прошло лет десять, он здорово продвинулся и переизобрел ЦЕПЕПЕ, но шутку про инкремент ему переизобрести не удалось, потому он назвал язык D. Тут мы вводим в повествование нового героя - румынского фокусника и рукоблуда. Всю жизнь он оттачивал мастерство лепки троллейбусов из хлеба, удаления гланд через жопу и построения изб из одних гвоздей - без единого бревна. Больше всего потенциала он видел в ЦЕПЕПЕ, но тот сыграл с ним злую шутку. Иллюзионист проштудировал стандарт и быстро напридумывал всяких диковин, но далее выяснилось, что компиляторов ЦЕПЕПЕ поддерживающих стандарт, тоесть компилирующих именно ЦЕПЕПЕ не существует! Впрочем, один компилятор ЦЕПЕПЕ ему таки найти удалось, но никто кроме него и автора компилятора о нем не знал. Впрочем, это позволило фокуснику написать статьи, тексты, посты, книги и широко прославиться в узких кругах. Но писателства ему для полного счатья не хватало. Так бы фокусник и закончил свои дни в печали, но однажды, проходя по своей дремучей трансильвании с осиновым колом в руках, набрел на землянку отшельника. Заросший курлибрейсами старикан с дикими глазами, не замечая ничего вокруг, вытачивал нечто, как две капли воды, похожее на ЦЕПЕПЕ. Великий румынский писатель с опаской огладелся по стронам. Ни представителей мегакорпораций, ни хищных мозолеедов, ни сплоченных рядов комитетских пидарасов, которые могли бы помешать писателю инженерить что-то кроме человеческих душ, не было видно. "Удача!" - Подумал наш новый герой - "теперь я могу не просто придумывать анальные трюки для существующего языка, но приложить свою ловкую руку к созданию языка, который идеально для анальных трюков приспособлен!". Фокусник осторожно окликнул отшельника - тот посмотрел на первого, за много лет, увиденного человека со страхом и недоверием. Румынский фокусник показал фокус "отрывание пальца". "Пиздато!" - оценил отшельник. Автор текстров и постов хищно улыбнулся: "Хочешь, и тебя научу?". "А то!" - ответил отшельник. И все заверте
Аноним 27/10/15 Втр 02:32:12 #39 №566658 
Есть где сборник задач с собеседований аля найти в массиве элемент, у которого нет пары?
Аноним 27/10/15 Втр 02:44:02 #40 №566660 
>>566658
Codility и hackerrank
Аноним 27/10/15 Втр 02:54:39 #41 №566663 
>>566660
>codility
Оно в СНГ ведь вообще не котируется, не так ли?
Аноним 27/10/15 Втр 02:58:14 #42 №566664 
>>566660
За hackerrank тысячу чаев тебе, няша!
Аноним 27/10/15 Втр 09:31:03 #43 №566724 
>>566663
Зато задачи там отличные, и обучающие материалы есть.
sageАноним 27/10/15 Втр 09:34:15 #44 №566729 
>>566587
Про лямбду и Страуструппа уже нашел?
Аноним 27/10/15 Втр 09:35:37 #45 №566730 
>>566658
Тут еще есть https://learn.hackerearth.com/questions/
Аноним 27/10/15 Втр 11:13:38 #46 №566780 
>>566658
Вот есть подборочка, хотя тут скорее больше не С++ задач
http://tproger.ru/articles/problems/
Вот ещё есть сабреддит с задачами каждую неделю
https://www.reddit.com/r/dailyprogrammer
Аноним 27/10/15 Втр 11:17:03 #47 №566781 
>>566587
В /ph/, быдло.
Аноним 27/10/15 Втр 11:37:55 #48 №566794 
14459350754910.jpg
Немного не туда но всё же:

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

Как я говорил, единственное, что меня беспокоит, это генерация. Выглядит примерно как на пике: черные клетки — комнаты, белые — стены.

Какие есть идеи? Необязателен код, сама суть важна.
Аноним 27/10/15 Втр 12:01:55 #49 №566814 
>>566780
>tpproger
Блеванул с этих вопросов.
Аноним 27/10/15 Втр 12:04:31 #50 №566819 
14459366711070.png
>>566794
А такой вариант возможен?
Аноним 27/10/15 Втр 12:07:37 #51 №566824 
>>566794
Можно попробовать генерить сначало точки наугад в 2d, а затем проходить по горизонтальным и вертикальным и соединять, например, первые попавшиеся точки между собой. Хотя, не уверен, что будет всегда сходиться.
Аноним 27/10/15 Втр 12:18:40 #52 №566829 
>>566819

Возможно всё. Вплоть до кишки. Сейчас проблема с размерами карты, которая генерируется в зависимости от количества комнат.
Аноним 27/10/15 Втр 12:21:02 #53 №566830 
>>566819

Была у меня идея сгенерировать какую-то карту, ходить "по кругу" от первой точки, смотря, есть ли на этом "круге" хоть одна комната. Если есть, то оставлять этот размер. Если нет, то "обрезать". Но это звучит как откровенное говнокодерство и, как мне кажется, очень неэффективно, особенно на больших картах.
Аноним 27/10/15 Втр 12:22:31 #54 №566832 
>>566829
1. В двойном массиве в 0.0 - первая комната.
2. Ставишь вторую комнату в одном из четырёх возможных направлений, выбирается рандомно.
3. Повторяешь п.2, пока количество комнат не станет равно нужному.
4.Если в п.2 выбрались координаты, где уже есть комната, то переходишь в эту точку и высчитываешь п.2 уже там, но не вычитываешь из счётчика комнат.
5.Когда сгенерировал, ограничиваешь карту по максимальным кооринатам массива.
Аноним 27/10/15 Втр 12:28:10 #55 №566836 
>>566794
Выставляешь две точки (начало и конец), можно еще несколько ебнуть если нужны (к примеру ты хочешь чтобы сундук и ключ находились далеко от входа и выхода, и далеко друг от друга - их можно выставить сразу). Потом в случайном порядке проходишь по всем стенам. Если у стены нет соседней комнаты, или комната одна то заменяешь стену на комнату. Если соседних комнаты две, проверяешь соеденены ли эти две комнаты между собой другим путем, если не соеденены то заменяешь стену на комнату (тоесть соеденяешь их) Если уже соеденены то оставляешь стену. Если три соседа то оставляешь стену. Таким образом проходишь по все стенам (в случайном порядке, по одному разу).
Если требование по количеству комнат важно, то дальше нужно уменьшить лабиринт. Находишь путь от входа к выходу и к сундуку с ключем (если они есть) - его не трогаешь. Потом находишь случайный тупик (комнату у которой только один сосед-комната) и превращаешь его в стену. Повторяешь пока не станет нужное количество комнат. Тупики можно или сокращать в глубину, пока не дойдешь до развилки (тогда получится несколько тупиковых длинных коридоров) или понемного откусывать от каждого тупикового в случайном порядке - тогда их будет много, но коротких.
Аноним 27/10/15 Втр 13:05:47 #56 №566884 
>>566832
>>566836
Спасибо.
Аноним 27/10/15 Втр 14:49:27 #57 №566983 
>>566884
У меня есть серьезное подозрение, что во всяческих олдскульных шутерах, где была генерация уровней, это все равно делалось не такими клеточными проходами, как тут выше сказали, ибо полученные таким образом уровни гораздо более уебищные, чем сложные. Ну то есть потенциал размер карты используется очень слабо, в карту 10х10 можно уже уложить неплохой лабиринт, а клеточный проходчик сделает практически прямую несложную хуйню, просто исходя из вероятности. Мне кажется, стоит смотреть в сторону отдельного зашития небольших кусков лабиринта, которые будут готовые нескольких видов, а генератор будет иметь право только вертеть их и соединять между собой.
Аноним 27/10/15 Втр 15:11:00 #58 №566993 
http://www.amazon.com/C-Concurrency-Action-Practical-Multithreading/dp/1933988770/ref=sr_1_2?s=books&ie=UTF8&qid=1445947820&sr=1-2
Вещь? Кто читал? Хочу разобраться в параллельном программировании, в особенности на C++11, потому как на winAPI не оче понравилось.
Аноним 27/10/15 Втр 15:18:19 #59 №566999 
Ньюфаг в треде.
Более-менее совладал с этой имбой, но возник вопрос. А как делать что-то кроме консоли ?
Есть инструкции, маны по winapi ?
Аноним 27/10/15 Втр 15:25:40 #60 №567006 
>>566993
Русский перевод висит в шапке. Читаю сейчас, в общем относительно неплохо написано, но когда доходит до модели памяти начинается ад.
Еще советую на эту тему читнуть главу из ОС Танненбаума про процессы и потоки. И возможно еще про взаимоблокировку.

Кто скажет, чем передача параметра в функцию по ссылке лучше передачи по указателю?
И когда может пригодиться возврат ссылки, а то судя по этой статье http://www.e-reading.club/chapter.php/1002058/56/Mayers_-_Effektivnoe_ispolzovanie_CPP.html оно вообще нахуй не нужно, а Мейерса в этом итт треде вроде уважают
Аноним 27/10/15 Втр 15:34:27 #61 №567013 
>>566794
>Какие есть идеи?
Скачать исходник любого рогалика и посмотреть как оно работает там.
Аноним 27/10/15 Втр 15:36:12 #62 №567016 
>>566999
>Есть инструкции, маны по winapi ?
Винапи это устаревшая кривейшая поебота. Но если так хочешь, то вот http://www.winprog.org/tutorial/start.html
Аноним 27/10/15 Втр 16:00:59 #63 №567024 
>>567016
А есть что-то более продвинутое для окошек ?
Аноним 27/10/15 Втр 16:03:30 #64 №567027 
>>567024
Qt или в майкрософтовские поделия погружаться.
Аноним 27/10/15 Втр 16:03:47 #65 №567028 
>>567013
Проблема в том что нужно плясать от количества комнат. В рогаликах обычно такого нет.
Аноним 27/10/15 Втр 16:04:50 #66 №567030 
>>567024
https://en.wikipedia.org/wiki/List_of_widget_toolkits
Аноним 27/10/15 Втр 16:05:59 #67 №567032 
>>567027
>>567030
Спасибо, похоже оно мне и нужно, пойду осиливать.
Аноним 27/10/15 Втр 16:06:04 #68 №567033 
>>567028
Зато будет работающий алгоритм построения нормального лабиринта, а к нему уже можно прикрутить костыль с количеством комнат.
Аноним 27/10/15 Втр 16:53:03 #69 №567082 
14459539840190.png
>>566794
Я делал такое в ue4 на блюпринтах, лол.
Задаю размерность поля (получается многомерный массив) и количество комнат. Начинаю бродить по нему в цикле до тех пор пока не сделаю все комнаты. Генерю случайное число от 0 до 3. Числа определяют направление движения (вниз, вверх, налево, направо). Если на этом месте уже есть комната, то выбираю новое направление.
Потом в несколько проходов расставляю двери, вычисляю стартовую позицию и набрасываю всякие ништяки.
Получается пикрелейтед.

мимо вебмакака
Аноним 27/10/15 Втр 17:01:00 #70 №567088 
>>567082

Тут проблема в том, что ты не задаешь размерность поля.
Аноним 27/10/15 Втр 17:06:09 #71 №567092 
>>567088
В смысле не задаю? Размерность поля это просто два числа. Бери их где угодно, только делай проверку: влезут твои комнаты туда или нет.
Аноним 27/10/15 Втр 17:19:06 #72 №567104 
Пишу for(int i=0;i<n;i++). Знаю что делаю неправильно и ещё много где не так как надо пишу. Как правильно? И где ещё код можно упростить?
Аноним 27/10/15 Втр 17:19:10 #73 №567105 
>>567006
>>567006
Лучше в оригинале прочитаю. Время есть, заодно терминов новых нахватаюсь, подтяну технический ингриш.
Пока читаю мэйерса "Эффективный сидваплюс".
Аноним 27/10/15 Втр 17:20:36 #74 №567108 
>>567104
С хуя ли неправильно?
Аноним 27/10/15 Втр 17:22:27 #75 №567110 
>>567108
Должен быть вариант проще. И не только для циклов. Видел когда-то в этом треде и через двоеточие как-то писали. Может каким-нибудь дэфайном этот фор сделать?
Аноним 27/10/15 Втр 17:25:56 #76 №567114 
>>567104
Кстати я уже 21 день С++ изучаю и лафоре прошёл. Ещё пару видеокурсов по ОС, алгоритмам и архитектуре компьютера с ассемблером. Может пора свой мини проект намутить? В консольке простенький и чтобы до меня уже миллион раз был сделан. Есть идеи какой?
Аноним 27/10/15 Втр 17:31:55 #77 №567121 
>>567110
Ты про

std::vector<int> b {1, 2, 3, 4};
for (auto value : b)
// do stuff

это?
Аноним 27/10/15 Втр 17:32:28 #78 №567122 
>>567110
>Может каким-нибудь дэфайном этот фор сделать?
Ты там что, проходишь курс "как научиться писать говнокод за 21 день"?
Аноним 27/10/15 Втр 17:33:25 #79 №567123 
>>567121
Наверно. Я даже не знаю что такое auto. Мне какую-то конкретную книгу надо читать чтобы понять это новые упрощения или достаточно серии статей? Реквестирую.
Аноним 27/10/15 Втр 17:34:31 #80 №567125 
>>567123
Оппост для кого, блядь? Любую книгу для нюфань после 2011 года читай.
Аноним 27/10/15 Втр 17:35:34 #81 №567128 
>>567123
Если ты знаешь и умеешь в сиплюсплюс тот, который до 11 версии, то прочитай
https://mega.nz/#!LNwRCQLR!p0Cv6iL31KoXbktO-rBU-8xcpcPizSTef03LQ0DdnbU
Аноним 27/10/15 Втр 17:38:24 #82 №567132 
>>567128
Перевод есть? Или уже переведённый аналог?
>>567125
Они меня заново будут хэлоуворды учить писать.
Аноним 27/10/15 Втр 17:39:10 #83 №567133 
>>567132
>Перевод есть? Или уже переведённый аналог?

Не знаю
Аноним 27/10/15 Втр 18:00:52 #84 №567146 
Господа, читаю Майерса, такая фраза:
>Если вы заглянете «под капот» C++, то увидите, что ссылки обычно реализуются как указатели, поэтому передача чего-либо по ссылке обычно означает передачу указателя. В результате объекты встроенного типа (например, int) всегда более эффективно передавать по значению, чем по ссылке. Поэтому для встроенных типов, если у вас есть выбор – передавать по значению или по ссылке на константу, имеет смысл выбрать передачу по значению. Тот же совет касается итераторов и функциональных объектов STL, потому что они специально спроектированы для передачи по значению. Программисты, реализующие итераторы и функциональные объекты, отвечают за то, чтобы обеспечить эффективность передачи их по значению и исключить «срезку».
>Тот же совет касается итераторов и функциональных объектов STL, потому что они специально спроектированы для передачи по значению.

Но чем чревато передача вектора по ссылке? Это же нелогично: если у меня мегабайтный вектор, зачем мне плодить еще один, вызывая конструктор копирования.
Аноним 27/10/15 Втр 18:01:37 #85 №567147 
>>567146
С каких пор вектор стал итератором?
Аноним 27/10/15 Втр 18:04:03 #86 №567150 
>>567147

Разве вектор не является функциональным объектом?
Аноним 27/10/15 Втр 18:05:25 #87 №567153 
>>567150
Нет, это про функторы речь.
Аноним 27/10/15 Втр 18:06:21 #88 №567154 
>>567153

Да, я уже погуглил. Проебался малость в матчасти.
Аноним 27/10/15 Втр 18:08:34 #89 №567156 
>>567146
Ебать дебил, куда тебе Мэйерса?
Аноним 27/10/15 Втр 18:10:23 #90 №567159 
>>567156

Ну не работал я с функторами. Отъебись.
Аноним 27/10/15 Втр 18:21:18 #91 №567169 
Функтор это такая недомонада, у которого вместо операции применения функции она немного другое возвращает?
Аноним 27/10/15 Втр 18:56:42 #92 №567193 
>>567146
>вектора
>по ссылке
Я чего-то не знаю, или массивы в любом случае передаются по ссылке/указателю И по сути, им и является?
Аноним 27/10/15 Втр 18:59:02 #93 №567195 
>>567193
Нет.
Аноним 27/10/15 Втр 19:10:38 #94 №567206 
>>567195
Почему нет? Это же указатель на первый элемент. Как ты его передашь по значению?
Аноним 27/10/15 Втр 19:16:04 #95 №567209 
>>567206

Я неправильно прочёл. Массивы да, передаются по ссылкам и указателям. Но вектор - это не массив.
Аноним 27/10/15 Втр 19:16:23 #96 №567210 
>>567193
Веткор - это несколько десятков байт информации об указателе на нулевой элемент, размере и ещё о чём-то. Можно и по ссылке передать.
Аноним 27/10/15 Втр 19:20:10 #97 №567213 
>>567210
Хотя нет, когда копируешь вектор, копируются ведь и элементы.
Аноним 27/10/15 Втр 19:30:52 #98 №567221 
>>567213


Это класс-контейнер с конструктором копирования, присваивания и ещё кучей всего.
Аноним 27/10/15 Втр 19:35:27 #99 №567230 
>>567122
#define ever (;;)

for ever
{...}

Охуенно же.
Аноним 27/10/15 Втр 19:37:10 #100 №567231 
>>567210
>десятков
12 байт обычно.
Аноним 27/10/15 Втр 19:38:56 #101 №567234 
>>567169
Функтор это такой объект, у которого один из методов "избранный", и объект этот можно "вызвать" как функцию, при этом вызвав этот метод. Или, что то же самое, это функция, хранящее локальное состояние.
Аноним 27/10/15 Втр 19:42:12 #102 №567240 
Что мне устанавливать чтобы компилить в с++ под linux'ом?
Аноним 27/10/15 Втр 19:46:50 #103 №567245 
>>567240
>Под *nix, как правило, уже предустановлен компилятор gcc
Для начала рекомендую какие-нибудь капли, после долбежки в глаза помогает, говорят.
Аноним 27/10/15 Втр 19:52:03 #104 №567250 
>>567240
Gentoo.
Аноним 27/10/15 Втр 20:12:02 #105 №567261 
>>567240
А что ты уже установил?
Аноним 27/10/15 Втр 20:27:39 #106 №567279 
>>567240
clang++
Аноним 27/10/15 Втр 20:29:23 #107 №567282 
>>567230
> for ever
Значение знаешь?
Аноним 27/10/15 Втр 20:32:44 #108 №567286 
>>567282
de fine
Аноним 27/10/15 Втр 20:39:04 #109 №567296 
>>567261
Ничего. Пока вопрошаю мудрого анона о рекомендации к установке.
Аноним 27/10/15 Втр 20:43:35 #110 №567302 
>>567296
Сначала установи генту. Потом возвращайся.
Аноним 27/10/15 Втр 20:45:40 #111 №567306 
>>567302
Ну дай годик, потом гента, ну пож. А пока я буду изучать с++ на арче.
Аноним 27/10/15 Втр 20:47:23 #112 №567309 
>>567306
Ну давай на арче. уже будет. ДЕ установил? Если да то сноси. И не забуть поставить вим.
Аноним 27/10/15 Втр 20:57:01 #113 №567325 
14459686218230.png
>>567286

На всякий случай, схоронил.
Аноним 27/10/15 Втр 21:31:21 #114 №567374 
>>567325
[code]
#define forever while(true)

forever {
kap4evat()l
}
[/code]
не?
Аноним 27/10/15 Втр 21:47:19 #115 №567393 
>>567159
При чем тут функторы, даун? Путать структуру данных с паттерном - это вообще надо объебаться носков каких-то.
Аноним 27/10/15 Втр 21:50:07 #116 №567394 
>>567393

Какой, блядь, паттерн? Ты уебался?
Аноним 27/10/15 Втр 21:50:41 #117 №567395 
>>567374
while (true) не полагается использовать. Многие компиляторы ругаются, что условие цикла всегда истинно.
Аноним 27/10/15 Втр 21:56:28 #118 №567403 
>>567395
Некоторые версии микрософтовского конпелятора, ты хотел сказать? Ну он вообще у мамы странный.
Аноним 27/10/15 Втр 21:58:16 #119 №567408 
>>567394
Ага, т.е. тебе можно чушь пороть, а мне нет?
Аноним 27/10/15 Втр 21:58:46 #120 №567410 
>>567394

Ясно. Обосрался — прикинься троллем. Продолжай в том же духе, не буду мешать.
Аноним 27/10/15 Втр 21:59:06 #121 №567411 
>>567408
>>567410

Фикс
Аноним 27/10/15 Втр 21:59:35 #122 №567412 
>>567325
А чё особенного-то? Я имею в виду в de fine какая-то игра слов или что? Про for ever forever мне можно не объяснять.

>>567395
Какие, кроме MSVS C++ ?
Аноним 27/10/15 Втр 21:59:39 #123 №567414 
>>567394
Вектор с итератором путать, это нормально?
Аноним 27/10/15 Втр 22:00:28 #124 №567417 
>>567410
Обосрался тут только ты, маня, еще и на анонимной борде. Тебе дейтела или лафоре читать нужно, а не мэйерсов.
Аноним 27/10/15 Втр 22:00:56 #125 №567418 
>>567414

Да-да, только я принял вектор за функциональный объект, а не за итератор, о чем я и сразу написал. Пойди подотрись, умник :)
Аноним 27/10/15 Втр 22:02:45 #126 №567420 
>>567418
Дебил, я не знаю что ты там придумал уже, я отсылаюсь к первому твоему обосрамсу.
>>567146
>Тот же совет касается итераторов и функциональных объектов STL, потому что они специально спроектированы для передачи по значению.
>Но чем чревато передача вектора по ссылке? >Это же нелогично: если у меня мегабайтный вектор, зачем мне плодить еще один, вызывая конструктор копирования.

Во-первых, не маняврируй. Во-вторых, нашел чем оправдываться. Не знать что такое функторы? Ты учил по видеороликам на ютьюбе, что ли? Еще один повод разъебать тебя, гений.
Аноним 27/10/15 Втр 22:05:11 #127 №567423 
>>567420

На, почитай:
>>567150
До твоего вброса написал. Можешь и дальше хвататься за этот итератор, о котором я вообще ничего не сказал. Я не буду тебе мешать теперь уж точно. Доказывай себе, что ты не обосрался.
Аноним 27/10/15 Втр 22:06:33 #128 №567427 
>>567423
Ну хорошо, хорошо. Одним дегенератом больше в этом треде.
Кстати, это не ты вчера доказывал, что ссылка = указатель, пидор?
Аноним 27/10/15 Втр 22:17:04 #129 №567439 
>>567427
>что ссылка = указател
В каком-то смысле так и есть.
Аноним 27/10/15 Втр 22:18:03 #130 №567442 
>>567439
Есть только рациональное зерно в какой-то степени, но не более.
Формально - это неверно, и о таком неприлично говорить в высоком обществе, особенно на двачхека, где и обоссать могут.
Аноним 27/10/15 Втр 22:54:30 #131 №567483 
>>567412
>>567403
MSVC, борландовский старый, плюс практически любой статический анализатор.
Аноним 27/10/15 Втр 22:56:22 #132 №567485 
>>567420
Да не цепляйся ты к нему, человек разобраться хочет, хоть и ньюфаг. Благое намерение же.
Аноним 27/10/15 Втр 23:00:07 #133 №567490 
Вы заебали сраться на уровне "ты хуй - нет ты". Пиздуйте в личку с таким, засрали весь тред.
Аноним 27/10/15 Втр 23:22:32 #134 №567525 
>>567485
Простит, был неправ, конечно.
Вы уже извините.
Аноним 28/10/15 Срд 00:10:37 #135 №567577 
>>567483
У статических анализаторов включай игнор. Как кстати в этом грёбанном xcode заигнорить предупреждения об unused variable? В настройках проекта отключил уже, всё равно подсвечиваются.
Как вообще что-то в нём заигнорить?
Аноним 28/10/15 Срд 00:19:13 #136 №567590 
>>567577
Хуй знает, я стараюсь исправлять код, а не игнорить такое. Вдруг компилятор обосрется и таки выделит память, нехуй преждевременно пессимизировать.
Аноним 28/10/15 Срд 02:27:20 #137 №567680 
C++ developer(!!!)
[Requirements]
- Strong Computer Science fundamentals: Operating system concepts, Data structures and algorithms, Complexity analysis, Multithreading/concurrency, etc
- Expertise in building and maintaining large scale software systems with long life spans
Experience in building Internet scale distributed systems or high volume client/server systems
- Ability to work on different platforms or environments
- 5+ years of professional experience with C++ (C++: C++11, Boost)
- Knowledge of SQL, MongoDB, JSON/BSON, JavaScript, XML/XSLT, Web Services (REST/SOAP), Maven
Desire to work with Java

Education: B.S. Computer Science or Computer Engineering at minimum. M.S. or PhD preferred
Prior experience in program management or project leadership is desirable
Professional experience with Java (JDK/Core, Spring Framework (MVC in particular), Spring Security, JUnit, Tomcat, Apache Commons)

Это же троллинг, да? Ciklum такое вбрасывает.
Аноним 28/10/15 Срд 02:51:08 #138 №567694 
>>567680
> soap
>Desire to work with Java
В жопу.
Аноним 28/10/15 Срд 02:51:15 #139 №567695 
>>567680

обыденное говно плюс пара баззордов
небось основная логика на джаве а выскнагруженое говно на крестах
я бы может даже прошел, да только джаву в рот ебал и на хую вертел
Аноним 28/10/15 Срд 03:01:52 #140 №567701 
Что приделывать к Vim'у чтобы писать на С++? Нашел какие-то библиотеки gcc-multilib, скачал пакеты clang и bash, но что еще туда прилепить чтобы оно запустилось?
Аноним 28/10/15 Срд 03:06:22 #141 №567702 
>>567701
Google : Alexey Shmalko vim c++ ide
URLHTTP и т.д Алёна 28/10/15 Срд 09:50:17 #142 №567771 
14460150179830.jpg
Эй, сеньоры.
Слушайте, захотелось немного поработать с сетью :
Ну как с сетью, ничего серьезного
Хотел собрать\ попытаться собрать данные по пользователям вк - статистика разная и т.д :

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

Но в сетевом программировании я совсем профан :

вопрос мой такой :
на плюсах делать такое - это не микроскопом гвоздь забивать?
может быть попробовать на ПИТОНе сделать?

Или забить , потому что разницы особо не будет? (в этом случае посоветуйте матчасть, чтоли)
Аноним 28/10/15 Срд 10:00:14 #143 №567774 
Как в TableView Qt сделать сортировку столбца поклику на него? Как будет выглядеть слот?
Аноним 28/10/15 Срд 10:03:20 #144 №567777 
>>567771
С чем ты лучше умеешь работать - на том и делай. Для такой независимой от производительности хуитки лучше возьми змеюку.
Аноним 28/10/15 Срд 10:20:47 #145 №567788 
>>567777
в том то и дело что я по теме URLHTTP профан, к сожалению.
Ну и я хотел именно практику на плюсах получить : а то читаю читаю читаю,
а как до дела доходит - всё мимо.

поэтому, по мат части что посоветуешь, Если на плюсах решу делать.
*с питоном всё относительно ясно - ну т.е направление понятно.

Или просто выбрать какую нить библиотеку типа CURL и документацию читать?
Аноним 28/10/15 Срд 11:50:25 #146 №567832 
Обьясните дауну мантпуляции с адресами битов при работе с ком портом. В си было port1+3, как в vc++ это делать. Только не обоссыте
Аноним 28/10/15 Срд 11:55:27 #147 №567836 
>>567788
Курл - сишная библиотека. Из именно плюсовых могу посоветовать casablanc-у, если есть цель писать именно гуй - qt смотри, там сразу все есть.
Аноним 28/10/15 Срд 12:09:42 #148 №567844 
>>567836

Двачую Qt. Но я не могу сказать, что это хорошая практика на кресты. Почти всё сделано, бери и пользуйся.
Аноним 28/10/15 Срд 16:01:34 #149 №567937 
>>567844
В чём плохая практика-то? Что не нужно превозмогать себя и делать всё самому? почему-то распространённое мнение из-за скудной стандартной библиотеки
Аноним 28/10/15 Срд 16:06:57 #150 №567940 
14460376176130.jpg
Крестоносцы, знает кто-нибудь либу с реализацией алгоритма Метрополиса-Гастингса, желательно бы ещё опенсорцную?
Аноним 28/10/15 Срд 17:28:06 #151 №567980 
Игорь на SFML можно указывать в резюме, или зашквар если не в гейдев контору кидать cv, конечно?
Аноним 28/10/15 Срд 17:52:22 #152 №568009 
>>567937

>Что не нужно превозмогать себя и делать всё самому?

Ну вообще да, чот у меня такой стереотип в голове. Ты прав.
Аноним 28/10/15 Срд 18:03:05 #153 №568018 
>>567940
ТАКС ТАКС ТАКС, ЧТО ЭТО ТУТ У НАС? КТО-ТО РЕШИЛ В РОССИИ ЗАНЯТЬСЯ РЕНДЕРИНГОМ?
Аноним 28/10/15 Срд 18:30:57 #154 №568035 
>>567980
норам, если она выглядит не совсем уёбищьно.
покажешь, что умеешь разбираься в чужом кодедокументации. а девочкам hr-рам вообще как-то. да и менеджерам как-то. да и разрабам как-то, если проект не связан с их полем деятельности.
Аноним 28/10/15 Срд 18:40:26 #155 №568045 
>>567771
поддвачну вот этого >>567777
бери питон и вот эту https://github.com/dimka665/vk либу
будет у тебя что-то вроде
[code]
import vk

session = vk.API("vk_app_id", "login", "pass")
posts = session.user.friends("user_id")
for friend in friends: print(friend)
[/code]
user.friends от балды взял, так подсовываешь туда метод из офф. док по вк апи.
профиты: не надо ебаться с сеткой и памятью
анти-профиты: документация сосает
Аноним 28/10/15 Срд 18:41:10 #156 №568046 
>>568035
Так тащемта и думал, что всемпохуй.
Придется делать что-то более приземленное и жизненное.
Аноним 28/10/15 Срд 18:43:00 #157 №568050 
>>568046
нет, ты не совсем так меня понял.
для среднестатистической конторы нужно какое-то количество своих проектов и ключевых слов в cv. в тоже время, им практически насрать, что это за пункты и ключевые слова. глагное - ты можешь в документацию и в кодинг
Аноним 28/10/15 Срд 18:49:59 #158 №568057 
>>568050
О'кей.
Аноним 28/10/15 Срд 19:02:37 #159 №568062 
14460481576770.jpg
Эй, поцаны, позырел блог мужичеллы, который книги залпом читает, так вот, он там одну такую по крестам хвалит.
Professional C++, 3rd Edition (Marc Gregoire)
Поясните вообще за неё, нормально так? Или как земля? Может есть более лучшие?
слова блоггира по поводу книги.

Учебник по C++ с учетом нововведений C++11/14. В том числе рассматривается многопоточность, работа с регулярными выражениями, и прочие возможности стандарной библиотеки. Кроме того, автор учит отладке с помощью gdb, поиску утечек памяти, профайлингу gprof’ом (а также отладке и профайлингу с помощью Visual Studio), и многим другим практическим вещам. Есть и довольно непростые для восприятия моменты, например, написание своего контейнера по аналогии с тем, как это сделано в STL, или метапрограммирование на шаблонах.
Много говорится вообще о хороших практиках в программировании, есть главы про code style, дизайн программ в целом, модели разработки (водопадная, спиральная, вот это все), и другие подобного рода вещи. Есть даже appendix о том, как подготовиться по этой книге к собеседованию!
Я считаю, книга просто великолепная. Шикарный учебник и справочник по современному C++. Обязателен к прочтению любому программисту на этом языке, а также к перечитыванию случайных глав перед сном.
Аноним 28/10/15 Срд 19:07:23 #160 №568066 
>>568062
Блядь, да возьми и прочти пару глав, сразу поймешь уровень.
Аноним 28/10/15 Срд 19:10:04 #161 №568070 
>>568066
Прочту, если не найдется тех, кто уже читал.
Аноним 28/10/15 Срд 19:16:28 #162 №568079 
>>568070
Говно книга. Для чайников. Материал рассматривается поверхностно и отрывисто. Русская версия ужасна.

первый раз вижу эту книгу
Аноним 28/10/15 Срд 19:19:44 #163 №568082 
>>568079
> Русская версия ужасна.
говна наверни
Аноним 28/10/15 Срд 19:28:40 #164 №568102 
>>568082
А вот и элитка подъехала.
Не читаю обычно на английском что-то, если есть нормальный перевод. Так-как даже при неплохом уровне английского, всё-равно читается гораздо медленнее и приходится больше вдумываться.
Аноним 28/10/15 Срд 19:34:21 #165 №568112 
>>568102
> приходится больше вдумываться
Что, в принципе, полезно.
Аноним 28/10/15 Срд 19:40:22 #166 №568123 
>>568102
>Не читаю обычно на английском что-то, если есть нормальный перевод.
И правильно делаешь. Школьники-максималисты не нужны.
Аноним 28/10/15 Срд 20:22:35 #167 №568155 
>>568018
Мне не рендеринг нужен. Я пытаюсь накодить довольно специфический байессовский вывод на MRF с помощью MCMC, а в статистике нубоват, вот и ищу приличные реализации.
Аноним 28/10/15 Срд 21:01:12 #168 №568173 
>>568062
Раз уж такая пьянка пошла.
С чего читаете? С экрана, или читалки?
Стоит ли брать читалку, если рассчитываешь использовать только для книг по сабжу?
Аноним 28/10/15 Срд 21:13:09 #169 №568181 
>>568173
Читаю с пейджера, полёт нормальный.
Аноним 28/10/15 Срд 21:14:32 #170 №568183 
>>568181
Уважуха и респект!
Аноним 29/10/15 Чтв 00:22:42 #171 №568307 
Программач, есть вопрос. Пишу пока в цпп тред, хотя вопрос, видимо, не совсем в тему. Сразу скажу, что вопрос не по лабе и не по алгоритму, а скорее по внутренней работе компилятора. В общем, я написал простенький код для метода Гаусса. Написал функцию, чтобы посчитать невязку. И всё нормально работает, но есть один момент…
Сам код:
http://ideone.com/I8xuLl
На вход принимается матрица — выводится сферическая невязка. Функция невязки в самом верху (специально вынес на видное место). В самой функции, две переменные (diff и diff2), которые считают одну и ту же невязку, но diff — это квадрат разности, а diff2 — тот же самый квадрат, но с раскрытыми скобками, то есть я банально раскрыл квадрат. И какого же было моё удивление обнаружить, что diff принимает адекватное значение, а diff2 всегда равен нулю. Собственно, это всё видно в выводе. Аноны, почему так? Почему при раскрытии скобок у меня получился ровно ноль? Так же не должно быть? Какая разница, каким образом я перемножаю элементы? Что там могло произойти?
Аноним 29/10/15 Чтв 00:59:24 #172 №568331 
>>568307
Я запустил под отладчиком и посмотрел, что на первом шаге в цикле происходит, там vectun [0] в точности 25, а check [0] 24.999999999999996, т.е. невязка на грани точности double. В случае diff, когда скобки не раскрыты, маленькая погрешность на каждом шаге сразу честно вынимается разностью, и возведение в квадрат ее только увеличивает. А в случае diff2 ты возводишь в квадрат не саму погрешность, а относительно большие элементы вектора. При этом сама погрешность уже не влезает в мантиссу и слагаемые становятся полностью одинаковыми. Это нормально для плавающей арифметики. Думать о порядке выполнения операций не требуется только если твоя погрешность достаточно высока, а иначе нужно сначала располагать операции с маленькими величинами, и постепенно поднимать градус, без этого округление и пиздец.
Аноним 29/10/15 Чтв 01:50:03 #173 №568363 
>>568331
Ну хорошо, я понял. Но возник ещё один вопрос. Если я заменю в typedef double на float, то у меня оба значения станут нулями, что логично. Однако если поставлю туда long double, всё равно получу оба нуля, то есть long double посчитал хуже doubl'а. Как это можно объяснить? Ведь long double умеет большую точность (или как минимум такую же) в сравнении с double.
Аноним 29/10/15 Чтв 01:59:31 #174 №568367 
>>568363
А как объяснить то, что 6/3=2, а 10/3=3,33333333333333333333333333333333333 и никаких цифр не хватит, чтобы описать это с нужной точностью? Не заморачивайся (каждый из таких частных случаев можно разбирать бесконечно), просто если точность твоих заморочек на пределе double, переписывывай код так, чтобы очень большие цифры с очень маленькими не складывать. Например, полином ax^3+bx^2+cx+d нужно считать как d + x (c + x (b + x * a)).
Аноним 29/10/15 Чтв 02:03:47 #175 №568368 
>>568367
>ax^3+bx^2+cx+d нужно считать как d + x (c + x (b + x * a))
Это же не одно и то же.
Аноним 29/10/15 Чтв 02:04:39 #176 №568369 
>>568368
глаза разуй маня
Аноним 29/10/15 Чтв 02:04:54 #177 №568370 
>>568368
А нет, так, да. Прости.
Аноним 29/10/15 Чтв 02:10:51 #178 №568372 
>>568367
>Не заморачивайся (каждый из таких частных случаев можно разбирать бесконечно)
Я уже всё это понял, но момент с long double напряг. Он должен работать по идее точнее, чем double, но на практике выходит наоборот. Это очень странно. Во всяком случае нелогично.

За советы спасибо. Раньше даже не задумывался о таком. Теперь буду учитывать.
Аноним 29/10/15 Чтв 02:16:38 #179 №568373 
>>568173
Sony z ultra. Вообще любой плафон норм заходит.
Аноним 29/10/15 Чтв 02:18:13 #180 №568375 
>>568368
Да даже если я опечатался, суть ты понял: нужно избегать больших степеней, потому что числа меньше 1 превратятся в тыкву, а числа больше 100 - в твою маму.
Аноним 29/10/15 Чтв 02:22:37 #181 №568376 
>>568373
Жаль, что я нищеброд.
Хватило только на lenovo s820.
Аноним 29/10/15 Чтв 02:24:53 #182 №568377 
>>568372
float на x86 процессоров на самом деле считается так: float число превращается в double, потом вычисление идет в double, а дальше результат сохраняется во float. Поэтому float - это что-то вроде double с округлением. Когда программируешь на CUDA (а видюхи частно считают во float, а double раза в 4-8 медленнее) это часто приводит к проблемам, когда в рабочем на пека коде откуда-то вылезают дикие шумы. В итоге в твоем случае (double)10^-29 округлилось до (float)0 (а до куда еще), вот и все. Ну, скорее всего.
Плюс, второй момент, float, double и long double - это конечные двоичные дроби. Может быть такое, что иногда вычисление в конечной дроби меньшего размера точнее, чем в дроби большего? А хуй знает, но я бы не удивился, если бы иногда (но не в среднем) было бы так.
Аноним 29/10/15 Чтв 03:05:52 #183 №568389 
>>568363
Братюнь, ну серьезно, если у тебя такие задачи, то тебе нужна длинная арифметика по любому, иначе то тут, то там будет всплывать обосрамс.
Аноним 29/10/15 Чтв 03:07:58 #184 №568390 
>>568372
Возможно, это из-за того, что long double это какое-то странное расширение, там 80 бит, и хуй знает по каким правилам с ним идут расчеты.
Аноним 29/10/15 Чтв 03:16:57 #185 №568393 
Расскажите пожалуйста про компиляторы.
Всегда писал в вижуалке и соответственно компилятор MSVS.
Хочу поюзать какой-нибудь другой, чтобы потом перекатиться на линукс.
Аноним 29/10/15 Чтв 03:19:31 #186 №568394 
>>568393
Компилятор - это консольная программа, которая принимает на вход cpp файлы и возвращает объектные файлы. А потом линкер из них делает собственно исполняемый файл. Тебя, скорее всего, интересует не компилятор, а IDE. К той же Visual Studio можно подключить любой компилятор, хочешь микрософтовский, хочешь интеловский, хочешь гну, хочешь - и вовсе кланг.
Аноним 29/10/15 Чтв 06:48:09 #187 №568447 
>>568393
Qt creator
Аноним 29/10/15 Чтв 06:50:25 #188 №568449 
>>568394
Неа, вот как раз к VS проблематично подключить что-либо, кроме майкрософтовского компилятора. Если так сделать, то отвалится большая часть возможностей отладчика, которые и делают VS самой удобной IDE из всех. А остальные IDE да, можно использовать с любым компилятором, но тогда возможности по отладке весьма скудные, как и в случае VS с немайкрософтовским компилятором.
Аноним 29/10/15 Чтв 07:02:41 #189 №568452 
>>568449
Напоминаю, что на отладчик только ньюфаги дрочат.
Аноним 29/10/15 Чтв 07:16:25 #190 №568455 
>>568452
Ну если ты Чак Норисс и не делаешь ошибок по определению, то да, а для нормального человека годный отладчик это один из важнейших параметров при выборе IDE. Да и Чаку Нориссу отладчик VS не помешает, если учесть, что он еще профилировщик, монитор ресурсов и даже Аллах.
Аноним 29/10/15 Чтв 07:17:48 #191 №568456 
>>568452
А, магистр отладочных печатей из старых тредов? Я уж заскучал без пламенных дискуссий с тобой.
Аноним 29/10/15 Чтв 07:26:58 #192 №568457 
>>568456
Он прав. Когда у тебя куча продакшен серверов, и падает раз в неделю, волей неволей придется использовать логирование, а не отладку.
Аноним 29/10/15 Чтв 07:52:12 #193 №568458 
>>568457
>волей неволей придется использовать и логирование, и отладку
Пофиксил тебя.
Аноним 29/10/15 Чтв 08:38:22 #194 №568466 
>>568045
Спасибо.
Так и сделал. Правда ебался пиздец.
Превозмогая буквально.
Но ... Надо. Не хочется быть неосилятором
Аноним 29/10/15 Чтв 10:44:08 #195 №568489 
>>566041 (OP)
Объясните дауну вот это.
" кликнуть "Файл - Создать - Проект - Пустой проект", после создания кликнуть слева правой кнопкой мыши по пункту "Файлы исходного кода", выбрать "Добавить - Создать элемент - Файл C++". Свои хэллоуворлды писать в этот файл,"

У меня нет пункта "пустой проект"
Аноним 29/10/15 Чтв 11:03:29 #196 №568491 
>>568489
Консольное приложение создавай.
Аноним 29/10/15 Чтв 12:26:08 #197 №568516 
14461107685700.png
>>568489
Аноним 29/10/15 Чтв 12:48:21 #198 №568523 
есть такое

class A {}
class B { A obj; }

A ptr = new A();

Где создастся obj? В куче?
Аноним 29/10/15 Чтв 12:53:38 #199 №568525 
>>568516
>>568491
Спс, разобрался - оказалось я не поставил галочек пару при установке.
Аноним 29/10/15 Чтв 13:32:52 #200 №568539 
>>568523
сентустисческоя ошипка.

A *ptr = new A(); // создастся в куче дерьма
Аноним 29/10/15 Чтв 13:33:55 #201 №568540 
>>568523
Пиздец, зачем ты спрашиваешь? Тебе же это не интересно, или ты так пытаешься имитировать бурную деятельность?
Аноним 29/10/15 Чтв 14:40:37 #202 №568567 
>>568539
Во-первых, не ошибка, а убрал звездочку, чтобы макаба не ебалась с ней, во-вторых, я спросил именно про объект obj класса A.

>>568540
По существу есть что сказать?
Аноним 29/10/15 Чтв 14:48:47 #203 №568572 
>>568567
A создастся в куче, потому что new. Но скорее всего ты хотел написать B ptr = new B() и спросить про внутренний А. В этом случае B будет в куче, и А будет в нём, но obj будет не указателем на какой-то отдельный кусок кучи с полями А, а будет участком памяти внутри области экземпляра B.
Аноним 29/10/15 Чтв 14:50:10 #204 №568574 
>>568567
ты тупой дибил, нихуя не разбираешься и указываешь мне на несуществующие ошибки, а свои ошибки не признаешь? ПОШЕЛ НАХУЙ С БОРДЫ, ТУПОЙ МУДИЛА!
Аноним 29/10/15 Чтв 14:53:34 #205 №568578 
14461196143860.png
Аноним 29/10/15 Чтв 15:02:41 #206 №568585 
>>568572
Ой, и правда, ошибся немного. Да, имелся в виду внутренний A obj.

Всё понял, спасибо. А то сегодня утром начал читать про выделение памяти под объекты на стеке и подумал об этом примере. Теперь всё ясно.
Аноним 29/10/15 Чтв 15:03:18 #207 №568587 
>>568578
Найс
Аноним 29/10/15 Чтв 19:53:58 #208 №568708 
Чем можно воспользоваться для работы со строками? Нужно написать небольшой парсер аргументов, но как-то не хочется по буквам что-то там высчитывать.
Аноним 29/10/15 Чтв 20:34:51 #209 №568729 
Такой вопрос. Можно ли как-то сделать приведение типов, хранив этот самый тип заранее в переменной?
То-есть, хочу я, например, взять массив стринг значений и массив стринг значений с названиями типов.
И потом каждый элемент из первого массива привести к типу из второго массива.
Типа:
a[0] = "123"
a[1] = "True"
a[2] = "123.12"

b[0] = "int"
b[1] = "bool"
b[2] = "double"

И затем сделать приведение.

Аноним 29/10/15 Чтв 21:06:29 #210 №568748 
Анон, что это за дерьмо?
http://govnokod.ru/18621
Аноним 29/10/15 Чтв 21:18:55 #211 №568758 
>>568729
Инфу по типу можно получить и сохранить через std::type_info или std::type_index. Но ты не можешь просто скастить переменную к типу заданому другой переменной, из-за статической типизации. Любой каст должен производится к типу известному во время компиляции.
Аноним 29/10/15 Чтв 21:24:15 #212 №568760 
>>568758
> ты не можешь просто скастить переменную к типу заданому другой переменной
Имелось ввиду используя стандартный каст. Можно написать кучу функций под каждый тип, и там в огромном свитче выбирать нужный тип и кастить к нему с помощью функции. Соответственно под каждый тип нужно свою переменную для хранения результата, как вариант юнион.
Аноним 29/10/15 Чтв 21:33:03 #213 №568764 
>>568760
>в огромном свитче
>под каждый тип нужно свою переменную для хранения результата
/o В кресты ad-hoc полиморфизма не завезли?
Аноним 29/10/15 Чтв 22:11:16 #214 №568778 
>>568764
>ad-hoc полиморфизм
При чем здеся полиморфизм? У него две переменных конкретных типов - одна строка (то что превращать нужно), а в другой инфа про тип.
Аноним 29/10/15 Чтв 22:16:39 #215 №568781 
Где внятно объясняется за rvalue-reference, universal(forward) reference и разницу между ними? Я УЖЕ НЕ ЧЕЛОВЕК, Я ЗВЕРЬ НАХУЙ
Аноним 29/10/15 Чтв 22:18:47 #216 №568786 
>>568778
>При чем здеся полиморфизм?
При том
[code lang=haskell]
class FromString a where
fromString :: String -> a

instance FromString Int where
fromString i = parseInt i
[/code]
Аноним 29/10/15 Чтв 22:22:08 #217 №568793 
>>568748
+= i это проход по массиву
Остальные пункты это какое-то примитивное гаммирование. Он хотел, наверное, таким образом моделировать псевдослучайную гамму без генератора.
Аноним 29/10/15 Чтв 22:25:44 #218 №568797 
>>568786
>При том
К чему эта параша? У тебя в одной переменной можно хранить как инты так флоат? Попробуй немного напрячь мозг, тут не хаскель, думать нужно.
Аноним 29/10/15 Чтв 22:30:25 #219 №568803 
>>568797
>У тебя в одной переменной можно хранить как инты так флоат?
Зачем?
Аноним 29/10/15 Чтв 22:33:22 #220 №568807 
>>568803
Чтобы результат каста использовать дальше в программе.
Аноним 29/10/15 Чтв 22:36:16 #221 №568808 
>>568390
А такие моменты никак не регулируются стандартом? Ведь это такая неоднозначность. Скажем, решил программист написать программу, используя как можно большую точность, выбрал специально для этого long double, и тут вдруг выясняется, что double в некоторых задачах (возможно, не во всех) ведёт себя более адекватно. Как так вообще можно?
Аноним 29/10/15 Чтв 22:43:04 #222 №568815 
>>568807
Но результат одного типа.
Аноним 29/10/15 Чтв 23:13:25 #223 №568825 
>>568793
Что-то у меня даже не скомпилировалось, а когда добавил звездочки к Name, программа не останавливается. Как это говно у него останавливается?
Аноним 29/10/15 Чтв 23:18:34 #224 №568829 
>>568815
Разных типов. На входе строка и нужный тип. На выходе строка приведенная к нужному типу. Нужные типы разные, задаются динамически.
Аноним 29/10/15 Чтв 23:20:36 #225 №568831 
>>568829
Но зачем диспатчить в рантайме?
Аноним 29/10/15 Чтв 23:26:16 #226 №568836 
>>568831
Потому что тебе нужно сохранить результат неизвестного в компайл тайме типа?
Аноним 29/10/15 Чтв 23:30:00 #227 №568838 
>>568808
Вроде как стандарт делегирует все вопросы плавающей точки другому стандарту IEEE 754-2008.
Аноним 29/10/15 Чтв 23:30:08 #228 №568839 
>>568836
Откуда информация о типе должна ВНЕЗАПНО появиться в рантайме?
Аноним 29/10/15 Чтв 23:31:22 #229 №568840 
>>568825
Там должно быть while (*Name) или типа того, тогда остановится, когда дойдет до \0 в конце строки.
Аноним 29/10/15 Чтв 23:33:08 #230 №568844 
>>568825
Там [ i ] пропущено. В конце строки должен быть нульбайт - тогда программа и остановится.
Либо name++ вместо i++ сделать и поправить в остальных местах.
Аноним 29/10/15 Чтв 23:38:59 #231 №568851 
>>568839
Инфа хранится в массиве, же.
Аноним 29/10/15 Чтв 23:41:02 #232 №568853 
>>568851
Зачем она там хранится? Она в коде должна храниться, а не в массиве. Пили описание на шаблонах.
Аноним 29/10/15 Чтв 23:47:35 #233 №568860 
>>568853
>Зачем она там хранится
Я ебу? У чувака так сделано, мой пост касался его вопроса и ситуации.
Аноним 30/10/15 Птн 00:05:49 #234 №568866 
>>568860
Так надо было пояснить ему по-хардкору за метапрограммирование на шаблонах.
Аноним 30/10/15 Птн 00:33:08 #235 №568877 
Всегда юзать умные указатели, либо лишь только в тех случаях, когда проблематично все удалять вручную?
Аноним 30/10/15 Птн 00:36:57 #236 №568879 
>>568877
Всегда, потом, если нужна оптимизация, можно упразднить - интерфейс один.
Аноним 30/10/15 Птн 00:40:53 #237 №568883 
14461548540140.jpg
>>568879
Окей, спасябки.
Может еще подскажешь, в чем основная разница между universal refs и rvalue refs?
И что самое главное(рили не смог нагуглить) какова семантика слов lvalue и rvalue? Левое/правое значение? Или r в данном контексте = reference?
Спасибо заранее.
Аноним 30/10/15 Птн 00:41:57 #238 №568884 
>>568883
Гугли move semantics. Тут в двух и даже в ста словах не объяснить что и для чего.
Аноним 30/10/15 Птн 00:45:34 #239 №568887 
>>568884
Ок.
А все-таки, как переводится lvalue/rvalue? Что значит префикс, какова его смысловая нагрузка?
Аноним 30/10/15 Птн 00:47:12 #240 №568888 
>>568887
Слева от знака присваивания, справа от знака присваивания. Rvalue не может быть слева.
Аноним 30/10/15 Птн 00:48:34 #241 №568889 
>>568888
Хм, окей.
И на том спасибо. Пойду ЕЩЕ раз перечитывать про move semantics, надеюсь в этот раз понять больше.
Аноним 30/10/15 Птн 00:49:42 #242 №568890 
>>568729
Допустим, можно, но результат ты куда сохранять будешь?
Аноним 30/10/15 Птн 03:41:15 #243 №568949 
Можете объяснить, как вообще устроен односвязный список?
Вернее, меня интересует, есть ли у элементов какие-то id?
Вот есть, допустим, задачка про "Узнать, зациклен ли список (конец указывает на голову, а не на null)".
И обычно решается это запуском двух итераторов с разными шагами. И если они УКАЗЫВАЮТ НА ОДИН ЭЛЕМЕНТ когда-нибудь, то список - зациклен.
А как узнать, что они указывают на один элемент? По значению? Значения могут повторяться.
По ячейке памяти? Зачем тогда нужен какой-то второй итератор? Можно просто сравнивать с ячейкой памяти головы и всё.
НЕПОНИМАТ
Аноним 30/10/15 Птн 05:37:29 #244 №568967 
>>568883
universal refs введено исключительно Скоттом Мейерсом для обозначения наиболее общего случая использования значка &&. Там дело в том, что && еще не значит rvalue ref, в некоторых случаях вывод типа параметра функции из аргумента шаблона, или, например, auto играет роль не только значок &&, но и то, чем эта ссылка инициализируется. В зависимости от инициализатора && может значить lvalue ref или rvalue ref. Поэтому Скотт назвал их "универсальными". Подробнее можно почитать здесь http://www.pvsm.ru/c-3/19568 и здесь http://habrahabr.ru/post/242639/.
Аноним 30/10/15 Птн 05:47:08 #245 №568974 
>>568949
Если вкратце, то способ с двумя итераторами более общий, потому что он найдет любой цикл, а не только проходящий через голову. Например, для списка по форме как цифра 9, а не только собственно кольца. В случае, когда такого быть не может, разумеется, алгоритмически гораздо выгоднее сравнивать с адресом головы, как ты сказал.

Вообще, вот тебе рилейтед видос http://www.youtube.com/watch?v=9-sO8MteGqY.
Аноним 30/10/15 Птн 22:34:29 #246 №569549 
>>566041 (OP)
Что скажете о С++ на виртуальной машине дотнет? Эта странная хрень имеет что-то общее с настоящим нативным С++?
Аноним 30/10/15 Птн 22:37:37 #247 №569552 
>>569549
Вообще никакого. Разве что синтаксис (да и тот изуродованный).
Хочешь сишный синтаксис на дотнете - не еби мозга и используй шарп.
Аноним 30/10/15 Птн 22:56:10 #248 №569562 
>>569552
Ок, понятно. Спасибо.
Аноним 31/10/15 Суб 00:46:19 #249 №569617 
Есть допустим указатель:
Class1 c1 = new Class1();
Затем я создаю указатель на этот класс.
Class1
cl2 = cl1;
Затем я удаляю его.
delete cl1;

Мне нужно теперь что-то делать с cl2? Ибо он теперь указывает на хуй пойми что.
Аноним 31/10/15 Суб 00:47:33 #250 №569621 
14462416539730.png
>>569617
Свездочки проебались. Как на пике кароче.
Аноним 31/10/15 Суб 01:14:06 #251 №569633 
>>569621
ЧТО ХОЧЕШЬ ТО И ДЕЛАЙ БЛЯТЬ
Аноним 31/10/15 Суб 01:26:33 #252 №569639 
>>569617
cl2 = nullptr
Разыменование указателей называется такая хуитка.
Аноним 31/10/15 Суб 01:29:46 #253 №569640 
>>569639
Ну, я понимаю.
Просто, это вообще норма оставлять в коде подобные указатели? Нормальные чуваки что делают в таких случаях?
Аноним 31/10/15 Суб 01:45:08 #254 №569644 
>>569640
Нормальные чуваки используют умные указатели и не трахают мозга. Нет, это не норма, для того их и разыименовывают, чтобы если такая хуитка случится (на практике может что-то подобное быть разве что в многопотичине/асинхронной хунте).
Аноним 31/10/15 Суб 01:45:37 #255 №569647 
Более менее разобрался с move-semantics.
Охуенно, хоть что-то понял.
Аноним 31/10/15 Суб 01:46:40 #256 №569650 
>>569644
Можно было ее отловить.
мимо допейсал эпилог
Аноним 31/10/15 Суб 02:40:24 #257 №569664 
>>569647
Хотя, не совсем.
Семантика перемещения - только лишь для rvalue? Для lvalue колдовать с конструктором копирования?
Аноним 31/10/15 Суб 02:42:26 #258 №569666 
>>569664
И типа для того чтобы переместить lvalue(для которых, ясен красень, определен только лишь copy ctor), мы делаем каст к rvalue с помощью std::move, и уже эта вся хуйня идет обрабатываться move ctor'ом. Я все правильно понял либо я вообще хуйню спорол?
Аноним 31/10/15 Суб 05:34:20 #259 №569687 
>>569666
ну да
Аноним 31/10/15 Суб 05:44:40 #260 №569688 
>>569666
терь иди std::forward проверяй
(такая же элементарная штука)
Аноним 31/10/15 Суб 11:01:34 #261 №569756 
Плюсаны подмогните.
Поставил Qt Based on Qt 5.5.1 (MSVC 2013, 32 bit)
1. Есть ли способ поставить компилятор от 2013 студии, не ставля саму студию?
2. Тот же вопрос с дебагером.
Аноним 31/10/15 Суб 11:19:33 #262 №569760 
>>569756
Нету. Скачай студию и установи выборочно только плюсовый конпелятор.
Аноним 31/10/15 Суб 11:27:40 #263 №569767 
>>569760
А с в WinSDK чо сделалось?
Аноним 31/10/15 Суб 11:28:10 #264 №569768 
14462800902350.png
>>569760
Аноним 31/10/15 Суб 11:33:35 #265 №569772 
>>569767
Заменить сперму прыщами.

>>569768
У тебя 50гб жд?
Аноним 31/10/15 Суб 11:34:22 #266 №569774 
>>569772
И как же ты поставишь вижуалстудиевский компилятор под линуксом?
Аноним 31/10/15 Суб 11:38:06 #267 №569775 
>>569774
Блядь, ты дебил? Поставь gcc или clang если нужен именно компилятор.
Аноним 31/10/15 Суб 11:40:19 #268 №569776 
>>569775
>1. Есть ли способ поставить компилятор от 2013 студии, не ставля саму студию?
>Блядь, ты дебил? Поставь gcc или clang если нужен именно компилятор.
Действительно, дебил именно он.

Аноним 31/10/15 Суб 11:41:24 #269 №569777 
Мне нужен компилятор MVS2013, так как под него DLL'ки.
Аноним 31/10/15 Суб 11:45:17 #270 №569779 
>>569776
>Действительно, дебил именно он.
>>569777
>Мне нужен компилятор MVS2013, так как под него DLL'ки.
Нет блядь, дебил именно я. Послал ебучего неосилятора читать Рихтера
Аноним 31/10/15 Суб 11:48:42 #271 №569780 
>>569779
Твоя помощь была неоценима.
Аноним 31/10/15 Суб 11:56:46 #272 №569781 
>>569780
Твоя тупость была ценнее. DLL-ки под 13-ю студию, сука.
Аноним 31/10/15 Суб 12:03:53 #273 №569784 
>>569781
Под компилятор, имбицилушка.
Аноним 31/10/15 Суб 13:37:19 #274 №569828 
>>569688
Уже проверил.
Теперь это действительно кажется элементарным, хотя дня три сидел и разобраться не мог.
Хотя, я наверное понимаю причину. Читал об этом на хаброподобных русскоязычных ресурсах, вокруг да около.
http://thbecker.net/articles/rvalue_references/section_10.html
Вот здесь охуительно поясняется, вдруг кому интересно будет.
Аноним 31/10/15 Суб 14:55:19 #275 №569886 
Всегда ли выгоднее юзать emplace_back вместо push_back?
Аноним 31/10/15 Суб 15:43:16 #276 №569917 
Какая активность в сисярп-треде, и все про С++!
Аноним 31/10/15 Суб 16:15:04 #277 №570014 
>>569917
Где эта обоссаная моча, когда она так нужена.
Аноним 31/10/15 Суб 16:42:34 #278 №570117 
Анон, какая есть функция в СИ не си плюс плюс, чтобы округлить дробную часть числа до определенного десятка. Например, число 2.982001 до 2.982000
Аноним 31/10/15 Суб 16:44:21 #279 №570124 
>>570117
> СИ не си плюс плюс
> Старший брат: >>518562 (OP)
Аноним 31/10/15 Суб 16:45:44 #280 №570126 
>>570124
Я там тоже написал, тут активность побольше
Аноним 31/10/15 Суб 16:49:06 #281 №570131 
>>570117
http://www.codecogs.com/library/computing/c/math.h/round.php
Аноним 31/10/15 Суб 17:17:48 #282 №570235 
>>569886
Да.
Аноним 31/10/15 Суб 17:32:02 #283 №570264 
>>569886
Нет, конечно.
Разницы по скорости между emplace_back и push_back нет. Выгода от использования того или иного метода появляется, если меняется целевое место инициализации объекта и, если есть необходимость произвести над временным или этим объектом какие-либо операции. Применительность к задаче же1
Аноним 31/10/15 Суб 17:34:12 #284 №570266 
>>569886
>>570235
В чём вообще разница?
Аноним 31/10/15 Суб 17:37:51 #285 №570272 
>>570266
В случае с push_back дёргается на один конструктор копирования больше.
Аноним 31/10/15 Суб 19:03:05 #286 №570354 
>>569756
Можно. Всякие куте инстаояторы такое делают. Там пакет специальный
Аноним 31/10/15 Суб 19:05:42 #287 №570357 
>>569767
http://www.microsoft.com/en-us/download/details.aspx?id=8279
Аноним 31/10/15 Суб 20:33:35 #288 №570417 
>>570235
Cпасибо, мистер.
Аноним 31/10/15 Суб 22:18:00 #289 №570463 
Как перестать ненавидеть Qt?
Аноним 31/10/15 Суб 23:33:59 #290 №570498 
>>570463

А за что его ненавидеть?
Аноним 31/10/15 Суб 23:35:12 #291 №570499 
>>570498
За громоздкость
Аноним 31/10/15 Суб 23:37:21 #292 №570503 
>>570498
А мне, например, MOC не нравится.
Аноним 01/11/15 Вск 00:01:35 #293 №570516 
>>570463
Тот же вопрос.
Как-то писал приложение с OpenGL и GLUT, хотел сделать GUI в QT, проебал дня 3, но так и не сумел настроить.
Теперь дико ненавижу всё это дело.
Аноним 01/11/15 Вск 00:23:57 #294 №570526 
14463266379290.jpg
>>570516
> GLUT
Изыди.
Аноним 01/11/15 Вск 00:34:18 #295 №570529 
14463272588320.jpg
>>570516
>пейсал игрушку йа же киррилл программизд илита /gd
>ниасилил настройку готовых бинарников, фу бля нинавижу сука
Цитирую шапку:
>Все идут на хуй.
>Хейтер сосет члены на пару со своей мамашей.
Аноним 01/11/15 Вск 00:38:06 #296 №570531 
14463274861180.png
Анон, что это за говно? Как это понять? Если мы 32-битный регистр поделили пополам, а потом еще раз пополам, то эти четыре части имеют по 8 бит. Как в этих 8-битных частях может содержаться 16-битный регистр?
Аноним 01/11/15 Вск 00:40:48 #297 №570533 
>>570531
Блять, понял. Речь идет про регистры eax, edx, и т.д., а не про их части.
Аноним 01/11/15 Вск 01:03:28 #298 №570541 
>>570526
>>570526
Что? Нормальная штука.
>>570529
А ты пидор. Там нихуя не просто всё.
sageАноним 01/11/15 Вск 01:05:55 #299 №570544 
>>570541
Что же именно там не просто? Установить Qt SDK с уже скомпиленным Qt и ide для формошлёпства?
Аноним 01/11/15 Вск 01:17:44 #300 №570549 
>>570541
> Что? Нормальная штука.
Крайне устаревшая.
Используй sdl, glwf, sfml.
Аноним 01/11/15 Вск 01:48:36 #301 №570559 
>>570544
Вместе с глутом там нихера не ставится. Я весь стаковерфлоу перечитал, но так и не вышло.
А менять функционал GLUT'a на какие-то QT фичи слишком долго было.
Аноним 01/11/15 Вск 03:00:52 #302 №570578 
>>569917
>>570014
Ох, какой пиздец. Но вы тоже хороши, жалобы же есть! Я же не так часто захожу в эти чатики для детишек с управляемыми языками.
Аноним 01/11/15 Вск 03:50:07 #303 №570594 
14463390071180.jpg
>>566081
>struct MyStruct* p_ms
>free( p_ms )
Вообще-то это тред про C++.
Аноним 01/11/15 Вск 17:41:55 #304 №570802 
Поясните за qt. Это IDE? Я могу скачать его и удалять к чертям VS, или где?
Аноним 01/11/15 Вск 17:48:35 #305 №570808 
>>570802
qt это набор либ, а qt creator это IDE, которая заточена под них. По удобству будет лучше VS только если тебе надо пилить много формочек, там можно конструировать их мышкой и вот это все. В плане общей разработки VS удобнее из-за отладчика и остальных плюшек.
Аноним 01/11/15 Вск 18:34:35 #306 №570829 
Анон, почему в этом коде https://ideone.com/CyoO3x в этих строчках вылетает ошибка "Повреждение кучи, нарушение доступа"?

Point Pyl = new Point[size_a];
Point
Pyr = new Point[size_b];
Аноним 01/11/15 Вск 18:34:57 #307 №570830 
>>570829
Перед Pyl и Pyr звездочки.
Аноним 01/11/15 Вск 19:17:49 #308 №570859 
>>570829
>>570830
Твой говнокод и рашн-иншлиш комментарии вообще сложно понять.
Я не могу понять, что делает твой метод.
Берется точка из середины массива.
Затем создаются 2 массива с длиной вдвое меньше.
И затем все точки распределяются по этим массивам в зависимости от того, элемент больше или меньше той серединной точки.
Но ты ведь понимаешь, что кол-во таких точек совпадет с кол-вом выделенной памяти в массивах только в очень редких ситуациях, когда твой серединная точка будет иметь или граничное значение (типа ... 2, 3, 4 ..., где 3 - твоя точка) или такое же значение, как и у соседних точек, но только с одной стороны (... 2, 3, 4, 4, 4..., где первач четверка - твоя точка).
Алсо, блеванул с подобных ИНЖЕНЕРНЫХ РЕШЕНИЙ:
> Pyl[li++] = Py;
> Pyr[ri++] = Py;
> strip[j] = Py, j++;
sageАноним 01/11/15 Вск 19:20:36 #309 №570862 
>>570859
>Алсо, блеванул с подобных ИНЖЕНЕРНЫХ РЕШЕНИЙ:
>return bruteForce(Px, n);
У нас тут античат протёк.
Аноним 01/11/15 Вск 19:27:32 #310 №570873 
>>570862
Брутфорс - обычное понятие, которое можно встретить и в статьях и вообще везде. И подразумевает решение перебром, без всяких выебонов (что как-бы намекает словосочетание грубая_сила).
Аноним 01/11/15 Вск 20:02:05 #311 №570896 
>>570862
Эх щас бы в нулевые, когда все ломалось прогой BRUTUS AET (олдфаги уже пустили слезу от названия?), а лохи не знали про расширения и принимали вирусы как фотки.
Аноним 01/11/15 Вск 20:10:41 #312 №570900 
14463978415100.png
>>570859
>Алсо, блеванул с подобных ИНЖЕНЕРНЫХ РЕШЕНИЙ:
На еще поблюй, для братишек говна не жалко)))
Аноним 01/11/15 Вск 20:22:52 #313 №570908 
>>570900
Это ты тут спрашивал какую-то поебень про генерацию рандомных точек для выпуклой оболочки?
Аноним 01/11/15 Вск 20:28:18 #314 №570915 
>>570908
Да. Сосач как обычно соснул со своими советами, и я придумал лучший способ для их генерации: корни из единицы, координаты которых заданы в полярной системе координат, а модуль умножается на 10000 и округляется до целого, чтобы точки были целочисленными. Охуенный способ. Алсо, многоугольник получается идеальный.

И да, в пизду бы эту геометрию. Какие-то мрази пишут книги так, что по их псевдокоду хуй проссышь, как это реализуется при помощи дерева. А все, что гуглится представляет собой жутчайший кал. Подозреваю, что и там, где эти алгоритмы применяются на практике, это такой же мелкобуквенный кал с однобуквенными переменными и т.п.
Аноним 01/11/15 Вск 20:33:12 #315 №570916 
Сука блять, какие же гниды пишут книги по алгоритмам. Этот рекурсивный алгоритм поиска валится уже на 5000 точек, потому что исчерпывается стек вызовов. Там надо снимать рекурсию и делать вместо нее итерацию, но ебучий Кормен не рассказывает об такой реализации, теоретик ебаный.
Аноним 01/11/15 Вск 20:34:22 #316 №570917 
>>570915
> корни из единицы, координаты которых заданы в полярной системе координат, а модуль умножается на 10000 и округляется до целого, чтобы точки были целочисленными.
Параша какая-то. Что за единицы, что за модуль? Подробнее расскажи.
Аноним 01/11/15 Вск 20:36:32 #317 №570918 
>>570916
> 2015
> рекурсия
Аноним 01/11/15 Вск 20:36:48 #318 №570919 
>>570916
Если выделять память в куче, всё будет ок, я полагаю.
Аноним 01/11/15 Вск 20:38:41 #319 №570922 
14463995219080.png
14463995219081.png
>>570917
Короче, точки с координатами (cos((pi k)/n), sin((pi k)/n).
Замечательны тем, что группе этих корней изоморфна куча всякой хуятины в математике, а еще они располагаются в вершинах идеального выпуклого многоугольника.
Аноним 01/11/15 Вск 20:40:34 #320 №570923 
Смотрите, как от этого четкого пацанчика олдскулом веет.
http://easyelectronics.ru/avr-uchebnyj-kurs-flagi.html

Почему сейчас нет таких аутистов, которые с матерком и смехуечками писали интересные статьи на античате??
Аноним 01/11/15 Вск 20:42:34 #321 №570926 
>>570919
>>570922
А нет, нихуя. На стэк вызовов это никак не влияет.
Запусти в release моде. Должно быть больше.
Аноним 01/11/15 Вск 20:43:42 #322 №570929 
>>570926
И так в релизе.
Аноним 01/11/15 Вск 20:46:43 #323 №570930 
>>570922
>группе этих корней изоморфна куча всякой хуятины в математике
Какие корни, блять? Ты о чём вообще?
Можно точно также задавать точки просто урвнением круга, генерируя рандомно координату x, и находя y.
Аноним 01/11/15 Вск 20:47:46 #324 №570932 
>>570930
>Какие корни
Комплексные из единицы)))
Аноним 01/11/15 Вск 22:54:18 #325 №571056 
http://ideone.com/Emb1Sh
Почему пропадают данные из one? Вот почему?
Аноним 01/11/15 Вск 23:08:35 #326 №571070 
14464085155960.png
Ставлю qt creator первый раз и при установке такая хуйня.
Ну че это такое блядь, чем он занят, если даже ещё не установился, ууххх сука.
Аноним 01/11/15 Вск 23:33:17 #327 №571076 
>>571056
> Почему пропадают данные из one? Вот почему?
> std::move(one)
Ну, хуй знает.
Аноним 01/11/15 Вск 23:47:42 #328 №571083 
>>569688
Братишка, можешь пояснить?
std::forward вызывается из функции обертки? Или нужно прямо на месте вызова функции передавать параметры форвардом?
Аноним 02/11/15 Пнд 00:00:02 #329 №571087 
В классе string есть свои аналоги этой хуйни? http://en.cppreference.com/w/cpp/header/cctype
Аноним 02/11/15 Пнд 01:11:36 #330 №571129 
>>571087
Врядли. Это хуевый дизайн - совать метода для работы с одной сущностью в класс предназначеный для работы с другой, даже если она связаны так сильно как символ и строка.
Аноним 02/11/15 Пнд 06:58:14 #331 №571210 
Ну вот дочитаю я Лафоре - "Объектно-ориентированное программирование в С++", что после него для закрепления следует следующим читать?
Аноним 02/11/15 Пнд 08:49:20 #332 №571230 
>>571210
Или Страуструппа, или подхватывай какой-то фрейморк/гуй библиотеку и начинай пытаться что-то писать.
Аноним 02/11/15 Пнд 12:11:43 #333 №571277 
>>566041 (OP)
> Более того, крайне нежелательно пытаться изучить его первым, если ты раньше вообще не программировал
Совсем нежелательно?
Аноним 02/11/15 Пнд 12:39:51 #334 №571292 
>>571277
Совсем. С++ - это нужно разочароваться в скорости питона, взять С, охренеть от того, сколько лишнего нужно писать, и, наконец, взять С++.
Аноним 02/11/15 Пнд 12:45:40 #335 №571294 
>>571277
Можно и с плюсов начинать, просто нужно скипать часть материала, погружаться постепенно. Но все конечно индивидуально. И под "изучить его первым, если ты раньше вообще не программировал" подразумевается не то что ты какой-то другой язык задрочишь, а то что ты неделю-две поковыряешь, к примеру питон, и потом уже будешь решать куда податься.
Аноним 02/11/15 Пнд 12:51:31 #336 №571296 
>>571294
Не можно. Не зная сишки на очень хорошем уровне, и не поебавшись с ней (в стиле if (!get_last_error()) goto cleanup;), начинать с С++ - это плодить очередного крестохейтера.
Аноним 02/11/15 Пнд 13:04:55 #337 №571300 
14464586951130.gif
>>570896
Аноним 02/11/15 Пнд 13:20:17 #338 №571306 
>>571230
>начинай пытаться что-то писать
Мимо проходил, но закончил лафоре и страйструпа. Пытаюсь калькулятор написать, а потом лисп интерпретатор. В калькулятор добавил функции и получилось жуткое говно. А как его в лисп интерпретатор переделать хуй знает. Собираюсь читать книгу про разработку и реализацию ЯП, но это наверно слишком много ради одного проекта. Может есть универсальная книга как не писать говнокод? В шапке Мейерс про это вроде, но книга поле 2012ого ещё только на английском. Есть уже переведённые книги на эту тему?
Аноним 02/11/15 Пнд 13:22:32 #339 №571309 
>>571070
Он, блядь, занят установкой, очевидно же.
Аноним 02/11/15 Пнд 13:30:48 #340 №571314 
>>571083
forward используется только в шаблонных транзитных функциях. То есть, когда принимаемый функцией параметр зависит от параметра шаблона, а сама функция нихуя не знает, что с ним делать, и вызывает над ним новую функцию. Вот тогда надо делать forward, а в других случаях это бесполезно, ибо единственное, что он делает - это проверка, является ли его аргумент rvalue, и если да, то работает как std::move. Если ты точно знаешь, что тебе передается rvalue или что не rvalue, то тебе не нужен forward. Если ты сам будешь его обрабатывать, то тебе не нужен forward. Все, чего ты добьешься forward'ом - это передача параметра в другую функцию так, что для этой функции будет казаться, что ее сразу вызвали вместо объемлющей с этим параметром, с сохранением его rvalue/lvalue типа.
Аноним 02/11/15 Пнд 13:32:45 #341 №571317 
>>571306
>Собираюсь читать книгу про разработку и реализацию ЯП, но это наверно слишком много ради одного проекта.
Не, это must read для любого программиста.
Аноним 02/11/15 Пнд 15:13:21 #342 №571375 
Пиздец, такая безысходность.
На весь миллионник ни одной джуновакансии. Просто маму ебал.
Аноним 02/11/15 Пнд 15:19:00 #343 №571380 
>>571375

кодь удалённо не мужик что ли
Аноним 02/11/15 Пнд 15:28:57 #344 №571385 
>>571380
А как я без опыта-то?
Аноним 02/11/15 Пнд 15:39:26 #345 №571393 
>>571385
Опыта можно на опенсорце набрать.
Аноним 02/11/15 Пнд 16:34:54 #346 №571439 
>>571385

овощевать в офисе на пятидневке это не опыт парень
Аноним 02/11/15 Пнд 16:43:31 #347 №571454 
14464718116710.jpg
>2045
>байтоёбить
/thread
Аноним 02/11/15 Пнд 16:50:03 #348 №571458 
>>571454
Хейтер сосет члены на пару со своей мамашей.
Аноним 02/11/15 Пнд 16:54:56 #349 №571464 
>>571493 а есть годные проекты? Кроме сраных openCV и пр., которые орки пишут?
Аноним 02/11/15 Пнд 17:24:07 #350 №571480 
>>571454
Я правильно понимаю, что это БАЙТОСПАРТА решила заглянуть к ОП-у на палочку чая?
Аноним 02/11/15 Пнд 17:30:59 #351 №571490 
>>571454
>2045
>щитать что язык без ограничений анального сфинктора - обязательно байтоёбский
Аноним 02/11/15 Пнд 18:48:04 #352 №571546 
>>571464
У Илюши спроси. Блин, серьезно, даже школьник-хохол может в опенсорс, а ты - нет.
Аноним 02/11/15 Пнд 20:53:33 #353 №571678 
Создать массив с заданными размерами
Заполнить случайными элементами
Найти максимальный
Удалить строку и столбец, содержащие этот элемент.

Какие функции нужно использовать и где можно почитать как ими пользоваться? В Си++ полный ноль, но думаю смогу осилить написание по мануалу.
Аноним 02/11/15 Пнд 21:07:11 #354 №571689 
>>571678
std::vector/std::array в зависимости от того, известен ли размер во время компиляции
std::generate + std::random_device
std::max_element
std::remove_if с условием (&a % height == row_num || &a / height == col_num)
Аноним 02/11/15 Пнд 21:21:05 #355 №571703 
>>571689
Где почитать про них, няш?
Аноним 02/11/15 Пнд 22:25:03 #356 №571750 
>>571703
http://en.cppreference.com/w/
Аноним 03/11/15 Втр 03:35:50 #357 №571986 
>>571306
>Собираюсь читать книгу про разработку и реализацию ЯП, но это наверно слишком много ради одного проекта.
читай книгу с дракончиком Альфред Ахо, Рави Сети, Джеффри Ульман. Компиляторы. Принципы, технологии, инструменты. и не переизобретай велосипед
книга лёгкая, няшная, читается на ура
Аноним 03/11/15 Втр 07:29:00 #358 №572018 
Как определить длину введеной строки класса string?
Аноним 03/11/15 Втр 09:57:52 #359 №572055 
>>572018
.length()
.size()

это одно и то же, на самом деле
Аноним 03/11/15 Втр 10:11:34 #360 №572064 
>>572018
Длину в чём? В байтах или в символах?
Если в байтах, то >>572055, а если в символах, то сосать хуй, ведь кодировочек не назвезли.
Аноним 03/11/15 Втр 10:14:01 #361 №572066 

>>572055
Спасибо.
>>572064
>а если в символах
Не понял тебя, length вполне подошёл.
Аноним 03/11/15 Втр 10:24:38 #362 №572074 
Если я решил встать на путь байтоебства и возможно чистого C, стоит ли читать про компиляторы?
В принципе тема очень интересная, ибо слабо себе представляю как они работают
Аноним 03/11/15 Втр 10:31:21 #363 №572076 
>>572074
Во многих знаниях многия печали.
Аноним 03/11/15 Втр 10:32:26 #364 №572077 
>>572064
Всё наоборот: .length() и .size() предоставляют информацию о количестве элементов контейнера. В случае std::string, про которую он и спрашивал, sizeof(char) == 1 по стандарту, поэтому мой ответ ему более чем достаточен в любом случае.
Аноним 03/11/15 Втр 12:06:16 #365 №572116 
>>572066
Если в string будут например данные в utf8 или в какой другой многобайтовой кодировке, то даст размер в байтах, а не символах.
Аноним 03/11/15 Втр 15:29:53 #366 №572227 
14465537937640.png
>>571986
Чем плох пикрелейдет? Он почти в двое меньше. И что с книгами как не писать говнокод на 11ом стандарте на русском?
Аноним 03/11/15 Втр 19:48:26 #367 №572367 
>>572227
Специально для тебя, любитель коротких книжек, всего 115 страниц: http://cmcmsu.no-ip.info/download/formal.grammars.and.languages.2009.pdf

А еще ты наверняка оценишь вот эту десятистраничную жемчужину: http://cmcmsu.no-ip.info/download/model.lang.practical.task.pdf
Аноним 03/11/15 Втр 19:59:14 #368 №572374 
14465699545090.png
>>572367
Не уверен что это то что надо и написано непонятно, но оглавление вроде правильное. Спасибо почитаю.
Аноним 03/11/15 Втр 20:01:44 #369 №572376 
>>572374
Пик приклеился, но это и так понятно.
Аноним 03/11/15 Втр 21:22:57 #370 №572436 
http://pastebin.com/H6Mr40XR
Вопрос в 10-12 строках.
Аноним 03/11/15 Втр 21:29:14 #371 №572439 
>>572436
С 1-м return конпелятор сам выведет значение.
Аноним 03/11/15 Втр 21:40:00 #372 №572457 
>>572439
Ты - няша.
Аноним 03/11/15 Втр 22:58:28 #373 №572530 
>>572367
Почитал первую книгу. Не дошёл до половина как перестал понимать. Есть что попроще?
Аноним 03/11/15 Втр 23:03:35 #374 №572536 
>>572530
Это самая простая методичка по курсу формальных грамматик на ВМК. Если тебе это сложно, то вряд ли ты вкатишься в компиляторы. Ну разве что найдешь для начала какую-нибудь детскую книгу, где они интерпретатор роботов делают. Логомиры, ДРАКОН или хуй знает что там еще.
Аноним 04/11/15 Срд 02:07:14 #375 №572639 
Где размещать описание класса и инфу по работе с ним - перед объявлением в .h или перед определением в .cpp?
Как описывать .h - сначала все классы, потом все методы всех классов или сначала первый класс, потом все его методы, потом второй класс... И почему? Надо ли в .h описывать закрытые и защищенные методы класса? А область видимости определять где? Глобальные переменные и константы внутри нее?
Аноним 04/11/15 Срд 03:05:28 #376 №572662 
Сап программач, нужна помощь.
Сформировал динамический двумерный массив, теперь нужно удалить строку и столбец с минимальным элементом с помощью realloc.
[code]#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#define N 3
#define M 3
int main()
{
int a; // указатель на массив
int i, j, mas [N][M], min; // Выделение памяти
a = (int
) calloc(N, M); // Ввод элементов массива
for(i=0; i<N; i++) // цикл по строкам
{
for(j=0; j<M; j++) // цикл по столбцам
{
scanf("%3d", (a+iM+j));
}
}
// Вывод элементов массива
for(i=0; i<N; i++) // цикл по строкам
{
for(j=0; j<M; j++) // цикл по столбцам
{
printf("%3d",
(a+i*M+j)); // 3 знакоместа под элемент массива
}
printf("\n");
}
// Поиск минимального элемента
ЩИТО ДЕЛАТЬ
free(a);
return 0;
}
[/code]
Аноним 04/11/15 Срд 03:27:44 #377 №572667 
>>572639
>Как описывать .h
Пишешь класс, в нём прототипы.
В .цпп файле реализацию.
Константы/дефайны(лучше не надо вообще) тоже в .h файле.

>А область видимости определять где?
Это не понял.
В декларации класса же указываются модификаторы доступа. Как их самому объявить-то можно?
Аноним 04/11/15 Срд 05:35:40 #378 №572685 
>>572667
Ну, неймспейс где задавать?
В смысле, прям методы в .h объявлять? А документацию куда пихать?
Константы и глобальные переменные - это что-то реально нужное, типа числа е или дня, с которого начинается неделя
Аноним 04/11/15 Срд 09:33:11 #379 №572705 
>>572662
> показали ему какие функции юзать и дали ссылку на cppreference
> написал в C-стиле с макросами и malloc
Блядь, все-таки насрал, ой мудель блядь. Убери это говно нахуй, щас будешь это вылизывать!
Аноним 04/11/15 Срд 11:16:05 #380 №572741 
>>572639
Почитай style guides от разных компаний.
Аноним 04/11/15 Срд 11:17:53 #381 №572742 
>>572685
Посмотри код крупных открытых проектов.
Аноним 04/11/15 Срд 11:22:27 #382 №572743 
>>572639
>Где размещать описание класса и инфу по работе с ним
перед объявлением в .h

>Как описывать .h
сначала первый класс, потом все его методы, потом вспомогательные функции (не члены класса)

>И почему?
Так Аллах прописал.

>Надо ли в .h описывать закрытые и защищенные методы класса?
Ты имеешь в виду что-то типа документации в комментариях или что? Комментариев не должно быть много.

>Глобальные переменные и константы
в .h

>А область видимости определять где?
>>572685
>Ну, неймспейс где задавать?
Или отсутствует в обоих файлах, или везде файлах обёрнуто в один и тот же нэймспэйс. А по-другому у тебя и не скомпилируется, очевидно.

>В смысле, прям методы в .h объявлять?
все, вообще ВСЕ объявления только в .h

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

>Константы и глобальные переменные - это что-то реально нужное, типа числа е или дня, с которого начинается неделя
>2015
Используй constexpr. Да, в .h
Аноним 04/11/15 Срд 12:21:35 #383 №572771 
>>572685
https://github.com/id-Software/DOOM-3-BFG
Аноним 04/11/15 Срд 13:32:20 #384 №572802 
>>572743
Ок, а определение юнионов и подобное тоже в .h лучше делать, я так понял?
Аноним 04/11/15 Срд 13:43:20 #385 №572810 
>>572802
Если упоминаются в хедере (параметры функций, публичные поля класса) то там, если нет то в реализации.
Аноним 04/11/15 Срд 13:47:45 #386 №572815 
Тихой сапой языку стукнуло 30 лет.
Аноним 04/11/15 Срд 14:13:53 #387 №572840 
>>572815
И? Си больше сорока лет.
Лиспу почти шестьдесят.
И ничего.
Аноним 04/11/15 Срд 14:20:20 #388 №572847 
14466360205580.png
>>572840
Аноним 04/11/15 Срд 14:24:45 #389 №572851 
>>572639
Тебе нужно понять, как работает линкер. .h файл копируется между разными .o файлами, а .cpp файл - он один на каждый .o файл. Поэтому обычно в .h файле пишут extern глобальная_переменная, описывают классы и пишут функции на экспорт, а в .cpp файле уже определяют сами переменные, пишут реализации классов и внутренние функции. Но есть и исключения. Например, шаблонный код (сам код, не объявление) нужно писать в .h, и большая часть буста по этой причине находится в .hpp.
Аноним 04/11/15 Срд 15:11:54 #390 №572904 
>>572815
Накатим апдейты!
Аноним 04/11/15 Срд 16:02:27 #391 №572964 
>>572705
Нужно именно с калок-малок писать, лолка. А кроме как макросами не умею.
Аноним 04/11/15 Срд 16:11:11 #392 №572970 
>>572964
Прочитай памятку в оппосте: Лабы идут на хуй. Минимальный элемент http://stackoverflow.com/questions/13558081/return-index-of-smallest-element-in-array , на 2d случай обощи ответ заведя вместо int index = 0 ; два индекса int index_row = 0 ; int index_col = 0 ; . Далее передвигаешь все элементы после index_row на строку вверх, затирая таким образом твою строку. Затем - передвигаешь все элементы на столбец влево после index_col. Далее тебе остается пройтись одним циклом и сделать realloc каждой строки (на один элемент меньше), и в конце - финальный realloc.
Аноним 04/11/15 Срд 16:16:35 #393 №572972 
>>572964
У тебя какой-то странный вызов calloc, похоже на ошибку.
Аноним 04/11/15 Срд 16:18:39 #394 №572973 
>>572972
*sizeof(int) забыл
Аноним 04/11/15 Срд 17:22:40 #395 №573033 
Что написать чтобы уровень повысить и без сторонних библиотек? Какой-нибудь хэлоувордик консольный чтобы потом на гитхаб как первый проект выложить.
Аноним 04/11/15 Срд 17:25:28 #396 №573038 
>>573033
http://www.itmathrepetitor.ru/komandnye-kursovye-raboty-po-program/
Аноним 04/11/15 Срд 17:28:13 #397 №573041 
>>573038
Где искать инструкцию как это сделать если я в каком-то месте сосну?
Аноним 04/11/15 Срд 17:32:32 #398 №573048 
>>572851
>>572810
Ок, еще маленький вопрос: как с локализацией быть? Раньше видел, как пилили глобальные ассоциативные массивы, в них все языки, в них все фразы... Это наверное не очень подхолит для ООП. Как тут локализацию правильно запилить?
Аноним 04/11/15 Срд 18:02:44 #399 №573076 
>>572964
Ну так иди в си-тред, няша.
Аноним 04/11/15 Срд 18:05:53 #400 №573080 
>>573048
DEPENDENCY INJECTION
keep it simple, stupid
Аноним 04/11/15 Срд 19:40:33 #401 №573197 
>>572662
откуда вы такие только берётесь?
a = (int) calloc(N, M);
1. абсолютно ненужный каст. в чистых сях void хорошо и безопастно приводится к требуему типу. если компилятор выдаёт ошибку, значит ты мудак и пользуешь плюсяшным компилятором. а если ты пользуешься им, значит ты действительно мудак, ибо есть RAII с new/delete и прочими печеньками.
2. sizeof ты его забыл.
3. sizeof оператор, выдающий размер не только типа, но и переменных.
то бишь int a; sizeof(a) равносильно sizeof(int)
отсюда извлекаем профит
int
a = calloc(3, sizeof(a)); // это если не хочешь сильно привязываться к типу
#define ALLOCATE(num, type) calloc(num, sizeof( type ))
int
a = ALLOCATE(3, a)
#define INIT_ALLOCATE(num, type, name) type name = ALLOCATE(num, type)
INIT_ALLOCATE(3, int,
a) // со звёздочками как-то запаристо, мож, кто лучше предложит вариант
4. а ещё блять все эти макросы - ржавой ножовкой по пизде. начиная с С99 есть такая штука, как инлайн-функции. вот. изучай

дальше этой строчки кода не смотрел
приди ты ко мне сейчас на собеседование, я бы тебя выкинул нахуй в окно к всяким javascript-червям-пидорам
Аноним 04/11/15 Срд 19:41:15 #402 №573198 
>>573197
звёздочка у void проебалась макабой
Аноним 04/11/15 Срд 19:43:37 #403 №573204 
>>573197
> если компилятор выдаёт ошибку, значит ты мудак и пользуешь плюсяшным компилятором.
Ты пришел в С++ тред и говоришь кому-то, кто пользуется плюсовым компилятором, что он - мудак. Ну-ну.
Аноним 04/11/15 Срд 21:42:07 #404 №573318 
>>573204
Перечитай его пост, ну. И пусть хохлосрач умрет, не начавшись, будьте няшами.
Аноним 04/11/15 Срд 21:51:31 #405 №573333 
>>573197
Я только начал изучать С++.Поясните за всё,что только можно:зачем нужны текстовые редакторы вроде Visual Studio Code, Notepad++ и другие;поясните за другие компиляторы, когда есть visual studio 2015.И чем лучше пользоваться на первых порах.
Аноним 04/11/15 Срд 21:53:02 #406 №573336 
>>573318
Да понятно, что чел пришел с лабой, и он обязан сделать код с realloc. Нахуя сюда идти с советами "ыыыы че ты как лох". Можно или помочь, или нахуй послать.
Аноним 04/11/15 Срд 21:59:56 #407 №573343 
>>573333
Visual Studio как IDE идеальна, но она нормально работает только со своим компилятором, а он отстает в поддержке фич стандарта и вообще только для венды. Соответственно, приходится искать альтернативы ей, некоторые юзают другие IDE, а некоторые просто отказываются от IDE и пишут код в умных блокнотиках, вроде указанных тобой. Там нет нормального автодополнения, но зато и ебли с переходом между платформами никакой нет, компилятор полностью отчуждаемый. Кроме того, блокнотики юзают всяческие швабодные фундаменталисты, радикальные олдфаги с тезисом ДЕДЫ ПИСАЛИ В КОНСОЛИ И МЫ БУДЕМ, гнутые фанаты Vim и Emacs и прочие маргиналы.
Аноним 04/11/15 Срд 22:06:31 #408 №573349 
14466639918410.jpg
>>573343
Хорошо.Тогда буду ебаться с сложным интерфейсом vs.Спасибо.
Аноним 04/11/15 Срд 22:13:34 #409 №573366 
>>573333
Довольно лениво запускать IDE ради пары фиксов, особенно когда проект поделен между кучей языков. Блокнотик - твой лучший друг.
Аноним 04/11/15 Срд 22:18:08 #410 №573371 
>>573349
я бы тебе посоветовал не вестись на его напор. этот в своей ненависти к гнутым гикам тоже весьма радикален, как и они. попробуй вимы, емаксы тоже. с мэйкфайлами побалуйся. может пригодится позднее.
всё это всего лишь инструменты, не более того.
как плотник может любить пилу больше молотка?
"мне блять нравится пила и забивать я буду ею. идите нахуй с молотками" смешно же
Аноним 04/11/15 Срд 22:24:00 #411 №573376 
Завит ли тип данных от размера регистра ЦПУ?
Те для процессора с регистрами 32 бита(чистый x86) нельзя задать тип данных long long

И второе: что за тип данных "long double"? В учебнике написано что 10 байт, но компилятор говорит, что 8. И если первый вопрос верен, то получается никаких 10 байт не может существовать тк макс размер регистра 8 байт.

ps Мочу не пью.

Спасибо.
Аноним 04/11/15 Срд 22:29:14 #412 №573379 
>>573371
Это понятно на самом деле.Не будут же люди юзлесс говно делать,что в нем ебаться потом и страдать линукс не в счет.А если серьезно, то какой же сложный интерфейс у VS.От количества шаблонов только глаза разбегаются.
Аноним 04/11/15 Срд 22:30:11 #413 №573381 
>>573371
Да какой напор, братюнь? Я ничего против гнутых гиков не имею же, там много своих преимуществ, хоть мне это и чуждо. Максимум могу немного их осадить, если чересчур распроповедуются.
Аноним 04/11/15 Срд 22:33:09 #414 №573384 
>>573376
Тип данных может зависеть от чего угодно, в стандарте оговаривается обычно только минимальный размер типа. Если нужен конкретный размер - используй int32_t, uint64_t и прочие. int, как правило, самый оптимальный для данной платформы, char - минимальный и т. п. long double - FPU x86 умеет работать с десятибайтными числами, (double - восемь байт), отсюда он и берется. Не очень полезный. Если нужна арифметика учетверенной точности, лучше взять соответствующий шаблонный класс.
Аноним 04/11/15 Срд 22:34:22 #415 №573387 
>>573376
Зависит. Конкретный размер long long не определен. Но стандарт требует, чтобы компилятор поддерживал типы фиксированного размера, наподобие int64_t, если платформа меньшей разрядности, компилятор обязан обеспечить программную эмуляцию. То же самое касается long long и long double.
Аноним 04/11/15 Срд 22:53:24 #416 №573404 
>>573080
Чет мне это нихуя не говорит и гугление не сделало понятнее, я сильно новичок типа. Поясни или дай вариантов попроще.
>>573048
Бамп
Аноним 04/11/15 Срд 22:55:47 #417 №573407 
>>573404
Ну что ты бампаешь, я же тебе ответил. Ты можешь сделать DEPENDENCY INJECTION используя какой-нибудь ФРЕЙМВОРК, но глобальная переменная (СИНГЛТОН) тут самый простой и естественный способ.
Аноним 05/11/15 Чтв 01:27:47 #418 №573541 
>>567105
Вот еще глянь курс https://www.lektorium.tv/course/23050
охуенный, ящитаю. Мне помог собрать в голове все что раньше знал.
Аноним 05/11/15 Чтв 01:28:24 #419 №573543 
>>573379
Да и хуй с ней с этой сложность. VS + VAX - самая нормальная IDE, работающая из коробки. Надеюсь, что JetBrains допилят там свой CLion до вменяемого состояния.
Аноним 05/11/15 Чтв 01:30:20 #420 №573545 
>>566993
Довольно дристняво, если нет вменяемого бэкграунда в архитектуре и параллельке, ящитаю. Очень много запутанных моментов.
Аноним 05/11/15 Чтв 01:36:39 #421 №573552 
>>573543
Тебе лучше знать.Как тогда мне работать в них?Дай инструкцию.
Аноним 05/11/15 Чтв 01:37:44 #422 №573554 
>>573552
> Тебе лучше знать
С чего это вдруг?

> Как тогда мне работать в них?Дай инструкцию
Лол, а чего ты хочешь?
Аноним 05/11/15 Чтв 01:39:07 #423 №573556 
Есть какие годные проекты на джихаде чтобы вкатиться бодренько в попенсорс и контрибутить?
Аноним 05/11/15 Чтв 01:39:47 #424 №573559 
>>573554
Так я же говрил,что совсем зеленый я.Что ничего пока не понимаю.
Аноним 05/11/15 Чтв 01:41:40 #425 №573566 
>>573559
New project -> C/C++ -> Win32 Console Application
И без задней мысли пишешь свой хелло ворлд. VAX сможешь найти на рутрекере, там же будет инструкция по установке. В гугле на ангельском найдёшь инструкцию по настройке цветовой схемы.
Аноним 05/11/15 Чтв 01:45:45 #426 №573571 
>>573556
Хуй знает, я тут топлю за вкатывание в опенсорс, но проект, в который я вкатывался, уже помер. Но когда он еще не помер, я работу уже нашел.
Аноним 05/11/15 Чтв 01:47:26 #427 №573572 
>>573556
https://github.com/torvalds/linux
Аноним 05/11/15 Чтв 01:48:23 #428 №573573 
14466773040080.png
>>573566
А здесь трогать что либо?
Аноним 05/11/15 Чтв 01:51:04 #429 №573576 
>>573573
Сними галочки со всех чекбоксов, тебе оно пока что нахуй не нужно, позже разберёшься.
Аноним 05/11/15 Чтв 01:53:10 #430 №573578 
>>573576
Хорошо, пшел пилить хелооуворды.
Аноним 05/11/15 Чтв 01:55:52 #431 №573581 
>>573571
>>573571
Какой?
Аноним 05/11/15 Чтв 01:59:22 #432 №573583 
>>573581
Clay
Аноним 05/11/15 Чтв 02:01:07 #433 №573584 
вот этот Clay, а то я смотрю, там гуглится что угодно https://github.com/jckarter/clay
Аноним 05/11/15 Чтв 02:15:46 #434 №573586 
>>573584
Собственно, я только это и нагуглил, хз.
Аноним 05/11/15 Чтв 02:20:36 #435 №573587 
>>573586
Я смотрел проект, в котором не висят пуллреквесты по полгода, но при этом тот, о котором слышал, а не гитхаб анона. Вкатился где-то за неделю - собрал (на винде, лол), отписал сначала фаундеру-индусу, он не ответил, написал мейнтейнеру. Через месяц где-то получил проект на одеске - встроить V8 в какой-то код, заработал $600, ну и завертелось.
Аноним 05/11/15 Чтв 02:29:16 #436 №573592 
https://github.com/QupZilla/qupzilla
Аноним 05/11/15 Чтв 02:54:22 #437 №573598 
Это нормально,что я переписываю почти почти весь текст из учебникаиз шапки в тетрадь?
Аноним 05/11/15 Чтв 03:26:51 #438 №573605 
>>573598
Если это помогает запомнить синтаксис и понять что вообще происходит, то хоть на лбу вырезай.
Аноним 05/11/15 Чтв 03:52:58 #439 №573609 
14466847789290.jpg
В шараге дали некое задание, не вызывающее затруднений. Но сказали, что передавать значения в main() из подпрограмм нужно указателями.
А указывать нужно на массив символов, которые считываются с клавиатуры. Целый день сидел штудировал учебники и гугл, перепробовал много вариантов, но всегда выходят ошибки с инициализацией указателя.

Можете подсказать что-нибудь?
Аноним 05/11/15 Чтв 04:08:56 #440 №573615 
>>573609
Переменные внутри input() не будет видно в main(), делай их глобальными как минимум. Передавать знание - это void input(char parameter1, char parameter2) и т. п. Массивы в таком виде не могут иметь переменный размер, или используй malloc, или выделяй буфер побольше. Пока все.
Аноним 05/11/15 Чтв 04:12:55 #441 №573616 
>>573615
Спасибо огромное.
Аноним 05/11/15 Чтв 10:00:20 #442 №573651 
>>573576
а расскажи, чё значит Security Development Lifecycle (SDL) checks
Аноним 05/11/15 Чтв 10:02:22 #443 №573653 
>>573573
снимаешь галочку Precompiled header, ставишь галочку Empty project
Аноним 05/11/15 Чтв 10:07:29 #444 №573655 
>>573653
Теперь нет поля для ввода текста.Что-то пошло не так.
Аноним 05/11/15 Чтв 10:10:07 #445 №573657 
>>573655
Какого поля для ввода текста. Ты хэллоуворлд в консоли пишешь или что?
Аноним 05/11/15 Чтв 10:12:22 #446 №573660 
14467075426080.png
>>573657
Куда писать программу?
Аноним 05/11/15 Чтв 10:13:48 #447 №573661 
>>573660
Ну так empty project же. Лол, классный сосет тебе дали. Теперь нажми правую кнопку на папке source files справа, выбери добавить новый файл, назови его main.cpp и в нем пиши. Или пересоздай непустой проект.
Аноним 05/11/15 Чтв 10:15:33 #448 №573663 
>>573660
Ты суров. Короче, правой кнопкой мыши на Source Files, дальше добавь main.cpp
Аноним 05/11/15 Чтв 10:16:42 #449 №573664 
>>573663
>>573661
Ладно.Это теперь понятно.Поясните за строчку #include "stdafx.h" Что-то пока про неё нигде не писали, но она есть, когда создаешь не пустой проект.
Аноним 05/11/15 Чтв 10:19:31 #450 №573665 
>>573664
Туда пихаются как раз precompiled header'ы для ускорения компиляции
Аноним 05/11/15 Чтв 10:21:13 #451 №573666 
>>573664
Тебе эта строчка категорически вредна. Ты знаешь, какие функции и прочие константы/макросы etc она позволяет задействовать в твоей программе? Нет, не знаешь.

используешь cin/cout -- добавляешь <iostream>
используешь string -- добавляешь <string>

и т.д.
Аноним 05/11/15 Чтв 10:25:43 #452 №573667 
>>573666
Хорошо.
Аноним 05/11/15 Чтв 10:43:54 #453 №573683 
Плюсы, поясните пожалуйста новичку - я написал простенькую программу на вижул студии. В дебаге есть .ехе файл, который запускает программу. А как сделать чтобы она работала под линуксом?
Аноним 05/11/15 Чтв 10:46:47 #454 №573685 
>>573683
Через wine она уже работает на линуксе. А так - скомпилируй gcc на линуксе или кросс-компиляцией (хотя забей, второе - не для тебя)
Аноним 05/11/15 Чтв 10:48:46 #455 №573689 
>>573685
Не хочу через вино запускать программы, которые можно и так сделать под линукс. Там простенький код на ++.
А как сделать кросс-компиляцию? Вижуал не компилирует под линукс?
Аноним 05/11/15 Чтв 10:51:29 #456 №573694 
>>573685
>кросс-компиляцией
Ну-ка расскажи, мне тоже интересно. Тоже Вижуал Студия 2015, камьюнити.
Аноним 05/11/15 Чтв 10:52:25 #457 №573695 
>>573683
Что на счет быстрого ввода?Стоит использовать или всё ручками вводить?
Аноним 05/11/15 Чтв 10:59:52 #458 №573698 
>>573689
>>573694
Не, vs вряд ли такое может
Аноним 05/11/15 Чтв 11:03:29 #459 №573702 
>>573695
А что такое быстрый ввод?
Аноним 05/11/15 Чтв 11:07:12 #460 №573703 
14467108323250.png
>>573702
Я я это имел ввиду.
Аноним 05/11/15 Чтв 11:20:59 #461 №573711 
>>573703
Автодополнение? Ну, первое время я ручками всё вбивал, т.к.скорость моего кодирвоания была порядка 10 строчек в день.

Сейчас скорость кодирования новых строчек в день ещё ниже, но переписываю старое. А вообще нахер, эта штуковина именно в Студии иногда сжирает что идёт после, так можно очень классно прострелить себе ногу.
Аноним 05/11/15 Чтв 13:18:34 #462 №573809 
>>573587
А зачем писал-то фаундеру?
Аноним 05/11/15 Чтв 16:39:01 #463 №573953 
Нужно написать для курсового проекта простенькое клиент-сервер приложение используя mfc либо winforms. Посоветуйте литературы || видосов || ресурсов нюфане.
Аноним 05/11/15 Чтв 16:51:49 #464 №573966 
https://github.com/bittorrent/bootstrap-dht/blob/master/lazy_bdecode.cpp#L49-L71
Посяните, какой смысл заворачивать в namespace N что-то в анонимный неймспейс.
Аноним 05/11/15 Чтв 16:52:30 #465 №573968 
>>573966
И вообще, зачем нужны анонимный неймспейсы.
Аноним 05/11/15 Чтв 16:53:15 #466 №573969 
>>573809
А кому? На сайте был один имейл, откуда я знаю, как у них что. Это сейчас там 2 имейла висит. А потом я выковырял имейл мейнтейнера из гитхаба, он мне ответил на вопросы.
Аноним 05/11/15 Чтв 17:16:37 #467 №573997 
>>573969
Я понял, что плюсы и попенсорц идут немного врозь.
Если будет свободное время и/или идеи - отписывай в тред, могу вкатиться в начинания.
Аноним 05/11/15 Чтв 19:42:30 #468 №574209 
>>573968
Такой, что видимость имен из анонимных неймспейсов не до закрывающей скобки, а до конца файла. И их из-за этого можно и нужно юзать вместо глобальных static.
Аноним 05/11/15 Чтв 19:51:41 #469 №574215 
>>573683
>>573694
оборачиваешь платформо-зависимые вещи в красивые обоиобёртки. внутри обёрток ifdef'ишь. рядом с визуальными файлами херачишь makefile'ы. профит1
я так делал кросс-платформенный чятик для линуха и винды курсе эдак на втором.
Аноним 05/11/15 Чтв 20:07:11 #470 №574234 
14467432316380.png
Подскажите в чем косяк? Только начинаю учиться. Копирую пример из книги, а компилятор ругается на ошибки. То ли я ебанутый, то ли книга хуевые примеры дает?! Даже ебучий хеловорд не печатает! Перепробовал дохуя иде, а результат один.
Аноним 05/11/15 Чтв 20:09:05 #471 №574236 
>>574234
<< как 2 символа должны быть.
Аноним 05/11/15 Чтв 20:10:27 #472 №574239 
>>574236
То же самое и с >>
Алсо что за пиздец у тебя в именах файлов? Или ты там Duden хотел закрасить?
Аноним 05/11/15 Чтв 20:16:17 #473 №574247 
>>574236
>>574239
Спасибо, запустилось. Тупо лучше не копипастить.

>Или ты там Duden хотел закрасить?
Согласен, неудачно. :P
Аноним 05/11/15 Чтв 20:18:01 #474 №574248 
>>574247
Да, лучше не копипасть, а ручками, это как минимум полезно.
Аноним 05/11/15 Чтв 20:24:51 #475 №574254 
>>574248
ОК! У вас тут смотрю в треде чайников нет, есть какой-то другой тред для таких вопросов?
Аноним 05/11/15 Чтв 20:36:10 #476 №574268 
>>574254
Да пох, все равно доска слоу
Аноним 05/11/15 Чтв 20:37:31 #477 №574273 
>>574268
Добра, буду обращаться при затупах.
Аноним 05/11/15 Чтв 20:43:32 #478 №574281 
>>574268
Еще спрошу: читал, что в си очень плохо все с графикой, то есть порисовать всяких снеговиков, как в паскале, тут не получится. Я подтвердил сам себе, когда подключал какую-то графическую библиотеку к девсиплюс. После этого у меня там даже хеловорд переставал запускаться. Лечил все переустановкой. Это действитьельно так, си не дружит с графикой, или проблема опять во мне?
Аноним 05/11/15 Чтв 20:46:45 #479 №574285 
>>574281
Из коробки ся не имеет ни малейшего понятия ни о консоли, ни о графике. Со сторонними либами все очень хорошо с графикой, но надо будет разобраться сначала с ними.
Аноним 05/11/15 Чтв 20:52:29 #480 №574293 
>>574285
>надо будет разобраться сначала с ними
Ключевое слово! Я оказался к этому не готов, хотя перегуглил, наверное, весь инет. Ладно, оставлю это на потом.
Аноним 05/11/15 Чтв 21:00:38 #481 №574301 
И еще момент интересен: почему в разных книгах так отличается синтаксис программ? Это старый и новый стили? Какой лучше использовать? Для себя решил, использовать лучше тот, какую книгу решишь читать. Например, две проги на сложение:

// Программа сложения, показывающая сумму двух целых чисел.
#include <iostream> // позволяет программе производить ввод/вывод

// функция main начинает исполнение программы
int main()
{

int number1; // первое из складываемых чисел
int number2; // второе из складываемых чисел
int sum; // сумма number1 и number2

std::cout << "Enter first integer: "; // запросить данные
std::cin >> number1; // прочитать первое число в numberl

std::cout << "Enter second integer: "; // запросить данные
std::cin >> number2; // прочитать второе число в number2

sum = number1 + number2; // сложить числа; записать сумму в sum

std::cout << "Sum is " << sum << std::endl; // вывести сумму



} // конец функции main


#include <stdio.h>
#include <conio.h>
main()
{
int a, b, c; // объявление переменных
printf ( "Введите два целых числа \n" ); // подсказка для ввода
scanf ( "%d%d", &a, &b ); // ввод данных
c = a + b; // вычисления (оператор присваивания)
printf ( "Результат: %d + %d = %d \n",
a, b, c ); // вывод результата
getch();
}

Аноним 05/11/15 Чтв 21:11:43 #482 №574312 
>>574301
Первая С++, вторая С.
Аноним 05/11/15 Чтв 21:21:20 #483 №574319 
>>574312
У си, мне кажется, синтаксис более наглядным, по крайней мере из этих двух программ. Это и дальше так будет, или просто первое впечатление?
Аноним 05/11/15 Чтв 22:00:01 #484 №574346 
>>574319
Первое впечатление.
Стандарт сей - 300 страниц. Плюсов - 1000. Разница не только в синтаксисе, но и в способах решения задач, в идеалогии и мышлении.
Аноним 05/11/15 Чтв 22:02:19 #485 №574348 
Есть тут кто программирует на линуксе?
Поясните, я читаю что gcc компилирует файл, создал простой хулло ворлд, а он мне ошибки пишет: error trying to exec 'cclplus': execvp: no such file
Я гуглил, вроде на некоторых сайтах пишут про g++, а на некоторых что надо использовать gcc. Я не понял ничего, поясните пожалуйста.
Аноним 05/11/15 Чтв 22:02:59 #486 №574349 
>>574319
>scanf ( "%d%d", &a, &b );
Как вот эта дрисня может быть наглядней?
Аноним 05/11/15 Чтв 22:03:30 #487 №574350 
>>574348
g++ юзай. gcc для сей
Аноним 05/11/15 Чтв 22:03:54 #488 №574351 
>>574350
>сей
Для чего?
Аноним 05/11/15 Чтв 22:04:46 #489 №574352 
>>574351
для Языка Погромированния Си, блять
Аноним 05/11/15 Чтв 22:05:29 #490 №574353 
>>574352
Спасибо.
Аноним 05/11/15 Чтв 22:08:03 #491 №574357 
>>574346
>>574349
ОК! Спасибо, добавил тред в избранное.
Аноним 05/11/15 Чтв 22:08:36 #492 №574358 
>>574348
gcc - это одновременно и название программы компилятора сей, и в тоже время название семейства компиляторов, использующих один бэкенд и промежуточное представление кода.
g++ - компилятор из этого семейства для плюсов.
когда в контексте плюсов упоминают gcc, имеют в виду g++
Аноним 05/11/15 Чтв 22:30:01 #493 №574371 
>>574357
Ну тот факт, что мои ответы совпали со вторым аноном, который тебе отвечал, ещё не означает, что это истина в последней инстанции. Так, пишу на всякий случай.

Кстати, пора бы готовить перекат. Где там ОП?
Аноним 05/11/15 Чтв 22:37:28 #494 №574374 
Подскажите, нормально ли программировать на ++ на линуксе?
Я просто пишу в .сс файлик и его компилирию в g++, не очень удобно, но все ошибки выводит в терминал.
Аноним 05/11/15 Чтв 22:38:50 #495 №574377 
>>573660
Проиграл неистово.
Аноним 05/11/15 Чтв 23:42:55 #496 №574413 
>>574374
Тебе подойдёт geany.
Аноним 05/11/15 Чтв 23:48:06 #497 №574415 
>>574349
Например, %2.5lf куда нагляднее крестового аналога для потоков.
Аноним 05/11/15 Чтв 23:50:22 #498 №574416 
>>574415
>%2.5lf
Ни розумию. Как это на крестах будет?
Аноним 05/11/15 Чтв 23:54:33 #499 №574418 
>>573953
>для курсового проекта
Я ебал. http://www.stolyarov.info/books/gameserv
Аноним 06/11/15 Птн 00:02:46 #500 №574420 
>>574416
Вывести double, для целой части использовать минимум 2 символа, для дробной ровно 5.

Либо локальный фильтр, либо глобальные свойство, в зависимости от необходимости.
Аноним 06/11/15 Птн 00:04:49 #501 №574421 
>>574420
А как это на крестах будет?
Аноним 06/11/15 Птн 01:10:40 #502 №574443 
>>574421
#include <iomanip>
double n{ 23.233245 };
std::cout << std::setprecision(5) << n << std::endl;
Аноним 06/11/15 Птн 01:13:27 #503 №574444 
>>574421
http://www.umich.edu/~eecs381/handouts/formatting.pdf
Аноним 06/11/15 Птн 01:56:24 #504 №574461 
>>574443
На крестах понятней
Аноним 06/11/15 Птн 11:22:40 #505 №574556 
>>574443
>std::setprecision(5)
тогда уж 7, а не 5
Аноним 06/11/15 Птн 11:52:05 #506 №574561 
Где перекот?
Аноним 06/11/15 Птн 12:33:21 #507 №574574 
ОП-хуй, не спи. Ну или кто-нибудь возьмите бразды правления в свои руки.
Аноним 06/11/15 Птн 14:58:18 #508 №574645 
>>574561
>>574574
Терпение, друзья мои.
Аноним 06/11/15 Птн 15:35:53 #509 №574667 
>>574645
От лица обоих друзей выражаю признательность за то, что ты начал пилить перекат. Жду-не дождусь нового Данте Алигьери

Семён
Аноним 06/11/15 Птн 16:32:47 #510 №574716 
>>574667
>>574574
>>574561
НОВЫЙ ТРЕД
https://2ch.hk/pr/res/574713.html
https://2ch.hk/pr/res/574713.html
Аноним 06/11/15 Птн 16:47:02 #511 №574728 
14468176228400.jpg
>>566041 (OP)
Анон, а чего почитать чтобы стать системщиком под линукс? Знание C++ уровня использования Qt.
comments powered by Disqus

Отзывы и предложения