Это копия, сохраненная 28 апреля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
И спросил: "Антоха,
Как мне кодить хорошо
И не кодить плохо?" -
"У меня секретов нет -
Расскажу, что знаю," -
Анонимуса ответ
В шапке помещаю:
"Кто пихает грязный хак
В лабу воровато,
Тот бездельник и дурак,
Быть им плоховато.
Кто бандитов четырех
Вспомнит даже ночью,
У того весь код неплох
Абсолютно точно.
Кто о тактах не слыхал,
С asm'ом кто не дружен,
У того не код, а кал -
Здесь такой не нужен.
Этот - старый байтоеб,
Бородой заросший.
От крестов он хмурит лоб,
Но пишет код хороший.
Этот - макросы подряд
Лепит без оглядки.
Про такого говорят -
Он грязнуля, гадкий.
Тот - Макконнелла прочел,
Код свой правит вечно.
Из такого выйдет толк,
Сомневаться нечего.
Правила у нас просты,
Помните, нюфани:
Не осилит тот кресты,
Кто халтурить станет..."
Не дослушав, нуб ушел,
Прошептав со вздохом:
"Быть макакой хорошо,
А крестоблядком - плохо".
Старший брат: >>683573 (OP)
Предыдущий: >>696401 (OP)
TL;DR
Q: Я хочу тотчас вкатиться, а разбираться буду в процессе. Что я должен делать?
Q: Не уверен, что хочу изучать C++. Как мне пощупать его без лишней ебли?
A: Читаешь эту книжку, смотришь упражнения из нее и суешь в онлайн-компилятор. Сообщения компилятора об ошибках копипастишь в гугл, ответы на возникающие у тебя вопросы ищешь в предыдущих тредах, спрашиваешь в этом треде, если не нашел. Если тебя послали на хуй или не ответили, то ты спросил платину, читай предыдущие треды внимательнее.
Памятка ньюфагу
- Вопросы по синтаксису идут на хуй
- Лабы идут на хуй
- "Как мне сделать Х на чистых крестах без библиотек" идут на хуй
- Все идут на хуй
- Хейтер сосет члены на пару со своей мамашей
Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля. Для больших фрагментов используй внешние сервисы.
FAQ
Мотивация
Q: Почему стоит использовать именно C++?
A: Ни один язык не идеален, но по совокупности киллер-фич C++ оставляет все остальные языки позади. Вот основные три:
- Скорость
C++ действительно быстрый язык — вместе с C, его прародителем, они с большим отрывом уделывают по скорости все остальные языки высокого уровня. Код на C++, как правило, медленнее аналогичного кода на C приблизительно на 0-20% а в ряде случаев C++ оказывается даже быстрее, причем замедление появляется только при использовании высокоуровневых конструкций (в C++ ты никогда не платишь за то, чего не используешь). Таким образом, если тебе требуется высокопроизводительный код, C++ станет отличным выбором. - Мощь
C++, являясь одним из наиболее выразительных и мощных языков, позволяет использовать большинство существующих парадигм. Его философия построена на минимальном ограничении программиста в выборе методов и инструментовпростреливания ногирешения задачи. Как следствие, используя C++, ты можешь не думать о том, как обойти искуственные ограничения языка, а беспрепятственно выбрать наиболее подходящие к ситуации средства. - Популярность
C++ по-настоящему популярен. На нем написаны десятки тысяч приложений и миллиарды строк кода, о нем написаны сотни книг, он до мельчайших подробностей документирован и стандартизован. Используя C++, ты никогда не останешься без работы или поддержки комьюнити.
Литература
Q: Окей, я решил вкатиться. Какие же книги мне читать?
A: Специально для тебя аноны /pr собрали уникальную коллекцию отборной литературы по крестам. Только лучшие книги, последние издания, без хуев! Выбирай категорию и обмазывайся:
-
Для нюфань
Учебники для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один, который больше приглянется:
Автор(ы) Название Год Ссылка Бьерн Страуструп Программирование. Принципы и практика использования C++ 2016 https://yadi.sk/i/Yd6KKpLBqJSUr Стэнли Липпман, Жози Лажойе и Барбара Му Язык программирования C++ 2014 https://goo.gl/kVaela Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u
Другие обучающие материалы
Q: Я не умею читать.
A: Можешь посмотреть какой-нибудь онлайн-курс: раз, два, три
Q: Не люблю, когда льют воду. Хочу коротких материалов по существу.
A: Вот тебе блоги, факи, референсы и всякое такое:
- Годный блог, в котором все просто и понятно тян не нужны кококок борщ
- Блог с хорошо расписанными фичами новых стандартов
- Краткие описания библиотечных функций и контейнеров - на русском или более подробно на ангельском
- Блог Герба Саттера (на ангельском)
- Блог Скотта Мейерса (на ангельском)
- Блог еще одной тянки, много о Qt и оптимизации (на ангельском)
- Куча других блогов (на ангельском)
- Большой FAQ по C++ (на ангельском)
- Видео с CppCon (на ангельском)
Софт и библиотеки
Q: Я готов начать погроммировать! Куда мне писать код?
A: На этапе написания хэллоуворлдов можно не ебаться с установкой софта, а использовать онлайн-компиляторы: раз, два, три, четыре. Для работы над более серьезными вещами удобнее всего установить какую-нибудь IDE. Ниже приведены несколько хороших вариантов:
Платформа | Название | Описание | Ссылка |
---|---|---|---|
Windows | Microsoft™ Visual Studio® | Общепризнанно самая продвинутая и удобная IDE, не имеющая равных по части автодополнения и возможностей отладчика. По ссылкам справа можно скачать бесплатную редакцию последнего выпуска (2015 Community Edition). Кроме того, существуют редакции с расширенными возможностями (Professional и Enterprise). Они стоят сотни денег, но если ты студент вуза, подписанного на Dreamspark Premium, то ты можешь получить их безвоздмездно (то есть даром). Многим новичкам интерфейс студии кажется чересчур сложным, так что обязательно прочти этот гайд, если у тебя возникают проблемы с компиляцией хэллоуворда | https://goo.gl/qgAAc6 (русская версия) или https://goo.gl/WIPW9L (ангельская версия) |
Все | CodeLite | Простая, легковесная, кроссплатформенная, швабодная IDE. Менее навороченная, чем студия, но среди бесплатных вне конкуренции. Вероятно, это наилучший вариант для новичка с *nix. Под Windows же требует чуть больше ебли с установкой компилятора MinGW/LLVM | http://codelite.org/, "sudo aptitude install codelite codelite-plugins" для установки под *nix |
Все | CLion | IDE, призванная похоронить Visual Studio пока не особо получается. Она стоит денег, но можно украсть почти не протухшую версию на торрентах или получить бесплатную лицензию на год по скану студбилета, если ты студент. Удобные свистелки и перделки присутствуют. Тормоза и баги присутствуют. Кросплатформенность присутствует | https://www.jetbrains.com/clion |
Q: Я прочитал все вышеперечисленное, теперь я гуру! Что дальше?
A: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.
А это тут при чём?
Есть текущая работа (100к+) в ДС, но она связана с промышленной автоматизацией. В геймдев вакансии все - ЮНИТИ ХУЮНИТИ, Сишарп и прочая блевота, а я, все таки, не зря байты ебу. Да и ААА пишется на плюсах.
Пердолю по чуть чуть опенгл, но мне кажется, что это немного не то. С другой стороны, взять UE4, нашлепать в редакторе игру - тож хуета. Что делать?
Переехать в страну где делают игры.
чувак
твоя работа в 10 раз лучше той чем тебе придется заниматься в русском игрострое
просто поверь
занятия типа портировать очередную ios игрулю на андроид или сидеть на саппорте второго уровня какой-нибудь mmorpg - это еще не самое страшное что бывает в нашем геймдейве
задал вопрос..
>>699323
тут идет флудответ про ссылку седа https://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html
так как этот код работает только на лине! а у меня нихуя не линь и эта либа идет нахуй!
что делать.
зы есть /dev/video0 нужно пик стащить (можно пик стащить и скриптом но консольно!) это треш! я не ебу почему все на линь молятся! говно без задач же!
У меня пара вопросов:
1. Как по хардкору WinAPI выучить? Чего почитать/посмотреть. Книги может годные какие есть? Ну так, чтобы сегодня читать сел, а через месяц уже в кнопочки/менюшки мог.
2. Чего учить - Direct3D или OpenGL?
Я планирую год помариноваться для портфолио и за бугор валить. Без опыта не возьмут. Вот и думаю.
1. Бессмысленно, т.к. никто на винапи кнопочки менюшки не делает уже сто лет как. А вообще Рихтера почитать для общего развития полезно.
2. Opengl
А геймдеф зачем тогда?
я тебе говорю не о системе.. читай весь пост.
как мне стащить пик с потока типо /dev/video0 без v4l2
уже принимается любой способ от qt до чего vlc
осбатхерт мой.. ну прости!
Сажу выключи, мудило. На самом деле тут наверно никто не знает ответ. Иди на СО, тостер, ЛОР.
А они возьмут хуя который год в техподдержке рашкинско сидел?
Тогда пили свой мега-ёба-ультра-анлимитед-дитейл-воксел-рендерер, для портфолио звучит убедительнее.
>Рихтера
А что конкретно, чтобы можно было писать под XP без использования .Net Framework. В моем гугле гуглятся книги только по C# и .Net
как ты себе это представляешь? (без шуток, я просто правда не понимаю)
Для большей части софта достаточно стандартной библиотеки и пары спецлиб.
Для всего-на-свете есть qt, для гуя есть fltk, sciter framework, Awesomium, да хуева гора всего. Без .Net
на С++ пишем рендер + физику и пару карт на рисуем
код будем держать на гите..
обсудить все аспекты в токсе.
я начал пока рендер писать.. смотрю вот как мои знания термеха вложить в вертексный шейдер и написать модель маниямира для 6ти степеней свободы для каждой модельки.
такие дела..
потом сеть... звук гденить спиздить.
потоки стабилизировать. и вуаля.. програмач тестит q5-hl3-aninemod
Какую-то хуйню несёшь: читать из /dev/video0 по-твоему не платформо зависимо?
YouCompleteMe, cppcomplete под vim пробовал. Eclipse и всю эту java не предлагать pls.
Думаю юзать YouCompleteMe, но наверное есть что-от лучше.
ну я что-то не так сказал? угловые позиции -- результат знаний термеха
матрицы поворотов -- идут в вертексный шейдер
логику собери в кудак
Microsoft Visual Studio 2015 + Resharper C++.
Лучше нет ничего. Даже если ты красноглазик.
На работе я один сижу в Студии, все остальные в виме. Бедняги.
а, я проебал слово консольный. Тогда лишь могу рекомендовать выкинуть нахуй консоль и вступить в 21ый век.
> Посоветуйте хорошую летающую тарелку. Нужна чтоб из камней и палок, сверхсветовая скорость, собиралась на коленке.
Вот это ты лолка. Твой решарпер не лучше эклипса. Нахуй на винде тогда сидеть? Особенно, когда проект кроссплатформенный, а проектные файлы - Cmake. Вот это ты аутист, еще и деньги тратишь.
На больших проектах(от 400МБ исходников) eclipse и clion будут жрать до 6GB. В сочетании с ssd тебя это полностью устроит - никаких зависаний не будет.
Что поделать, умственно неполноценные неспособны использовать человеческий интерфейс и считают его дерьмом, так что для этих отбитых даунов-аутистов сделали консоль.
> от 400МБ исходников
Это как? Что это должен быть за проект, чтобы в нём было 400 МБ исходников?
наукоемкие йоба-тулы как нехуй делать преодолевают этот порог.
>702658
> от 400МБ исходников
>Это как? Что это должен быть за проект, чтобы в нём было 400 МБ исходников?
Почти 400 мегабайт текста в проекте в котором работаю. Игра для пека.
>702662
>702658
> от 400МБ исходников
>Это как? Что это должен быть за проект, чтобы в нём было 400 МБ исходников?
>Почти 400 мегабайт текста в проекте в котором работаю. Игра для пека.
>>702666
>702662
>702658
> от 400МБ исходников
>Это как? Что это должен быть за проект, чтобы в нём было 400 МБ исходников?
>Почти 400 мегабайт текста в проекте в котором работаю. Игра для пека.
Не считая вспомогательных тулз естественно.
Во фряхе вообще 1.0G
Не, пижжу - 254MB
Так не чистые сырцы, наверное. А собранные.
Я могу .git добавить к этому, будет 2 гига вообще.
Сам я с 2.5 годами опыта.
мимо-ищу-уже-неделю
Нит:
[~/sources/linux]
user@host $ make mrproper
CLEAN scripts/basic
CLEAN scripts/kconfig
CLEAN include/config include/generated
[~/sources/linux]
user@host $ du -s --exclude=.git
1.2G.
Ну и как ты объяснишь 642.6 МБ через гуй?
У меня подозрение, что du считает ещё и директории. А гуй — только размер файлов.
>702706
>-P, --no-dereference
>don't follow any symbolic links (this is the default)
Алиас на комнду в шелле?
Если нет, то ита бах. Репорть, пофиксь, вот это все.
>Короче, вот
>[~/sources/linux]
>user@host $ du -s --apparent-size --exclude='.git'
>613M\t.
Мне кажется, у тебя на диске охуительная фрагментация.
А при чём тут фрагментация? Просто дохрена мелких файлов при размере блока в 4 килобайта.
>702717
>А при чём тут фрагментация? Просто дохрена мелких файлов при размере блока в 4 килобайта.
Так это же определение фрагментации. Оставшееся место на диске не используется для хранения других файлов.
>Так это же определение фрагментации.
Ну разве что internal.
Вроде ext не умеет паковать несколько файлов в один блок.
>Ну когда у тебя данные нелинейно на диске размазаны.
А, понял. Кстати ext4 не умеет block suballocation
Заценю немного позже. Спасибо
оо, бсдшник..
помоги ме с этим!
>>702255
мимо в бсд годно идет марс и кутекреатор. но в консоли писать.. вим и скриптов на все случаи жизни на баше.. хотя лол.. можно иде накапчевать на нкурсесе.. чтобы с хоткеями и вкладками.. но это трешак! особенно на стадии анализатор кода не работает . выйдет годный продукт.. лел сам пересел бы туда если бы не работа с иксами в проекте
Интересно. Не сталкивался с этой задачей, но гугол дает линк https://forums.freebsd.org/threads/19127/
Советуют через mplayer
mplayer tv:// -cache 128 -tv driver=v4l2:width=640:height=480:device=/dev/video0 > /dev/null 2>&1
Но это скорее всего хуйня. Есть мысль копать сорсы webcam прог. Но это платформ-зависимо будет.
Устроился по блату на 113 тысяч в ДС с опытом работы полгода (пхпшником лал).
Сделал правильно тестовое (1 из ~50 кандидатов, серьезно), потому-что эйчарка спалила мне, что на нем будет (я эту тему поучил пару дней). Прошел 2 собеса, второй был на английском. Ну и взяли. Сижу уже 4 месяца нихуя не делаю вообще, т.к. ждем, пока проект нам отдадут.
что бы блять в конце не ставил
и system("pause")
и cin.get();
и даже _getch();
постоянно ебанная ошибка
"Вызвано исключение по адресу 0хсссссссссс(ntdll.dll)
Нарушение прав доступа при чтении по адресу 0хсссссссссс"
что у меня не так бл?
>>702884
в принципе utox цепляет камеру в бсд, но смотреть как это в utox сделано -- крайняя мера т.к. тогда срок работы разрастется в недели!
qtlibs не жует видеопоток с камеры. сейчас в поисках гайда от дивелопероа webcamd эти ребята хотябы /dev/video* намутили.. должны же они изигайд оставить!
билд компилит, ошибка на system("pause")
0xC0000005: Нарушение прав доступа при чтении
вот полный код!
http://pastebin.com/PwtES5pB
тут ошибка на 118 строке вышеуказанная..
>д компилит, ошибка на system("pause")
и рабит, прикинь!
system -- это ты кидаешь команду в шел
Енжой ёр сипипи
это справа или за окнами??
бля ты заебал вайпать тред со мной!
я просто хочу прочитать qr код вебкамерой в frebsd
>>702957
А ТЫ ВООБШЕ ВЫПЕЛИСЬ В ОКНО! БЛЯ
У МЕНЯ ТОТАЛЬНЫЙ ПИЗДЕЦ АНОНА А ТЫ БЛЯ ВАЙПАЕШЬ ЛЮБИМЫЙ ТРЕД. ЗДОХНИ!!!!111АДИН!11
простите, а не соизволите уточнить, уважаемый(нет), с чего именно вы проиграли?
>>Совет на heap corruption - сменить компилятор?
>Ты совсем отбитый?
ну да.. проеб
cin.get();
рабочий варик 100% хули он пиздит?
char *a;
cin >> a;
рабочий варик пусть и не тот
бля.. да для hallloword в гуголе гляни и также ебани!
>>702971 лол.. не читал даже до system pause.. так проскролил..
>>702975
с того что ты ебаный обфускатор, вот с чего,
>>702979
бля! когда ты сьебешь туда откуда прикатился? на типичного программиста своего
2. Вместо "using namespace std;" делай "using std::cout;"
3. <conio.h> выкинь нахуй.
4. "delete[] dblPtA;" выкинь нахуй, используй unique_ptr
5. Инкапсулируй матрицы в классе, не плоди убожество.
6. Вместо system("pause") юзай std::cin.get(), как сказал товарищ выше.
> 2. Вместо "using namespace std;" делай "using std::cout;"
> 6. Вместо system("pause") юзай std::cin.get(), как сказал товарищ выше.
В чем разница? Я новенький.
>2
Ты переносишь все имена из ::std в неймспейс ::. Если захочешь написать свою функцию sort, тебя ждет сюрприз.
>6
system("pause) платформозависимое говно, которое дергает внешнюю программу через систему. Нахуя этим заниматься, когда нужно просто дождаться ввода любого символа в stdin, что прекрасно делает .get() в istream?
К чему там всякие файлы манифестов, ебала со структурами безопасности. Все эти флаги, ну нахуй они? ИРЛ их кто-то использует? Там ведь все в общем заключается, что твой процесс имеет/нет право что-то читать/записывать, доступ к объектам ядра и т.д. Вот это вот нахуя так подробно все описывать, поясните, кто знает.
На счет 6 понятно, а 2 делает тоже самое, но работает всегда безотказно, так?
Я читал. Для общего развития полезно очень.
интересно что моя любовь к гавнокоду это не дала сделать
мимо делаю мелкий клас для работы с подобными stl штуками.
И такие редкие экземпляры есть? Вау!
lol
Нужно хранить массив объектов разных типов. Все нужные типы заранее известны, их кострукторы тривиальны.
Что лучше использовать boost::any или свой костыль с union и флагами?
640 хватит каждому, базарю.
>Нужно хранить массив объектов разных типов. Все нужные типы заранее известны, их кострукторы тривиальны.
костыль, обычно, хуже
Шо то хуйня, шо это хуйня. Правильные посоны выделят общую для этих нужных типов функциональность в адаптер, а еще лучше приведут их к общему интерфейсу, если есть возможность рефакторинга. И да, тут ты скажешь, что общей функциональности у них - хуй да нихуя, а я, в свою очередь, отвечу, что тогда тебе в принципе не может понадобиться хранить их вместе без какой-либо дополнительной инфы о том, что там за объекты. А если инфа есть - берешь ее и хуяришь в адаптер, чтобы в нем были безопасные селектирующие методы.
Да ни в чём, просто не уверен.
Решил сегодня таки развернуть свёрнутую ещё в январе книгу и попытаться в погромирование с нуля
QVariant
>setlocale в правильное место вписываю?
Ею вообще пользоваться не очень правильно. Но почему — расписывать лень.
Может и нужен, но сама идея локалей в стандарте зделана через одно место.
Впрочем, лабы погонять, если уж так хочется рюзке язык в консолечке, хватит.
>рюзке язык
Задетектил в тебе пассивно-агрессивного хохла.
Так что не так-то с локалями в стандарте?
>Задетектил в тебе пассивно-агрессивного хохла.
Пора тебе лечить детектор.
> Так что не так-то с локалями в стандарте?
Всё не так.
Помню пересел с RAD Studio на чистые кресты и охуел, вместо пары вызовов стандартной библиотеки я должен был обмазываться гигабайтами бустов, сотнями говнобиблиотек и тысячами строк велосипедов вокруг апи, а вместо гуя только сосноль и хуй за щекой.
Таки забыл добавить, что они все уже унаследованы от общего интерфейса, но толку от этого большого нет, в вектор их все равно не засунуть. Просто не хотелось бы выделять память на них где попало и как попало.
Хотя вроде можно без утечек сделать. Попробую так.
Всмысле, пусть будет массив указателей.
есть хочу, умираю
Как я раньше не догадался.
Это ты для чтения этой книги имеешь ввиду или этого достаточно вместо неё, лол?
Лол, для чтения книги. А так я сам пропускал части с arm/mips (не моя специализация), так что за них ничего сказать могу.
Годная книга, но вряд ли поможет именно в понимании плюсов. Оно даст лишь понимание во что эти самые плюсы компилятся и как исполняются. Про оптимизации там вообще почти ничего нет.
можешь дать годных линков.. а то на хх только пхп жаба и 1с
> Говно, мне анон посоветовал eclipse, а эта программка не запускается совсем, пишет :java was started but returned exit code=13
Сам решил проблему.
> Пнятно, как их подключить ?
bump
И почему это настолько гениальная проблема, что в 17-м стандарте добавили string_view
Когда копируется?
собственно вопрос, почему массив не переполняется? допустим, создаем массив arr[5]; записываем в массив, пока i<lim-1, т.е. i от 0 до 3 (4 элемента в массиве), когда i=4, выходим из цикла и помещаем \n в 4(последний) элемент массива, а для нуля места не остается
> записываем в массив, пока i<lim-1
Да. При этом очередного с = getchar() не выполнится.
> выходим из цикла и помещаем \n
Условие c == \n не выполняется.
наконец-то до меня дошло, пиздец я тупой. спасибо
Ты не понял. VS как была на винде, так и остаётся.
Этот плагин позволяет по ssh посылать сорцы на удалённую linux-машину и там собирать. Вроде поддерживает удалённую отладку.
Охуенно. По памяти написал хело ворлд! С 10й попытки, с подсказками дебагера (или как там его), но написал!
Я теперь программист.
Бля. Ну показали они, что прога запустилась удалённо в убунте, хотя они кодят с винды.
ну если у меня есть
current = time()
// Что-то делаю
sleep(1000/60 - (time() - current)),
то поток уснет на дольше, чем нужно. И fps не будет стабильным.
Сразу скажу, что я тупой и если я не так делаю очевидные вещи, то просто поясните как делать.
Если у тебя не ОС реального времени то ты никак не сможешь выполнять свой код через точно опредленные промежутки.
Симулятор.
1. Строчка №8 передача shared_ptr по значению - норм? На передачу по ссылке ругается.
2. Верно ли я понимаю, что унаследовав от этого класса например класс двунаправленного узла, все методы текущего будут не юзабельны, ибо shared_ptr<Mono<int>> не будет конвертироваться/интрепретироваться в shared_ptr<Bi<int>> ?
Оптимизирует. Не оптимизировал бы, если бы size() был не const методом.
А если мы изменим размер вектора в цикле?
Хотя нет, туплю. Оптимизировать не будет, если в теле цикла вызывается не const метод, и класс не темплейтный, его определения не видно. Тогда компилятор не может сделать вывод, что size не меняется.
Здесь auto поможет.
А если зациклить вызов функции которая запоминает время своего последнего "удачного" ретунра и если достаточно времени не прошло, то выполняет какие-то полезные для игры действия типа расчёта физики, а если время наступило, то рисует новый кадр. В случае отрисовки кадра делает "удачные" ретурн иначе "неудачны". Как обычно игры делают? В какой простой игре посмотреть как это сделано? Дум слишком большой. Мимо проходил.
С вероятностью 146% v.size() заинлайнит и код превратится в i < v.__size, прям как с отдельной переменной.
Так же. Но привык к char[].
Для чего вообще нодам владеть указателями? Нода должна быть в нескольких списках одновременно?
Я пишу велосипеды.
Это же вариант ноды для однонаправленого списка, кто должен владеть указателем если не нода?
Мол, сам создаст переменную?
Предполагается, что отдельные куски этого списка будут болтаться в программе где попало?
Открой для себя typedef, зачем глаза ломать. http://ideone.com/0yVr4f
Создать циклическую ссылку на базе твоей хуйни - нехуй делать, поэтому ты делаешь что-то не так. Тебе нужно или копировать списки, или же выдумывать сборку мусора.
Спс. Циклическую ссылку?
>>704485
В основе лежала идея, насоздавать и владеть лишь головой. Ну допустим засуну я в вектор и толку? Списковые операции как выполнять то?
> Qt
Существование этого набора велосипедов как нельзя лучше подтверждает мои слова о том, что "стандартные" кресты это неюзабельный кусок дерьма.
Который тред у тебя уже бомбит от C++?
Языки до явы вообще все были куда хуже в плане стандартной библиотеки, а в эпоху создания плюсов наличие libc на пользовательской машине было роскошью, лол. Не стоит забывать что плюсы это легаси, и никакие лямбдочки раз в 10 лет этого не изменят.
>Языки до явы вообще все были куда хуже в плане стандартной библиотеки
Бля, ну это вообще жирно. ArrayList, надо же было такое говно выдумать.
Чем тебе не нравится ArrayList, байтоёб?
Да, ебланское название, зато в ней было вообще всё что нужно и ява на этом выехала. Говно сейчас подтвердило, что похуй насколько убог язык – главное чтобы за тебя уже всё сделано было.
Для признания всех джаваблядей опущенцами хватит прочесть страниц десять любого их учебника для ньюфагов. Встроенные типы отличаются поведением от классов, вообще пушка.
> Встроенные типы отличаются поведением от классов, вообще пушка.
Ну, в цепепе фундаментальные типы тоже отличаются от не-фундаментальных.
для классов default construction это вызов конструктора без параметров (это неточно), для фундаментальных — NO-OP
Это легаси, байтоёб.
ОП, это чума! Хотя бы кто-то услышал реквест хорошо/плохо - стиле. Можешь ещё по классике пройтись? У лукоморья, что-нибудь из Евгения Онегина или стихов Маяковского?
Алсо, попробовал передалать стишок про <<травинку и лесок>>.Вышло ничего.
Разве что у него хоткеи с KDE-шными пересекаются, так что я в настройках WM для этого окна наружние хоткеи отрубаю.
Хуй знает. Тоже думал почитать (советовали для системного прогр-ния), но там столько всей этой низкоуровневой хуиты, что чуть крыша не поехала. Так что ЦА книги - наверное какие-то лоу-левел виндовс-разрабы.
Пользуйся дебаггером в подобных случаях. По началу будет очень непривычно, но быстро привыкнешь. Тем более в визуал студии дебаггер очень даже охуенный даже в vs 2005
Спасибо. Кучу названий уже видел, но все руки не доходили установить (только gvim инстальнул, шобы к vim'y привыкнуть, но заебал пиздец)
VS Code
Бамп второму ответу. Про циклическую ссылку я понял, как против такого бороться?
CLion не редактор кода, и вообще платный.
Саблайм хоть и платный, но не ограничен в функционале, разве что каждые полчаса при сохранении файла предложит себя купить.
Сасай хуй
Но область выделения памяти не зависит от этого в крестах. А там - встроенные типы передаются по значению, объекты по ссылке на кучу, отдельный метод для клонирования, ну пиздец же. И эти петухи еше что-то кукарекать смеют про выстрелы в ногу
Стал
синьором,
сидя в крестотреде,
Зарплату
имею
тысяч до ста.
Мой
хуй,
как сюжет в легенде,
Джавабляди
нищей
вошел в уста.
Вы любите джаву?
А я на нее срал!
Стране нужны байтоебы
И очень жесткий анал
Товарищ,
Не мусоль
словно клитор,
кнопку
Постирай свитер, побрей бороду
Сделал коммит - посылай всех в пизду
Не сделал - смазывай попку
Это как точка, но если вызывается для указателя на объект, а не самого объекта.
Ночь.
Опять утечку искать.
Липнут ладони к клаве.
Мусоросборщик
Не стану юзать
Назло б-гомерзкой джаве.
просто совет, если юзаешь ide часто тыкай не ctrl+space
это избавит эту доску от подобных блядскихтвоих вопросов
Нахуя? Ее придумали чтобы было легче читать код на БУМАГЕ. Я и так вижу что int numB это int.
ну я это не писал и не рефакторил же.
я обычно пишу переменные которые означаютсмысл её применения а не nunB
Я другой анон. Просто хотел сказать, что обычно венгерскую нотацию понимают неправильно.
стоп стоп стоп..
я типо юзаю переменные формата
int количесто_огурцов_у_анона
ты говоришь что
int num_of_количесто_огурцов_у_анона
из-за проблем с полиморфизмом
..
анон который вытащил мой скрин говорит что
все мыи так понимаем.. по сути это:
int num_of_a, num_of_b1.. bnum_of_Aamf32 // зашквар
но имхо -- не надо хранить данные в переменных и ебаться с этим!
придумали же полиморизм! и все что не попадает под сигнатуросовпадаемые траблы выдавать из класса с данными функцией.
..
хотя я считаю что вот тебе стоит глянуть в то как растет opengl. Он давно отказался от clearcolor3F подобных функций. еще в 200(0-4) ом году. И думаю что нам не стоит вдаваться в это. Новые фичи С++159 избавят нас от совпадений сигнатур и все будет круто
Вот смотри. Допустим есть переменная
unsigned int penisSize
мы не знаем в чем Size. Поэтому мы пишем
unsigned int cmPenisSize
unsigned int inchPenisSize
и теперь понимает в каких ед. измерения.
>
>но имхо -- не надо хранить данные в переменных и ебаться с этим!
>придумали же полиморизм! и все что не попадает под сигнатуросовпадаемые траблы выдавать из класса с данными функцией.
Поясни. Желательно с примерами
Я имею в виду
unsigned int cmPenisSize
или
unsigned int inchPenisSize.
Вообще, это и есть kind, который ставится префиксом в имени переменной.
но вот я ща играюсь с opengl
и такой проблемы у меня не возникает т.к. я мерию все в метрах.
но хотя я понимаю что
unsigned int penisSize = 0.03
будет равносильно
unsigned int penisSize = 0
что крутосыграет на взрыв..
как это 0 см когда 3!
...
...
...
>>704850
ну я не догнал с самого начала о сути венгенрской нотации
но имел ввиду
class penis
{
public:
int GetPenisSize() // В метрах
{
return PenisSize;
}
float GetPenisSize() // тоже в метрах
{
return PenisSize;
}
double GetPenisSize() // а тут уже нахлест сигнатур
{
return PenisSize;
}
private:
double PenisSize; // а тут длинна пениса в метрах
}
...
...
но вот в этом классе лучше всетаки юзать венгенрскую нотацию для члена измеренного в дюймах
и членах в миллиметрах..
и добавим в приват
int GetInchPenisSize()
{
return PenisSize/2.54;
}
float GetInchPenisSize()
{
return PenisSize/2.54;
}
но вот я ща играюсь с opengl
и такой проблемы у меня не возникает т.к. я мерию все в метрах.
но хотя я понимаю что
unsigned int penisSize = 0.03
будет равносильно
unsigned int penisSize = 0
что крутосыграет на взрыв..
как это 0 см когда 3!
...
...
...
>>704850
ну я не догнал с самого начала о сути венгенрской нотации
но имел ввиду
class penis
{
public:
int GetPenisSize() // В метрах
{
return PenisSize;
}
float GetPenisSize() // тоже в метрах
{
return PenisSize;
}
double GetPenisSize() // а тут уже нахлест сигнатур
{
return PenisSize;
}
private:
double PenisSize; // а тут длинна пениса в метрах
}
...
...
но вот в этом классе лучше всетаки юзать венгенрскую нотацию для члена измеренного в дюймах
и членах в миллиметрах..
и добавим в приват
int GetInchPenisSize()
{
return PenisSize/2.54;
}
float GetInchPenisSize()
{
return PenisSize/2.54;
}
боже мама..
я посто хотел взять поток /dev/video0
чем я блядь занимаюсь?
МЕРЮЮ БЛЯДЬ ПЕНИС В ДЮЙМАХ!!!
Ну я понял короче с полиморфизмом. В любом случае есть type, а есть kind. Не путай.
ну я понял это итт
но можешь дать коротенький гайд по тем как юзать kind в префиксе переменной? я что-то не могу прогуглить?
Да походу эту нотацию уже и не пользует никто. Был скандал, сказали, что афтор нотации долбаеб.
Разницы между type и kind не поняли.
Что, простите?
А вот непонятно. Вот хочу я иметь два типа CmSize и InchSize, которые являются float. Я пишу
typedef float SizeCm;
typedef float SizeInch;
Далее объявляю класс
class Size {
public:
Size(SizeCm size);
Size(SizeInch size);
SizeCm getSize();
SizeInch getSize();
private:
float size;
};
Size::Size(SizeCm size) {
this->size = size;
}
Size::Size(SizeInch size) {
this->size = size * 2.54;
}
SizeCm Size::getSize() {
return this->size;
}
SizeInch Size::getSize() {
return this->size / 2.54;
}
Не компилится. Как быть?
А вот непонятно. Вот хочу я иметь два типа CmSize и InchSize, которые являются float. Я пишу
typedef float SizeCm;
typedef float SizeInch;
Далее объявляю класс
class Size {
public:
Size(SizeCm size);
Size(SizeInch size);
SizeCm getSize();
SizeInch getSize();
private:
float size;
};
Size::Size(SizeCm size) {
this->size = size;
}
Size::Size(SizeInch size) {
this->size = size * 2.54;
}
SizeCm Size::getSize() {
return this->size;
}
SizeInch Size::getSize() {
return this->size / 2.54;
}
Не компилится. Как быть?
typedef это тебе не newtype какой нибудь. Для компилятора SizeCm и SizeInch - один и тот же тип, поэтому он не может разрешить перегрузку конструктора по одному и тому же типу, ну а перегрузка по возвращаемому типу вообще не поддерживается даже если бы компилятор и считал сайзы за два разных типа
я тут поскролил.. мамка легче
a->b эквивалентно (*a).b
Это Лафоре? У меня какое-то издание попалось, опечаток дофига, в конце концов листинги из англоязычного переписывал.
http://ideone.com/B0zKQZ
Я хочу получить указатель на шаблон функии сравнения и передавать ее в функию.
Что за хуйню ты вообще написал? Почитай сначала материал до конца, а только потом пробуй. И не заебывай бедного анона.
{
void pososat() {}
}
vector<Pisya*> v(228);
v.clean();
1) Вызовется ли конструктор 228 раз?
2) Если да, освободится ли память после клининга или удалятся только поинтеры?
>1) Вызовется ли конструктор 228 раз?
Нет пока не напишешь new.
>2) Если да, освободится ли память после клининга или удалятся только поинтеры?
Только поинтеры.
Почему бы не написать код самому и не проверить?
>iterator erase( const_iterator pos );
>iterator erase( const_iterator first, const_iterator last );
А вот и пиздоглазые подъехали.
>>iterator erase( const_iterator pos );
Пиздюк, ты скажи, как вызывать v.erase(4) вместо уебищного v.erase(v.begin() + 4).
Второй раз вижу этот вопрос в этом итт треде. Всегда должен быть итератор, а не int для индексирования массива. Но я не понимаю почему у итератора нет конструктора копирования в int и конструктора который принимает параметр int. Сишники должны были быть довольны.
> почему у итератора нет
Будет же пытатся подставлять вместо всех интов все возможные итераторы какие найдет.
Так явно можно же вызвать итератор. if(vector<int>::iterator i(4)==int(4))
>конструктора который принимает параметр int
Потому что придется передавать еще и коллекцию в этот конструктор, что мало отличается от текущего решения.
>Пиздюк, ты скажи, как вызывать v.erase(4) вместо уебищного v.erase(v.begin() + 4).
Охуительные у тебя проблемы, скажу я тебе. Просто так сделали и никого это не ебет. Хочешь исправить - сделай proposal и если противоречий не будет, его примут. C++ - это open source, тебе никто ничем не обязан, лалка.
>1) Вызовется ли конструктор 228 раз?
Вызовется. Только конструктор указателя. который ничего не делает и вообще его нет, но для формальности
>2) Если да, освободится ли память после клининга или удалятся только поинтеры?
Вектор вызывает деструкторы для элементов, которые он хранит. В данном случае — деструкторы для указателей. которых также нет и ничего не вызывается. А потом освободит память, занимаемую элементами.
Имеется концептуальный вопрос.
Напейсал я TCP-сервер и клиента к нему на сокетах.
Надо, чтобы клиент среагировал, если сервер закроет сокет по таймауту.
Соотвественно, вопрос, как обычно такие штуки реализуются?
Пока думаю в сторону создания отдельного потока на клиенте, который все время читает сокет и при получении определенного сообщения от сервера, уведомляет юзера, мол, сервер разорвал соединение. После чего закрывает сокет на клиенте.
В идеале сервер должен отсылать сообщение клиенту что он отключен по таймауту. А в общем у проблемы проверки наличия соеденения с сервером нет нормального решения.
>You are given N integers.Then you are given 2 queries.First query consists of 1 integer denoting the position which should be removed.Next query consists of 2 integers denoting the range that should be removed.
Не сойдет ли мое решение за овер-инжиниринг? Мне просто нравится писать код. Хотел еще сделать проверку выхода индексов за пределы вектора, но получилось менее красиво.
https://ideone.com/C2RWp3
Я >>705170, похоже, объебался дважды.
>Здравствуйте. Может быть я отстал от жизни, но, честно говоря, никогда не слышал о "шаблонных указателях". Указатель на функцию призван хранить адрес машинного кода функции. У шаблона функции адреса нет, он имеется только у конкретной специализации шаблонной функции.
https://social.msdn.microsoft.com/Forums/ru-RU/25d252f4-b45f-425d-a7cb-48a6a3a6f4b1/-?forum=programminglanguageru
Нет, правда. Не могу найти нужную мне пограмму, может выучу какой язык и напишу сам. Просто, если это невероятно сложно и потребует несколько лет, то тогда и пытаться не буду.
В гугле искал? А на гихабе? Я слышал винда сразу вместе с блокнотом устанавливается. Попробуй в пуске поискать.
Я не блокнот ищу, просто немного похожую программу, и думаю если бы я написал блокнот, то и нужную мне программу написал бы без труда.
Блокнот пишется просто, если не можешь написать блокнот - ты не программист. Сколько времени надо учиться/писать зависит только от тебя. С++ не советую, бери шарп/питон/еще что подобное, они проще.
Ну и вообще, заплатить фрилансеру, чтоб он сделал нужную программу, будет намного эффективнее.
>>705657
Я вот что хотел найти, но не нашёл:
Органайзер.
Вот пик нарисовал, каким должен быть примерный функционал.
1 - окно дат или календарь. Можно форматировать даты.
2 - закладки. На каждую дату или число свои закладки.
3 - собственно тело органайзера, куда я могу писать что хочу. Было бы огромным плюсом если бы там было переключение между обычным текстовиком и эксель таблицей + простенькие форматирования.
Чтобы было портативным и можно было с флешки запускать, при чём на разных ОС - линукс и шиндовс.
Тяжело было бы сделать?
А на ++ я слышал что это самый гибкий язык, и можно написать что хочешь + отличная поддержка самого языка, и разных платформ.
Ты уже писал раньше на крестах? Если нет учи питон. А лучше не надо самому это делать.
Да в общем не особо, год назад хотел выучить ++ чтобы игры писать. Но на начале учебника забил на это дело, но простейший функционал знаю, остановился на векторах, вроде бы.
Сложной выглядит задача?
За пару недель можно, если регулярно (но не напрягаясь) работать и не на крестах.
А в чём различие написания программ на С, ++ и питоне?
Как я понял, на них можно написать одно и то же?
>>705695
Просто, обычно если я выбирал программы, то старался использовать те, которые были написани на С -> ++ -> Python.
Да и я иногда читаю что программанейм была переписана с крестов или питона на чистом С, т.е. для меня С это как знак качества и производительности.
Или я что-то не так понимаю?
Евреи в мраморных офисах с душем.
>производительности
Да, в среднем, но не всегда. Язык на производительность влияет меньше, чем ты думаешь.
>качества
Нет. На си в среднем выше качество программистов. Потому что многие из них - старперы с хх годами опыта. Что к тебе, очевидно, никакого отношения не имеет. Собственно криво написать на нем наоборот намного проще.
Ну и добавлю, что на производительность в программах, которые сами по себе несложные и незатратные, всем в принципе похуй.
Возьми qml. Кресты конечно тоже понадобятся изнутри, но ты избежишь маразма по имени "говнякать интерфейс на крестах".
Если доьавляешь элементы один раз, то вектор+reserve+sort+ будет самый быстрый вариант.
Если потом еще надо добавлять, то upper_bound.
Вытаскивать элементы через lower_bound.
>Блокнот пишется просто
Лол, сразу видно, что ты никогда не работал с крестовыми либами для рич текста. Там обычно такой ад с пауками, если пытаешься шаг в сторону сделать.
Обычный QLabel, блять.
Разве что ад будет когда захочешь сделать множественный курсор как в саблайме, иначе - все включено.
Короче, интерфейс на крестах - это Qt. Хотя по большей части Qt - это стандартная библиотека крестов, без которыми ими пользоваться для прикладных задач практически нереально.
И вот, интерфейс пишется на языке qml - декларативное описание всей хуйни, для функций - жабаскрипт. А вся технология целиком - QtQuick, смешение крестов/qml/жабаскрипта - все это нужно чтобы писать нормальные гуевые приложения.
Можно хуярить по старинке виджетами, но это ад и сто шагов назад тихо на пальцах
QLabel тебе не рич текст?
Оно даже HTML CSS до определенной поры отображать может, разве что минет не делает.
Да и блокнот уж точно, а возможно и органайзер целиком сто пудов есть в демках к Qt, ищешь-изучаешь-допиливаешь.
>>705727
https://ideone.com/qfu3Gw Он не может их отсортировать. Но да он всегда отсортирован по определению
Именно. В сет его нельзя. У встроенного класса не положено. А в сорт передать можно. Значит сет не предназначен для сортировки.
В сорт я могу сначала одну лямбду передать потом другую. А в сет только в шаблоне можно компаратор передавать. Это почти тоже сатое что и в класс вписать равнение.
То есть ты имеешь в виду, что несмотря на то, что сетом можно отлично сортировать что угодно, он не предназначен для сортировки, потому что синтаксис получается менее красивый, чем у сорта?
У тебя не получится не передать компаратор, если ты будешь хранить типы, которые он не знает как сравнивать.
>А у сета это делается 1 раз. На этапе компиляции.
И в чем ты видишь проблему-то?
>одни данные двумя компараторами
Два сета.
Этот случай был выше. Он просто не скомпилируется.
Наконец-то адекватный аргумент. Вот так сразу бы.
Если у тебя все значения известны изначально (загнал пять тысяч потом отсортировал) то лучше использовать вектор, если постоянно добавлять-удалять то сет. У сета выше накладные расходы по памяти, с точки зрения сложности алгоритма - сложность у них одинаковая, но так-то с вектором чуть больше работы потому-что его сначала заполнить нужно а потом отсортировать (сет сортируется при заполнении). Но внутри сета происходит пердолинг с указателями, тоесть в общем работа с вектором будет чуть быстрее, скорее всего. Это если тебе не нужно будет удалять некоторые элементы из вектора.
Блять, для пяти тысяч вся эта хуйня вообще не важна, и писать нужно так, как короче и проще.
Вот что хотел спросить. Я давно искал программу, которая бы делала скриншоты игр и других окон, но все мне не подходили.
А в каком-то треде мне сказали что есть какие-то мелкие скрипты на принтскрин, который захватывают текущее окно и выводят куда мне надо, и в них отсутствует чёрный экран.
Это правда? Легко на ++ написать?
Бамп.
Просто честно говоря, я слабо представляю, что можно реально написать на этой чисто функциональной параше.
Ты щас про язык?
Я про машинное обучение. Ни в ИБ ни в ML не разбираюсь. Хотя шарю в архитектуре компьютера и алгоритмах. За пару месяцев надо хоть чему-то в этом научиться и хоть что-то написать. Будет быстрее если писать буду на крестах.
> Ты щас про язык?
>или ML. Учить дрругой язык времени нет.
Я подумал, что ты на ML что то хочешь написать, лол.
Ну, напиши прогу, которая будет распознавать макакину капчу.
Хоть с какой то вероятностью. По любому надо будет дохуя параметров и обучать эту парашу.
Пфф, хуй знает. Но у тебя же есть 2 месяца.
По идее, чистить изображение от помех, бить на блоки/цифры и пытаться обучить свою парашу их угадывать
У меня вопрос по поведению функции select.
Использую ее, чтобы проверить готовность файлового дескриптора (на самом деле сокета) на чтение или запись.
Так вот, при первом запуске программы, когда файловый дескриптор еще не был использован, т.е. это просто int, равный 0, функция при проверке этого "дескриптора" возвращает таймаут (результат работы функции select == 0).
Если же я в программе заюзал дескриптор, поработал с ним, корректно закрыл его функцией close(), то при следующей проверке функцией select, она уже вернет -1, т.е. ошибку.
Вопрос, почему так? Мне надо, чтобы никакого таймаута не было в ситуации, когда select проверяет еще не использовавшийся дескриптор, потому что это явный косяк.
Не про то. Я же не умею даже с изображениями работать. Нужен курс по которому я разберусь как такие алгоритмы писать и всё такое. Вспомнил ШАД от яндекса. Ушёл гуглить. Есть что-то ещё?
удвою..
geany для питона.. всяких конфиг-хуенфиг файлов.. *.sh фигни для удобства..
а eclipse если файл стоит открытия этого тяжеловеса
Кто тебе такое сказал?
В стандарте вообще написано, что вставка в map за logn. Про красно-черное дерево ничего не написано. Но все реализуют красно-черным деревом.
За константу вставка в unordered_map.
Все время юзал, думал, что О(1), ппц.
напши свой
вроде берешь выделяешь байтов памяти скока нужно..
и циклично пишешь мол скинуть/прибавить бит сверху в случае переполнения/окончания предыдущего..
..
в unsigned должно работать..
как ты провернешь это? я бля не представляю.. я просто хочу узнать что хранится в ебаном /dev/video0 и бля я походу вкатился к вам на долго! но я код пишу хуевенька
Вот нашёл: GMP
Куда хочешь. Более разумно под каждую библиотеку отдельное местоположение выделять, но тут возможны нюансы. Нужно потом только указать комрилятору где искать (настроить в ide).
Покажи настройку. Я скинул скинул этот файл в папку с проектом, а мне вс пишет: Unable to start program ...<путь к проекту> The system cannot find the file specified.
ЧЯДНТ?
Я новенький. Где они лежат ?
Читай докуметацию к своему компилятору или ide.
Меня Qt просто в ступор вгоняет своими файлами, с миллионом наследований, пространств имен, что я понять нихрена не могу.
Вот простейший код:
http://pastebin.com/Ti2f3SpX
При коньпеляции выводит:
"%localpath%/mainwindow.cpp:30: error: undefined reference to `test::test()'":
Как мне поправить, чтобы я мог области гуевого приложения видеть самописный класс (test)? Делать отдельный хедер под класс не варик.
За щеку себе кинь, дегенерат.
Насколько я понял, есть сишные stdin/stdout и плюсовые cin/cout. И те, и те синхронизированы с IO-потоками ОС.
cin/cout работают медленно. Люди советуют отключать синхронизацию: std::ios_base::sync_with_stdio(0), но это не всегда помогает.
Так вот, я не могу понять, как подать какие-то данные в stdin. В первую очередь для отладки решений, не меняя кода. В cin можно загрузить, используя cin.rdbuf(), но scanf() их не увидит. Какие варианты?
В старом треде были экспериментики https://arhivach.org/thread/94972/#511941
Решили что cin/cout также хорошо справляются если размер буфера увеличить. В олимпиадках даёт 128 мегабайт и если 1 из них на буфер потратить, то ничего страшного. Даже быстрее сишного варианта работать будет.
> с миллионом наследований
пиздишь, максимум одно, когда будешь перегружать какую-нибудь QAbstractHuitaModel
>пространств имен
Тоже пиздишь, там одно пространство имен, qt namespace
Какие сейчас есть варианты простого создания GUI приложений под винду на плюсах без дотнета?
>Насколько я понял, есть сишные stdin/stdout и плюсовые cin/cout. И те, и те синхронизированы с IO-потоками ОС.
Есть сишные stdin/stdout и cin/cout читают/пишут с/в них. (Пока ты не запретишь им синхронизироваться).
> cin/cout работают медленно
Что, прямо так медленно, что заметно?
> Так вот, я не могу понять, как подать какие-то данные в stdin.
Берёшь и без задней мысли подаёшь.
> В первую очередь для отладки решений, не меняя кода
Поясни подробнее, чего ты хочешь.
Вроде неплохо.
>Занимаюсь олимпиадками
>cin/cout работают медленно
Всегда знал, что олимпиады по программированию — бесполезное дерьмо для дегенератов.
Пиздец задача: затюнить cin/cout.
>Что, прямо так медленно, что заметно?
Не проходят решения.
>Поясни подробнее, чего ты хочешь.
В задачах на вход подаются какие-то данные. Чтобы не копипастить каждый раз примеры для проверки, нужно, чтобы перед исполнением они уже были в stdin'е.
Не злись, я еще школьник.
> В задачах на вход подаются какие-то данные. Чтобы не копипастить каждый раз примеры для проверки, нужно, чтобы перед исполнением они уже были в stdin'е.
Сунь в файл и подай программе на вход: ./proga < in.txt
>>706158
Хуяйпы.
Qt. Может FTLK посмотри.
>и cin/cout читают/пишут с/в них
И, кстати, ты не прав. Синхронизация идет не между ними, а между общим потоком программы.
stdin and cin connect to the same thing (the program's standard input), as do stdout and cout (standard output) and stderr and cerr (standard error)
http://www.drdobbs.com/the-standard-librarian-iostreams-and-std/184401305
>Сунь в файл и подай программе на вход: ./proga < in.txt
Геморно, я ж с IDE работают.
В идеале как-то добавить в стандартный запуск такую штуку. Буду пробовать.
Что мешает в ide засунуть бля?
Ну и как тогда понимать
27.4.1 [iostream.objects.overview]
1 The header <iostream> declares objects that associate objects with the standard C streams provided for by the functions declared in <cstdio>
Кстати я лучше всех кресты знаю из олимпиадников своего региона. Они дипломы взяли, а итератором по мапу ходить не умеют. А учитель вообще #include <bits/stdc++.h> пишет. Думаю они потом на джаву перекатятся.
Во, то, что надо.
Я прочитал полторы книжки по крестам и нихуя не могу понять этот синтаксис.
Там такого не было. Может книжки сильно старые, хз.
> test()
Это не тип а функция. Когда пишешь new он ожидает, что ты ему тип назовешь чтобы понять какого типа указатель создавать. А ты ему какую-то функцию скармливаешь которой у тебя даже нет и вообще это конструктор.
Есть идеи, как правильно написать, чтобы класс MainWindow (типа основное окно приложения) увидел класс test?
Короче, изначально я руководствовался вот этой статьей:
http://vasinnet.blogspot.ru/2012/08/recommended-way-to-using-qthread.html
>Это не тип а функция
http://ideone.com/yO55MW
это https://isocpp.org/wiki/faq/ctors#empty-parens-in-object-decl к динамическому созданию объектов не относится
Какая разница, где его описывать?
Раскидывать его на test.h и test.cpp мне будет весьма неудобно, внутри этого класса должны юзаться функции из того файла, где он на скрине. Я их писать пока не стал, чтобы не смущали.
class test : public QObject {
Q_OBJECT
public:
test();
virtual ~test();
Вот тут после test 2 скобки напиши фигурные {}
Возможно. Но ведь всегда можно и вручную наподключать, если надо
Понял. Конструктор по умолчанию.
Необязательно. Но в хедере все инлайнится, так что для больших кусков кода будет трешак.
Если тебе нужен доступ к классу только из одного cpp-файла, можешь прямо в нём запилить этот класс. и объявление и реализацию. Только у тебя реализации не было конструктора test()
Чем тебе поможет отдельный хедер в том что ты задекларировал конструктор но не предоставил его реализации?
> Но в хедере все инлайнится
definition внутри классов хоть и имеют неявный inline, к реальному инлайнингу в смысле вставки в место вызова это не обязано приводить.
>QObject это что? Конструктор у него виртуальный?
Если я правильно понял мануалы, то это базовый класс Qt, от которого все остальные объекты Qt унаследованы.
На счет его конструктора -- хз.
>>706259
>Необязательно. Но в хедере все инлайнится, так что для больших кусков кода будет трешак.
Я хотел в этом же файле (где мой неработающий класс) еще пару функций определить, которые и в моем классе и в классе окна GUI использовались бы. Плюс одна глобальная переменная, которую бы они все периодически дергали.
Наверное рационально будет мой класс в хедер+цпп, функции тоже в хедер+цпп. А потом хедер с функциями подключить в классе. А класс уже подключить в хедере GUI.
Ему уже давно помогли, но он че-то проигнорировал совет и решил что отдельный файл исправит синтаксические ошибки.
В посте >>706254 имеется скриншот с пустой реализацией конструктора, че-т не сильно помогло, если ты об этом.
А это можно как-то сделать? Это ж не warning, а самый настоящий compilation error.
В общем, я ради интереса изобразил то же самое, но с раскидыванием на отдельные файлы. Компилятор схавал без проблем. Придется смириться. Но это уже завтра, хватит на сегодня.
>В общем, я ради интереса изобразил то же самое, но с раскидыванием на отдельные файлы.
Ах, да. Qt != C++ же. Хидеры qmake прогоняет через MOC. Когда как для объявления класса в .cpp-файле этого не произойдёт.
Я не могу код с qt компилировать другим компилятором? И как библиотеку его подключить не могу?
Класс со всякими public slot: не является валидным для C++. Хидер с объявлением такого класса прогоняется через MOC, после чего все эти slot-ы превращаются в валидный C++.
Значит я могу обычным компилятором подключить нужные мне хейдеры из qt если прогоню их через специальный парсер?
Обратитесь к документации.
> ответа нет
Ответ есть, просто твой жалкий человеческий мозг не в состоянии его заметить до того как консоль закроется.
Ага, эт тема.
Сделай так же, ток наоборот
[code lang="c"]
#ifdef HER
freopen(...);
#endif
[/code]
и пропиши себе в IDE компилять с -DHER
А вообще щас вроде модно стало одновременно класть input.txt и подавать его же на stdin.
В итоге системе пофигу откуда ты прочтешь, а тебе не надо извращаться
> и пропиши себе в IDE компилять с -DHER
Он не найдёт, где это делается.
проще #if 1/#if 0 прописать
> ответа нет - сосноль закрывается
В глаза ебемся или ты совсем не гуманитарий, что можешь прочекать и найти ошибки в коде из тысячи строк за минутку, но не можешь прочесть два предложения? Хуй соси. Несите следующего.
Может я что не так написал, но что я имел ввиду: что я не могу оставить консоль, чтобы ответ посмотреть из-за того, что когда числа нет и я жму просто энтер - она выводит ответ и закрывается.
>Он не найдёт, где это делается.
А ведь я все удивляюсь, как можно хуячить нефиговые алгоритмы и при этом ваще не понимать "как эта шутка работает"
хотя сам был таким ><
Вообще есть штука __gcd(), но она только на gcc. Приходится костылить.
У школьников каникулы же
Тебя GC удалил, мусор.
Выкатился еще на неделю.
Оба говно
У меня возникают подозрения в этой строчке:
>sheet[student] += mark;
Здесь в хэш-таблицу помещается новая пара, если ее не было, и инкрементируется значение, связанное с ключом. STL гарантирует, что при записи нового значения типа int оно инициализируется нулем, а не чем-нибудь еще?
size_t поставь. Точно 0 будет. А вообще просто вызывается T2 value();
Да нет, уже и программу для вычисления площади круга описывает.
Только что прочитал, что 1000000000 можно записывать как 1.0E-9, и нихуя не знаю, как это делать.
> вычисления площади круга
Это тот же хелловорлд. Тебе нужно внимательней прочитать тчо он про манипуляторы пишет. Нужно выставить нужный тебе формат числа, что-то типа std::cout << std::fixed << std::setprecision(16) << qwee; Нужно подключить <iomanip> И 10 в девятой будет 1.0Е9 а не 1.0Е-9
Наоборот. Школьников хватает.
15 лет
ебать доска быстрая?
Аноны.. я просто хотел узнать о потоке /dev/video0
в последних трех тредах годноты -- веток 5 из 20
хватит топить треды.. т.к. найти годноту надо скролить про то как .h в иде законектить и как сделать lab1_ans=a+b
..
может будем адекватами и не будем раковать хотябы в ставшем мне любимым треде?
A::a идиоматичнее
https://ru.wikipedia.org/wiki/C++#.D0.A2.D1.8F.D0.B6.D0.B5.D0.BB.D0.BE.D0.B5_.D0.BD.D0.B0.D1.81.D0.BB.D0.B5.D0.B4.D0.B8.D0.B5
Приведение типов
Некоторые преобразования типов не интуитивны, хотя могут производиться неявно. В частности, операция над беззнаковым и знаковым числами порождает беззнаковый результат; однако, в аксиоматике теории множеств множество натуральных чисел (N) является подмножеством множества целых (Z), а совместное использование элементов разных множеств допустимо лишь на уровне общего надмножества — то есть интуитивным было бы получение в результате целого (знакового) числа, но в С++ происходит наоборот, и возникает риск труднообнаружимой ошибки[22].
22 http://rsdn.ru/?article/cpp/XXtraps64bit.xml
По ссылке подобного не нашел.
Всё, понял. Там запятые типа.
Парни мне нужна библиотека для mvs, чтобы построить графики.
1) График по функции, например y = x;
2) График по таблице, например x = 1, 2, 3; y = 2, 3, 4
Какие библиотеки можно юзать? Желательно, чтоб не сильно геморно прикручивалась.
Конечно, потому что ты даешь ему понять, что хочешь инт. Но по умолчанию будет unsigned, как и написано в вики
Да, D лучше
Теперь понял.
почему бы и нет? нахера озу засирать?
Теория - пару практических заданий - опциональные советы по практике
В синтаксис и стл уже умею
ну на самом деле там да, много тонкостей.. но Бьерн Страуструп же!
..
а по сути трогай ооп больше. Больше вникнешь.
Так я просто не знаю, зачем трогать. Мне и в процедурном стиле норм. Проще структурку описать и функций рядом насобачить
ну когда пишешь лабу -- да.
но я мимо тот байтоёб который писал игру байтоёбя когда стал работать с большим количеством однотипных, но разных классов/структур. понял что можно взять однотипную вешь и пихнуть её в отдельный класс/структуру, а остальные классы.структуры будут меньше и даже не изменятся!
+ работа с дочерними классами упростится.
..
..
например.. у нас есть бочки ящики оружия..
делаем класс с позицией из вектора vec3 и двумя производными по ней.
унаследуем всё всё от него.
и потом перерасчитываем все разные классы одной формулой!
..
сколько ты будешь трахатся с этой таской в процедурном стиле?
зы я смотивировал?
Не, это я понимаю. Наверное, мне просто это пока не нужно. Хотя мой знакомы даже олимпиадные задачки решает в ооп-стиле
ну я щас эклипс подстроил пиздец как под себя от цветов до хоткеев.
мне удобно капец как нажать хоткей и печаткать новый класс одной левой чем в файлике main.цпп что-то городить..
да и пишешь больше 200 строк в файле и открываешь его в ебанутом редакторе (на телефоне в гите) охуеваешь его скролить! а так красиво.. все на своих местах.. понятно
под лизуном
Хотя в онлайн компиляторе все работает
Что за хуйня?
В крестах нельзя делать динамический массив на стеке. В некоторых компиляторах можно (gcc). Выделяй память в куче.
sum - a[x]?
sum-=a[x]
Мне надо, чтобы находилось среднее арифметическое а1,..,an без элемента a[x], который вводит пользователь, но он выводит все неверно.
cpp.sh/2x24v
> cpp.sh/2x24v
Ты точно не налажал с нумерацией массива? В программе у тебя с нуля, а вводишь ты что?
И делить тогда надо не на n, а на n-1
> cpp.sh/4mtl
Ну, если пользователь введет 4, тебе надо какой элемент от начала не считать? 4 или 3?
Ага, и деление на n-1
Выше мне сказали
>>706997
Но я не понял о чем идет речь.
Да.
Вопрос чуть не в тему треда,.
но это мой любимый тред, и я надеюсь парни подскажете.
короче ищу вакансии джуна или стажера на плюсах.
но в городе где ищу - на данный момент таких вакансий не очень много.
Поэтому решил просто писать письма всем компаниям, которые выложили вакансии разработчиков c++.
Подскажите плиз, как в сопроводительном письме правильно напроситься на стажировку\"на работу на полставки" в компанию?
>знаю, что вероятность не очень большая, что прокатит.
>но попробовать хочу - хуже не будет.
>вот только думаю, как бы правильно оформить это дело.
никаких суперпроектиков не пилил, если ты об этом.
поэтому и хочу напроситься на стажировку или на полставки.
>просто есть вариант пойти на QA, и потом возможно съебать в девелоперы, но это ведь такой круг, да и QA не особо мне поможет, когда опять буду искать ++..
>поэтому и хочу напроситься хоть на полставки или на стажировку.
Бывают случаи, когда скопировать ссылку на объект нельзя. Например, когда ты возвращаешь объект, созданный внутри функции. Если вернуть сслыку, то она будет ссылаться на уже уничтоженный объект. А копию делать может быть очень затратно.
и тред без лаб
UE4 на с++
бамп
Вобщем вектор+сорт конкретно в моём случае лучше, т.к. сначала можно сделать ресёрв, потом нужно сорт+юник+сорт другим компаратором. В конце необходим доступ по индексу, т.е. сет вовсе не подходит, т.к. по нему прыгать нельзя, только взад-вперёд елозить.
Кста, кто-нибудь знает, можно ли в бинарном дереве организовать произвольный доступ со сложностью быстрее чем О(Эн)?
Это копия, сохраненная 28 апреля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.