Вы видите копию треда, сохраненную 8 апреля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Не водись, анон, с крестоблядками.
От крестов умы у них куцые -
Норовят учинить революцию.
Эх, яблочко, ты мое спелое.
Старый ОП говорит: "Шапку делаю,
Не могу сейчас перекат создать" -
Кто-то враз решил новым ОПом стать:
"Эх, яблочко, на подоконничке.
Отдавай, ОП-хуй, мне исходнички.
В шапке не нужон твой дурацкий стих,
Перекатим без легитимности.
Эх, яблочко, да сбоку зелено.
Треду на ОП-пик поставим Ленина,
Шапку сократим раза в полтора -
Для больших перемен подошла пора.
Эх, яблочко, да с горки котится.
Стихоебская власть не воротится!"
Но увы! Недолга власть народная.
Эх, яблочко, да огородное.
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++ 2014 https://goo.gl/kVaela Стивен Прата Язык программирования C++ 2012 https://goo.gl/z7kA8u Бьерн Страуструп Программирование. Принципы и практика использования C++ 2011 https://goo.gl/nAFUXa
Другие обучающие материалы
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: Дальше переходишь по ссылке, пробуешь отвечать на вопросы и понимаешь, что ты пока в самом начале пути. Кроличья нора крестов практически бездонна, поэтому продолжать постигать тонкости и детали можно очень и очень долго. В то же время, на этом этапе у тебя должно быть достаточно знаний, чтобы уверенно писать неплохой код. Поэтому читай исходники открытого софта и библиотек, отправляй пулл-реквесты в них, читай книжки по предметным областям и общим методикам разработки, а дальше уже сможешь запилить свой проект или вкатиться в существующий.
>
>Эх яблочко, да рядом с грядками.
>Не водись, анон, с крестоблядками.
>От крестов умы у них куцые -
>Норовят учинить революцию.
>
>Эх, яблочко, ты мое спелое.
>Старый ОП говорит: "Шапку делаю,
>Не могу сейчас перекат создать" -
>Кто-то враз решил новым ОПом стать:
>
>"Эх, яблочко, на подоконничке.
>Отдавай, ОП-хуй, мне исходнички.
>В шапке не нужон твой дурацкий стих,
>Перекатим без легитимности.
>
>Эх, яблочко, да сбоку зелено.
>Треду на ОП-пик поставим Ленина,
>Шапку сократим раза в полтора -
>Для больших перемен подошла пора.
>
>Эх, яблочко, да с горки котится.
>Стихоебская власть не воротится!"
>Но увы! Недолга власть народная.
>Эх, яблочко, да огородное.
Вкотился.
>
>Эх яблочко, да рядом с грядками.
>Не водись, анон, с крестоблядками.
>От крестов умы у них куцые -
>Норовят учинить революцию.
>
>Эх, яблочко, ты мое спелое.
>Старый ОП говорит: "Шапку делаю,
>Не могу сейчас перекат создать" -
>Кто-то враз решил новым ОПом стать:
>
>"Эх, яблочко, на подоконничке.
>Отдавай, ОП-хуй, мне исходнички.
>В шапке не нужон твой дурацкий стих,
>Перекатим без легитимности.
>
>Эх, яблочко, да сбоку зелено.
>Треду на ОП-пик поставим Ленина,
>Шапку сократим раза в полтора -
>Для больших перемен подошла пора.
>
>Эх, яблочко, да с горки котится.
>Стихоебская власть не воротится!"
>Но увы! Недолга власть народная.
>Эх, яблочко, да огородное.
Вкотился.
что за игра?
Колофдути пятый.
Ниет. 720 мегабайт она весит, это же пездетс кокойты.
Visual Studio вообще хотела больше 5 гигов отожрать, я аж охуел.
Да, пока так. Купил книжку Г. Шилдта, читаю.
Вообще всё началось с того, что купил набор Arduino, начал разбираться, чтобы с ребёнком играть. Втянулся, захотелось научиться погромировать и под пекарню.
Сейчас понимаю, что не научился в институте только из-за того, что было отвратительное качество преподавания.
В принципе неплохая легковесная среда разработки с поддержкой gcc, но блять, во-первых, она на делфи, что значит постоянные падения, а во-вторых там нет нормального отладчика. Ну то есть для хеллоуворлда пойдёт.
>>681430
Ну а что ты хотел, это всё-таки столпы, на которых ещё держится программирование под винду. И я не знаю, где у тебя там Qt весит меньше гига, если для труЪ кроссплатформенности нужно примерно те же 5 гигов.
Да я вряд ли буду писать что более серьёзное, чем пуль ДУ для какой-нибудь поделки на МК.
>>681442
План есть такой, лол. Правда она только-только читать научилась. Тоже вопрос, с чего начинать изучение программирования для 5-ти летних?
>Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля.
Им никто не пользуется. Алсо. Снова заблудился в шапке на этот раз из-за кнопок MOAR. Надо полоски те что на пике между разделами позаметнее сделать. И в таблице не отображаются колонки. Так надо? А так шапку ахуена. Круче всех что были раньше.
Зачем ты пытаешься скопировать самую неудачную фичу STL? Даже Страус говорил, что с vector <bool> хуйня вышла.
Там красивый жирный и кнопочки только теперь это заметил. Кстати абу недавно такое годное оформление сделал и никому не сказал. Game называется. Попробуй ещё захочешь.
>Это же от стиля борды зависит
А подогнать под борду нельзя? Я хтмл не знаю, но наверно цвет там настроить можно.
>На гитхабе есть границы и полоски.
Покажи.
Я видел его и мне он не нравится, хотя фича со спойлерами прикольная. В общем, neutron forever.
<?php
echo "mamku ebal";
?>
[/code]
Капсом попробуй
Действительно. Всё работает. И колонки в таблице видны, и полоса разделительная заметная.
Если кратко, то через ссылку сделать нельзя (это как раз одна из причин критики vector <bool>). Поскольку у тебя фактически отсутствует "настоящий bool", размером в байт, а есть только один бит, который невозможно адресовать, то и ссылка на него невозможна.
Для решения этой проблемы можно возвращать прокси, который будет предоставлять интерфейс bool, но при попытке изменения себя будет автоматически запаковывать новое значение в нужный бит int'а. Именно так сделано в STL, соответствующая сущность называется std::vector<bool>::reference. Но ты должен помнить, что это не полноценная ссылка, а "нечто, ведущее себя как ссылка", поэтому если у тебя, например, уже есть код с bool &, то придется его переписать для совместимости с этой хуйней.
<?php echo "hiu"; ?>
[/CODE]
Относительно нормально наверное только через прокси объект можно сделать. Возвращать не ссылку на bool а ссылку на прокси (который должен каститься в bool). Также как в stl сделано.
Расскажи, как такую шапку сделал. Я такой шапки и вообще настоящих кнопок и таблиц ни в одном треде не видел. В маркдауне вообще кнопок нет. Как сделал?
Скоро такое будет во всех официальных тредах! Зэкач станет лучшей бордой на этой борде!
Почитал, нашёл только упоминание какой-то MakabaCode.
И с каких это пор моче разрешили править исходники портала и инжектить HTML + JS? Так один модер может всю доску трояном заразить. Вангую это новая фича макабы и работает во всех досках, просто не опубликовали ещё мануал по разметке.
Лол. Во всех прикреплёных тредах на всех досках модеры так делают. В муваче хуй знает сколько лет та таблица висит.
>Почитал, нашёл только упоминание какой-то MakabaCode.
Ты архивач читал? Если нет, то обязательно его прочитай.
На каждой второй доске прикрепленный тред с такими же фичами, и внезапно это делает не святой дух, а модер вручную. И может заразить доску трояном, но нахуя, лол? Геморроя много довольно, поэтому не очень распространено для обычных тредов. Но у нас же самая лучшая доска, поэтому стоит попробовать с гитхабом, ящитаю.
>И может заразить доску трояном, но нахуя, лол?
А ведь не так давно кто-то взломал админку от бэ и слил пароль. Толпа олдфагов с мелкоборд целых 15 минут банила всех подряд. Это только представьте какой он профит проебал не заразив весь бэ троянами.
slowpoke.jpg
>Небольшие фрагменты кода размещай в треде при помощи тега [code] и жабаскрипт-костыля.
Может модер это алчан который снова свою парашу в шапку пихает?
У меня все работает с алчановским скриптом на лисе.
Нас здесь 60!
Я так никогда не делал
Я привык получать задачи, ибо грешу олимпиадками
Как это делать? Все, что я придумывал, было уже реализовано и в сотни раз лучше. Зачем мне энтропию вселенной увеличивать и приближать тепловую смерть?
Я школьник меня не возьмут. Моих знаний, как я понял, на джуна, конечно хватит на четвертьставки.
Кому я во фрилансе нужен со своими циклами-рекурсиями? Я и сам понимаю, что надо применять, а куда - не ебу
Но чтобы не less(a, b) писать, а a<b
Я точно знаю, что так можно.
>>681861
>>681856
>>681853
>>681851
кажется кто-то хочет ПРОСТО повыёбываться, а не решить свою проблему под проблемой понимать собственное образование
Не. Я правда хочу продвинуться в своем образовании. Но мне до института еще года полтора точно
Ты вниманиемразь и это видно за километр.
Иначе бы ты уже начал что-то пилить. Свой проект, сто первый клон игрового движка или учебную ОС. Плюс тонны open source говна не дадут заскучать юному падавану. Но ты ноешь здесь. Иди нахуй отседова, в общем.
Ты не понимаешь. Я застрял где-то между последней главой книжки по синтаксису и действующим проектом. В ваших опенсурсах мне не разобраться, а первые крестики-нолики я запилил еще лет в 12 на делфи. Мне не понравилось
Ну, я бы послушал саксесс-стори о том, как ты прошел эту неприятную ступеньку, например
> ищи на двачах рулеточку для кодинга
Видал. Даже сохранена где-то
>>681884
> я писал
Как впечатления?
> умею в основные конструкции, стл (шаблоны не умею), немного в ооп.
Этих знаний недостаточно нигде, кроме веб-макакинга, и то там нужны знания фреймворков.
А раз уж он пошел в С++, то пусть готовится учиться всю свою С++-карьеру.
совсем-другой-анон-практически-ридонли
Я готов!
И как всему этому научиться кроме как поступить в приличный университет? Но тот анон десятиклассник.
>Как впечатления?
заебись
>>681891
>Наверняка нужны какие-то познания в архитектуре ЭВМ, операционных систем, всей хуйни.
>>Что делать дальше? Нубокнижки не доставляют. Откуда черпать информацию? Куда ее прикладывать?
Ок. Но тут ответ только на один из трёх вопросов.
Знаю только Таненбаума книжку, но вряд ли её можно просто так взять и осилить.
Ну хуй знает. У всех есть какие-либо идеи.
Я вот например как мудак сижу и пилю population dynamics симуляцию (распространение заразы).
Пусть попробует SDL подключить и написать игрушку.
Пусть попробует SFML подключить и написать модулятор голоса.
Один ананас вообще васянил свою бд.
Простор огромный, пиши что хочешь, быдлокодь как будто никто не видит. Попутно, на ошибках, будешь набивать экспу.
ОП, по старым крестам (без 11) рекомендую бархатный путь от марченко.
У меня знания примерно как у задавшего изначально вопрос -- математика и олимпиадное программирование.
Пиздец как долго пытался подключить все ваши SFML и SDL ёбаные, не прикручивается нихуя к Кодблоксу. Ну да ладно, С++ билдер есть. Но я ещё не разобрался, что там к чему. Вроде возможности широкие. Можно с графениумом и гуём приложения пилить. Достаточно, чтобы много всего интересного реализовать. Но что-то я в своё время на Паскале Абц хуярил ради развлечения. Типа хуяришь точки, и он полином по ним строит.
Ещё чуть-чуть в устройстве компьютера разбираюсь, книжки для совсем нубов читал.
И на ассемблере программировал, но совсем немножко (самое крутое шо написал -- разложение числа на простые множители).
> все ваши SFML и SDL ёбаные, не прикручивается нихуя к Кодблоксу.
делал это лет 7 назад. (теперь на geany перешёл)
ты тупой
Ой, нахуй иди, мудак. Всё точно по инструкции делал, там ничего сложного нет, но не работает.
> математика
machine learning, моделирование, разработка движков, систем компьютерной алгебры.
> олимпиадное программирование
Нинужна.
Вообще тебе плюсы не нужны пока. Попробуй на %язык_нейм% покодить прикладные задачки, просто ради результата. Глядишь, освоишься в предметной области, а дальше видно будет тебе самому. Просто идея "C++ ради С++" оче хуевая и антипродуктивная.
>machine learning, моделирование, разработка движков, систем компьютерной алгебры.
Очевидно, там нужно нечто намного большее, чем знания продвинутого 11-классника.
>Нинужна
Правда? А то мне говорили, что в университете по нему ещё больше дрочатся, и что если ты победитель acm icpc какого-нибудь -- тебя куда хошь возьмут работать. А я надеялся с поступлением забыть об этом говне.
>Попробуй на %язык_нейм% покодить прикладные задачки, просто ради результата.
Это какие? Знаю только что на ПХП просто для интернетика что-то писать.
Выйти за пределы консоли и управлять пикселями с более высоким разрешением. Точки, линии, круги, возможно подгружать спрайты
В институте ты либо реально претендуешь хотя бы на полуфиналы ACM, либо сосешь хуй и учишься как все. Иначе - проеб времени и сил
Спасибо
А полуфиналы АСМ -- это чему соответствует на всероссийской олимпиаде школьников, грубо говоря? Призёр финала?
Ну, да. Призер всероса, как минимум, я думаю. Вот я лично на нынешнем регионе меньше 400 набрал - это хуево
А что тут надо обсуждать?
Да какие вопросы могут быть, только вот хотел поныть, что набрал чуть больше 600 баллов, но проходной больше. А всё потому что я не интересовался программированием до 11 класса, в прошлом году и на регион не прошёл.
Ты даже успешнее меня
Грустно. Уже 2016 год на дворе, а все препроцессором копипастим.
Поигрался с растом. Как же они охуенно там сделали:
в файле указываешь зависимости, и при билде они скачиваются и компилируются. Просто модульный оргазм.
Вечер в хату, крестопетухи.
Короче, такая маза - как, в натуре, вывести содержимое контейнера в std::cout епта, да с чтоб с разделителем?
>std::copy(lave.begin(), lave.end(), std::ostream_iterator<uint>(std::cout, ", "));
Эта ментовская хуита еще и в конец это ебошит, не по понятиям это.
Может есть способ уладить эту непонятку?
Блжад, я думал есть какой-то стандартный короткий способ.
Этак проще в for-е самому пробелов понатыкать...
ну можешь std::copy юзать, но убера ','
К примеру:
B = {1,2,3,4,5}
A = {4,5,6,7}
B \ A = {1,2,3}
Вручную делать по циклу erase? Это по уебански, может есть другой способ?
>Почему так?
Хуй знает, может для совместимости обратной, когда меняется минорная версия - симлинк просто на другую либу указывать будет, а все остальное не изменится.
Я уже нагуглил, это нихуя не то.
Для:
>B = {1,2,3,4,5}
>A = {4,5,6,7}
std::set_difference даст {1,2,3,6,7}
А мне нужно {1,2,3}
удвоил
Странно, делал только что - это делало сегфолт.
Есть способ вместо C писать обратно в A?
Т.е просто вычесть, без результата в третьей переменной.
>Можешь потом в другой вектор записать и удалить.
Это будет лишнее копирование и лишний вектор
>А вообще
>Лабы идут на хуй
А при чем тут лабы?
Ищи тестовые задания разных контор. Еще всякие hackerrank и codility.
мимо синьор 8 лет плюсов
>Это будет лишнее копирование и лишний вектор
Ну сделай свою реализацию и выводи сразу в консоль. Либо дописывай в конец массива, а потом удаляй начало.
>А при чем тут лабы?
На лабу похоже.
>Ну сделай свою реализацию
Я уже давно сделал свою реализацию - через erase. Вопрос был в том, может существовал какой-то нативный способ сделать это в одну операцию. Хуй знает, чего есть в этом <algorythm>.
Странно вообще, что для множеств вообще операторы не определены, и приходится пердолится с std::set_huinyaname.
QSet Qt-шный сцуко удобнее на порядок.
Через insert iterator и copy. Дальше гугли сам, я слишком пьян, чтобы писать код
>Читать по необходимости:
>Николаи Джоссатис C++. Стандартная библиотека
Вот после таких советов и появляются пишущие на C++ как на фортране. Джосаттис же опционален, нахуй я буду его читать? Я лучше напишу for-цикл (а вы догадывайтесь, нахуй он нужен) вместо использования std::for_each, std::find_if или ещё чего, подходящего по СМЫСЛУ.
Ты что-то имеешь против фортрана, сука???
А по делу - ну дак ясен пень, что написать for проще чем эту ебань for_each - кому охота раздувать короткий и простой код на ебань с шаблончиками и итераторами на полэкрана?
> ясен пень, что написать for проще чем эту ебань for_each - кому охота раздувать короткий и простой код на ебань с шаблончиками и итераторами на полэкрана?
Нормальным людям — охота. См. пикрелейтед.
Даунам, у которых "C++ — это как C, только вместо malloc() надо писать new" — им, конечно, неохота. Думать некогда — надо лабать говнокод.
>надо лабать говнокод.
В большинстве случаев говнокодом будут все эти for_each и прочая ебань.
Вся эта хуйня должна упрощать код, а не усложнять. Мало кому охота ломать глаза об std::pizda<hui<anus< zalupa>>::const_iterator.begin>() и прочее говно.
>std::copy(lave.begin(), lave.end(), std::ostream_iterator<uint>(std::cout, ", "));
Кроме написания input_iterator на so предложили ещё вот так
std::copy(ints.begin(), ints.end()-1, std::ostream_iterator<int>(std::cout, ","));
std::copy(ints.end()-1, ints.end(), std::ostream_iterator<int>(std::cout));
http://stackoverflow.com/a/17358207
Работает только с непустыми контейнерами.
>>682190
Так. Поясните ньюфагу. Нужно по максимуму юзать stl? И разные std::accumulate, std::copy, std::fill и прочее. Лучше конкретными примерами.
>Мало кому охота ломать глаза об std::pizda<hui<anus< zalupa>>::const_iterator.begin>() и прочее говно.
Болезный, где ты на пикрелейтед увидел хоть один шаблон?
А при чем тут пикрелейтед? Ты рекламщик сука чтоле, выпятить один случай, и умолчать про 90% говна?
Я про большинство кода со всей этой хуйней, которая дело нихуя не упрощает, а просто выжигает глаза синтаксическим шумом.
> Нужно по максимуму юзать stl?
Да. Пока это не превращается в стрельбу из пушки по воробьям (а это случается очень редко).
> Лучше конкретными примерами.
Скрины я брал из https://channel9.msdn.com/Events/GoingNative/2013/Cpp-Seasoning
Первые полчаса про "no raw loops".
> Ты рекламщик сука чтоле, выпятить один случай, и умолчать про 90% говна?
100% вызовов std::copy, std::for_each и проч. не требуют ни одного шаблона.
Максимум — если один из параметров какой-нибудь ostream_iterator, то ему нужно указать тип, да.
Я примерно похожее и накостылил:
>std::cout << " [";
>std::copy(ints.begin(), std::prev(ints.end()), std::ostream_iterator<uint>(std::cout, ", "));
>std::cout << *std::prev(ints.end()) << "]" << std::endl;
Об том и речь. Ибо стандартной библиотекой крестов можно пытать врагов народа.
Более неудобного блевотного и многословного говна надо еще поискать.
Хотя, далеко ходить в принципе не надо - есть еще говно поароматнее, бустом зовется.
> Ибо стандартной библиотекой крестов можно пытать врагов народа.
Ладно тебе. Она могла быть и хуже.
Старые кресты же быстрее учить. Если нужны именно кресты.
А если нужны именно хорошие фичи - то проще тупо нахуй выкинуть кресты и взять нормальный язык.
Работа занимает все отведенное на нее время плюс константа.
Ну и будет тред до 600+ докатываться.
Еще как сидят, базарю.
На крайняк, "новые кресты" мало чем от старых отличаются. Это по большей части "старые кресты" + лямбды и auto.
Для него - тоже, судя по тому, что в рекомендациях - печатная книжка.
Ибо во всех остальных случаях это гугл и cppreference.
Нихрена не понял, что ты хотел сказать. Я имел в виду, что должно было быть написано
> Для меня, "новые кресты" мало чем от старых отличаются.
По стандарту никаким, платформа имеет право, например, просто игнорировать неопределенное поведение. Фактически если ты сделаешь что-то типа
[code lang="cpp"]char p = nullptr; while (true) p++ = 42;[/code]
, то покрашится практически на любой платформе, кроме, возможно, встроенных.
>Нихрена не понял, что ты хотел сказать.
Перевожу еще раз - все отличия новых крестов от старых можно прочитать на https://ru.wikipedia.org/wiki/C++11.
Одна веб-страничка небольшая.
Все остальное - хуйня уровня "в stl добавили каких-то новых методов и какие то задепрекатили"
>небольшой проектик
>божественный объект
>монолит
Все правильно, так и должно быть.
Нехуй дрочерством и оверинжинерингом для маленьких проектиков маяться.
Проектик разрабатывается командой, или ты один и для себя? Если второе - забей нахуй на эти паттерны, они для того нужны, чтобы придать стаду мартышек квадратно-гнездовой способ мышления.
Ты можешь прочитать про то, что они есть, но не научиться в них. Те же универсальные ссылки требуют знания довольно большого количества деталей при работе. Про превращение правила трех в правило пяти асимметричным образом тоже ничего в твоей статье не сказано, ну ты понел.
При чем тут хейтерство, дятел ты толстоклювый?
Когда большинство крестоблядков начинало учить кресты - альтернатив не было, кресты были "языком по дефолту". Ну а хуле, паскаль из альтернатив?
А сейчас дохуя других языков, стали ли бы те, кто полез в кресты много-много лет назад, юзать их сейчас для ЛЮБОЙ задачи?
Если у новичка стоит задача не именно "погромировать на с++", а просто "погромировать" - то кресты ему нахуй не нужны, с той нишей, где стоит применить именно их и ничто иное - он не столкнется.
Прочитал эпиграф.
Статья про то, как важно пересылать байты руками и если ты выучил C++, то ты сможешь программировать на любом языке?
Насколько я понял нытье из эпиграфа - типо те, кто начал ненавидеть си и бросил бы погромировать сразу же - не делают этого, начиная с жабы.
Статья про то, что нас ебли в жопу, и вас тоже надо ебать без знания низкоуровневых/теоретических деталей получится не программист, а слесарь, который не будет уметь справиться с протекающими абстракциями.
>получится не программист, а слесарь
Но большинству этого и нахуй не надо, рили.
Погромистов овердохуя, а вакансий, где действительно нужно копаться в байтоебском говне, по сравнению с общим числом - ничтожное количество.
И те, кому это нужно || интересно - сами в этом и разберуться.
Мне сложно судить. Я вот начинал с ассемблера. Не знаю, нужно ли всем так начинать, чтобы быть "хорошими программистами".
Я на ассемблере писал только под микроконтроллеры 51серии.
Пока не нашел, что это прекрасно можно делать и на си.
Ну вспомни себя школьником, лол. Сосницкий обычно просто интересуется пекарнями и хочет поступить в какой-то-рилейтед вуз, но весьма смутно представляет, чего он хочет от жизни, какие есть области знаний, чем программирование отличается от CS и вот это все. Если в этот момент ему не дать пинка в нужном направлении, то он может выучить какое-то говно типа php или вообще какой-нибудь эзотерической поебени типа purebasic, потому что так на сосаче сказали, лол. И потом в лучшем случае потеряет уйму времени на переучивание, а скорее всего пороху на это уже не хватит, и вырастет очередная макака. Не как что-то плохое, с учетом спроса на макак, но я все же за честное предоставление шанса тем, кто может осилить.
>8 утра
>крестотред движется к бамплимиту со скоростью, достойной /b
Впрочем, ничего нового.
Это хорошо или плохо, что-то я не зрозумію.
>Ну вспомни себя школьником, лол.
Лично я погромировал на паскале. Си мне на тот момент резко не понравился тем, что (в отличие от крестов) был ничем не лучше поцкаля, но я ненавидел его printf (по сравнению с няшным writeln).
У меня был диск "погромирование по-русски", то ли 5в1, то ли 7в1, лол.
А про вуз я тогда совершенно не думал.
На заводе рабочий день начинается сранья.
На тот момент, я терпеть не мог форматный вывод.
Меня бесили "строки" его (суть указатель), что из нужно с & подсовывать и прочее.
Собсно, потом я паскаль дропнул, когда мне настоебенили его ограничения, а кресты подкупали std::cout и (!!!) контейнерами. Free Pascal этих ограничений не имел, да и контейнеры в него уже завезли (не помню когда, но сейчас уже точно есть). Но когда я узнал про сабж, к нему я уже охладел. Интернетов то в школе у меня не было, и книжки были в формате схороненных html'ек или и вовсе txt-шек.
Вооот, я это ты по всем пунктам. А сейчас жалею, что страдал хуйней в школе и кучу времени потерял. Тот же Илюша, при всей смехотворности, достиг большего, чем я в его возрасте.
Илюша из Кiева.
>А сейчас жалею, что страдал хуйней в школе и кучу времени потерял.
А я вовсе не считаю, что я в школе хуйней страдал и кучу времени потерял.
А в кресты я вкатился, когда на 3м курсе одну прогу для метрологии надо было написать для конференции. Взял тогда связку из крестов и Qt - надо было шоб кроссплатформенно, сам писал на линупсе, а сдавать надо было под винду.
Ящитаю, новичкам в кресты надо соваться ИСКЛЮЧИТЕЛЬНО только в связке с Qt. Иначе это поедание кактуса впустую, ничего практически пригодного на голых крестах не написать, а их стандартная библиотека это страдания.
По-твоему тут дохуя людей возрастом 30+? 11-й стандарт вышел 5 лет назад, те, кому сейчас 23 при его появлении еще в школе учились. А учитывая, что фичи стандарта были известны и в 2009 (когда я начал работать на 4-м курсе универа), то ты реально описываешь или динозавров, или слоупоков-неосиляторов.
Это пересечение, а я говорю про разность.
Для QSet это делалось банально A-=B;
(В Qt пересечение это делалось как A&=B;)
Лично я им заинтересовался, когда вышел Qt5 - там впилили фичу, что в коннект сигналостоловый стало возможно совать лямбды. Заюзал эту фичу (она упрощала очень дело за счет захвата внешней переменной внутрь) в тестовом задании, конкретно сабж оче понравился проверяющему и в конечном итоге меня взяли.
Но зачем учить фичи просто ради фич новичку? Ящитаю, сабж нужен только если прям щас без него никуда, а его использование сильно упрощает дело.
И вот прям даже и не знаю - что это за случаи, с которых новичок без всего этого не сможет обойтись.
> Ящитаю, сабж нужен только если прям щас без него никуда, а его использование сильно упрощает дело.
Если ты не будешь знать о лямбдах, как ты поймёшь, что они тебе нужны?
Когда захочешь заюзать каллбеки, и будешь гуглить как их сделать поудобнее.
Пф. Нет. Это так не работает в 99% случаев.
Вот я тут скидывал скрины: >>682186
Тот, кто писал говноцикл не знал про алгоритмы в stl. Пошёл ли он про них узнавать? Нет, он написал, как мог.
>Пошёл ли он про них узнавать? Нет, он написал, как мог.
А второй скрин он на обкурке сделал, да?
Второй скрин — это умного человека пригласили за отдельные деньги переписать говнокод написавшего говноцикл.
Да? А я думал - это один и тот же человек написал два варианта?
>это умного человека пригласили за отдельные деньги переписать говнокод написавшего говноцикл
А сабж в реале не встречается, наивный...
>Да? А я думал - это один и тот же человек написал два варианта
Нет.
> А сабж в реале не встречается, наивный...
Что тут сабж?
>Что тут сабж?
Не бывает ИРЛ, чтобы кого то поставили переписывать кусок кода (работающего) да еще и за деньги.
А если ты такой хуйней будешь заниматься добровольно - будешь крайним, что от своей работы проебываешься.
>Не бывает ИРЛ, чтобы кого то поставили переписывать кусок кода (работающего) да еще и за деньги.
Ты смешной.
https://channel9.msdn.com/Events/GoingNative/2013/Cpp-Seasoning
Смотри с 2:25 по 2:50
Ты в гугле работаешь, да?
Имхо это ты слился. Я ожидал примера - встречался ли ты с этим в своей практике.
Или же, ты студент, и на крестах для конторы не писал?
> Я ожидал примера - встречался ли ты с этим в своей практике.
А я ожидал от тебя миллион долларов в подарок.
Хуй тебя знает, что ты ожидаешь. Ты написал:
> Не бывает ИРЛ, чтобы кого то поставили переписывать кусок кода (работающего) да еще и за деньги.
Я тебе привёл пример, что бывает. И тут началось:
> ВАШИ ДОКАЗАТЕЛЬСТВА НЕ ДОКАЗАТЕЛЬСТВА
Всё, иди нахуй. Я больше не буду продолжать разговор.
Ты знаешь что такое ИРЛ, алеша?
ИРЛ - это "в реальной жизни", т.е. то, с чем ты столкнулся непосредственно.
И тут, на запрос такого примера - ты хуяк такой, и берешь презенташку из гугла.
Так что больше похоже, что реально за деньги ты нихуя не кодил, и не знаешь, как оно бывает то.
>ИРЛ - это "в реальной жизни"
Гугл у нас в пониленде существует?
> т.е. то, с чем ты столкнулся непосредственно.
Это твои фантазии.
> Так что больше похоже, что реально за деньги ты нихуя не кодил, и не знаешь, как оно бывает то.
У тебя очень много фантазий. Напрочь оторванных от реальной ИРЛ-жизни.
>Гугл у нас в пониленде существует?
Можно сказать и так - ты в гугле не был и близко.
>Это твои фантазии.
Ох ты, какие интересные маневры начались.
>Ох ты, какие интересные маневры начались.
Какие блядь манёвры? Где ты встречал определение IRL как "то, с чем ты сталкивался лично"? Твоё доморощенное определение — это твои влажные фантазии.
Ты прекрасно понял, что я имел в виду.
Но, за неимением фактов из своей практики - решил побуквоедствовать, ага.
Дартаньян в треде, все в гвардию кардинала!
>Ты прекрасно понял, что я имел в виду.
Нет, я не ванга и не твоя мамаша, которая тебя гиперопекала и пыталась догадаться, что тебе надо. Ты написал IRL — я привёл случай из реальной жизни. Человек делал код-ревью. На работе.
> за неимением фактов из своей практики
Так бы и говорил сразу. Не "так не бывает ИРЛ", а "я с таким не встречался — значит этого не существует".
>Я спросил вообще то другое, а именно - встречался ли ты с этим?
>>682363
>Не бывает ИРЛ, чтобы кого то поставили переписывать кусок кода (работающего) да еще и за деньги.
Как мой ответ повлияет на то, что ИРЛ существует переписывание кода за деньги? (во что ты с непонятным мне упорством отказываешься верить)
Не, я вообще не понимаю твоего упорства. Ну сказал бы "о, на самом деле бывает переписывание кода за деньги. Надо же, а я не встречался с таким!". Нет, ты начал какой-то хуйнёй маяться.
Я уже давно сказал "в гугле бывает переписывание кода за деньги".
А потом спросил тебя, а встречался ли ты сам с таким непосредственно.
Судя по тому, как ты виляешь - ты студент от силы, и теоретик комнатный.
>а встречался ли ты сам с таким непосредственно.
Допустим, нет.
>ты студент
Нет.
>теоретик комнатный.
Нет.
> "в гугле бывает переписывание кода за деньги".
А гугл — не ИРЛ?
Или ты думаешь, что в гугле работают только PhD из MIT, а "простому смертному" туда попасть нереально? Или что практики разработки в гугл как-то кардинально отличаются от практик разработки средней IT-конторы?
>А гугл — не ИРЛ?
>Или ты думаешь, что в гугле работают только PhD из MIT, а "простому смертному" туда попасть нереально?
Нет. Просто гугл это исключение из правила. А в реале же, как правило, переписывание кода (особенно чужого) в рабочее время сочтут проебом.
Заказчику обычно глубоко насрать на потроха проги, и "красивость кода" его совершенно не ебет. А вот скорость разработки - еще как.
>А в реале же, как правило, переписывание кода (особенно чужого) в рабочее время сочтут проебом.
А о написании тестов ты также думаешь?
Опять таки - это из моей практики, ибо я как раз и любил ебошить код с навороченными крестами, а на стороне жабаскрипта - модной функциональной хуйней.
Мало того, что это не приветствовалось, так еще и было так, что мой "алгоритмический" код переписывали на "си с классами" обратно, ибо "коллеги не понимают эту хуйню новомодную".
Лично в моей практике никаких тестов мы не писали (кроме ассертов, сабж же тестом не считается? Или сойдет за подобие юниттеста?).
И логика начальства была "главное быстрее, похуй на вылизывание и отладку". Суть в том, что когда ты отправил не до конца рабочее решение, но в срок - это лучше (и по условиям контракта), чем проебать срок но доработать по-нормальному.
Я даже в коммандировки за полторы тыщи км раз 5 мотался, чтобы отлаживать на месте лол, бо вовремя этого сделать не давали, кококо-отправляем.
>кроме ассертов, сабж же тестом не считается? Или сойдет за подобие юниттеста?
Я встречал (и мне кажется это правильным взглядом) такое отношение: assert это invariant и документация.
В любом случае, тестированием у нас считался другой процесс - запускаешь линию, а за нее - сервисного инженера.
Он в процессе работы записывает, с какой хуйней столкнулся, а ты исправляешь. "Успешное тестирование" - это когда без косяков удается прогнать серию плат полностью, там сотню или тысячу, зависит от условий.
Ну или, там - поставить мелкий компонент на видеосовмещении и запаять его. В любом случае - написанием тестов не автоматизировалось, нужна была человеческая составляющая.
Если мэнтейнеры так сделали, значит надо. Ты когда пакет будешь собирать (deb, rpm, etc) ты в зависимостях укажешь имя либы с её, скорее всего, мажорной версией и всё. Дальше лезть смысла нет, в другой версии системы или при апдейте вся кухня может поменяться и у тебя будет ситуация хуй в гавне.
> Почему так?
http://stackoverflow.com/a/6339947
> Мне нужно в итоге деплоить либу вместе с бинарником
А зачем ты линкуешься с либами из дистрибутива?
> бинарник ждет с какого-то хуя симлинк.
Не то, чтобы специалист по линкерам. Я думаю там пофиг, симлинк или нет. Если будет файл с таким именем, слинкуется с файлом.
>там пофиг, симлинк или нет. Если будет файл с таким именем, слинкуется с файлом.
Двачую этого.
знающий анон
это является ли число целым, или есть знаки после запятой. Придумал вот такую херню.
double x;
if(x != int(x))
есть попроще что?
Нормальная проверка.
modf
Это я понимаю, но я собираюсь распространять бинарь вместе с либами, ибо в дистр такую хуйню вряд ли возьмут.
Приходится вручную переименовывать либу. Хочу чтобы вместо этого линковалось к полному имени файла. Никак не получится?
>Это я понимаю, но я собираюсь распространять бинарь вместе с либами
И либы ты будешь распихивать по системным путям?
> ибо в дистр такую хуйню вряд ли возьмут.
ЛОЛ. Никто не запрещает ставить пакеты не из репов. Собираешь .deb или .rpm под какую-то версию дистрибутива и публикуешь у себя на сайте.
>>682860
Я линкуюсь с либой, которую сам пересобираю на древнем клоне ред хэта. Там лежат симлинки .5 и 0.5
Раз вы знающие, может поможете накопать опцию линковаться по полной версии, а не по мажорной?
На все 20 современных дистроверсий? ЛОЛ. Я статически собирал и норм было, вот только неоптимально по размеру из-за наличия двух исполняемых файлов :3
Ну раз ты так охуенно все прочитал и правильно используешь, то какие проблемы блядь?
Откуда это:
>>682911
возникает?
Во-первых какого хуя ты доебался к минорной версии, а? Если ты распространяешь свои версии либ, то кладешь их в той же папке, меняешь порядок поиска либ с помощью rpath и не выебываешься.
Во-вторых, ты с хуяли пиздишь, что все прочитал про shared libraries и не знаешь на что влияют минорные версии в имени библиотеки? А, сука?
http://www.yolinux.com/TUTORIALS/LibraryArchives-StaticAndDynamic.html
Смотри секцию library versioning
Но если хочешь сделать по-нормальному, хуярь пакеты. Сначала запили rpm и deb, а дальше пили по требованиям.
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0142r0.pdf
Сам не знаю, думал кто-то прочитает за меня и тут все расскажет.
4gb_patch для игры в которой выкидывает юзал
понял)
vector <Name_value> words;
Name_value - класс, вот его описание
class Name_value {
public:
string name;
int value;
Name_value(string str)
:name(str), value(0) { }
Name_value(string str, int val)
:name(str), value(val) { }
};
каким образом я могу обращаться к первому или ко второму значению вектора? к name или value?
спасибо! спаситель!
#include <algorithm>
vector <string> names {};
std::transform (std::begin (words), std::end (words), std::back_inserter (words), [] (Name_value & x) {return x.name;});
Аналогично для value.
Конструктор второй не увидел.
Не увидел ничего по ссылке, что бы помогло. Расписано о версиях, зачем, почему. Но ничего о том, как линковаться к конкретному .so файлу, а не к его мажорной версии. Прочитал весь раздел "Library Versions".
Проиграл с толстячка.
struct comparator
{
bool operator()(const std::string & a, const std::string & b) const
{
return b.size() < a.size();
}
};
А если для алгоритмы, то функцию:
bool less(const std::string & a, const std::string & b)
{
return b.size() < a.size();
}
Если под "алгоритмы" ты понимаешь <algorithm> то там все равно. МОжно функцию, можно класс, можно лямбду.
Нужно инстанс передавать. comparator() или при объявлении структуры создать глобальную переменную.
Да работает. Спасибо.
Мой комент ты, видимо, жопой читал. Тебе не нужно вообще выбирать конкретную версию либы, потому что твоя либа не должна находиться среди системных. Она лежит в /opt! Это может быть директория ./, а может быть любая другая, которую ты укажешь через rpath.
Но если вдруг тебе ну очень прям хочется засунуть свою либу с /usr/lib, то ты либо собирай ебаный пакет, либо не лезь, потому что наверняка тебя будет материть пользователь, когда увидит, что ты случайно заменил системную либо своей криво скомпиленной. И если ты даже на этот совет наплевал в лучших традициях "я лучше знаю"(на самом деле нет), то хочу тебе сказать, что твое жопочтение - это тенденция, ведь ты хуево прочитал не только мой пост, но и доки к ld.
$ ls
helloworld
libQt5Core.so.5.5.0
$ objdump hello | grep Qt5Core
libQt5Core.so.5
При сборке либа лежит не в системной директории, а в /home/anon/qt-5.5.0-yoba/ и там все эти симлинки, их-то и надо обойти.
Попробую двоеточие. Может ты заодно подскажешь, как отредактировать строчку, которую cmake подаёт линкеру для определенного пакета, найденного через find_package?
Потому что я тупо копирую файл потом в дистрибутив, который буду распространять. И вот у меня теперь костыль в 20 строк чтобы всё переименовать посредством cmake.
Как это противоречит друг другу? Кидай в дистрибутив симлинки
Это структура с оператором () и уникальным именем.
Синтаксис, правила и ограничения.
Можно будет экспортировать специализацию шаблонов.
Насколько я знаю на конференции в Ленехе было представлено две реализации - сланговская и майкрософтовская. Они не смогли решить какая лучше и пилят пропозал дальше. Но потестить модули уже можно в свежих компиоляторах.
Он слоупок.
Он пилит перекаты с такой же черепашьей скоростью как комитет по стандартизации C++.
Так это тебе не б, треды неделями не смывает.
Какие библиотеки подключать (ну можно, конечно, bits/stdc++)?
Программа должна заменять буквы после точек на прописные. Но в файле вывода все пробелы вырезаются. Видимо, дело не в алгоритме, а в том, что cin считывает пробелы, пока не наткнётся на букву. Как это пофиксить?
юзай getline
freopen("file.txt", "r", stdin); // cin
freopen("file.txt", "w", stdout); //cout
перенаправление потоков ввода/вывода
Спасибо.
Иди на хуй, если задаешь такие вопросы.
>вывод на экран vector < string words;
>как осуществить? cout ругается
Лабодрочер, как он есть. Наверняка пытаешься код из методички подправить, да?
циклом for (...) cout <<word <<пробел;
Прочитал частушки из шапки
Ну, на чистой STL всмысле.
СПАСибо.
>>684004
Альтернативы мне тоже нужны независимые, если кросс-платформенных нет, то хотя бы под венду.
Для Qt это независимость от QtCore. То есть самое нужное, но чтобы не тянуло за собой кучу сторонних либ
Ты долбоеб?
Насколько мне известно, маркдаун - это язык разметки.
Вот мне и интересно, что такое его "интерпретатор", и как его рендер должен выглятеть "на чистом stl".
Насколько мне известно, QtCore тянет ICU для юникода, но сабж отключается опцией сборки.
Чем он тебя не устраивает?
ALLO, YOBA ETO TI?
>mfw у меня на ноутбуке 2 ГБ озу
Чувствую себя неполноценным, работая с big data
Основа написана не на Qt. Поэтому Qt мне и не всрался.
https://github.com/Croteam-official/Serious-Engine
Ну так зекач впереди планеты всей
И для линуха нет.
Всё таки открывается, если открывать не через поиск по языкам, лол.
Алсо, гитхаба конешно гениальное распознание яп по расширениям файлов, даже erlang нашёлся в игровой логике лел.
Удобно при отладке через консольку вводить, а не заменять потом везде cin на fin какой-нибудь.
Ну так и ты пиши.
Столько даже средняя явамакака/фронтендщик-хипстер получает, что удивительного-то?
Иди на хуй, вот сириус, для таких беспробудных даунов есть только одно средство ЕМБАРКАДЕРА!
Ладно бы ты просто не понимал суть вопроса, так нет же, продолжаешь упрямо об этом говорить.
EMBARCADERO WITH IT!
Вот. есть LED-матрица от Адафрута (8 светодиодов по горизонтали и 5 диодов по вертикали) Есть Ардуино. Все собрал-подключил. Захотел сваять код для бегущей вертикальной строки (столбец из 5 светодиодов)
Есть библиотека этого же самого Адаврута с командой
pixels.setPixelColor(i, pixels.Color(r,g,b));
где i - номер светодиода (считается от нулевого до 39 - линейно) r,g,b - соотв. красный, зеленый, синий от 0 до 255
сам столбец построил командой
for(int i=0;i<NUMPIXELS;i=i+8){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(r,g,b));
pixels.show();
}
NUMPIXELS - количество светодиодов (8х5=40)
а вот дальше - труба. нужно, чтобы в цикле этим переменным последовательно прибавлялись значения (т.е. все номера светодиодов для второго столбца -
это уже не 0,8,16,24, и 32 как в первом "включении"
а 1,9,17,25, 33 - и так 8 раз до "полного пробега строки"
решил это по колхозному:
для перемещения "на 1 пиксель":
for(int i=1;i<NUMPIXELS;i=i+8){
pixels.setPixelColor(i, pixels.Color(r,g,b));
и так еще 7 раз, просто тупо меняя начальное значение i
"Бегущая строка огней" побежала. Но, скетч выглядит колхозным и я чувствую, можно это решить элегантней.
Если кто сможет помочь - подскажите пожалуйста.
Надеюсь на помощь гуру.
Вот. есть LED-матрица от Адафрута (8 светодиодов по горизонтали и 5 диодов по вертикали) Есть Ардуино. Все собрал-подключил. Захотел сваять код для бегущей вертикальной строки (столбец из 5 светодиодов)
Есть библиотека этого же самого Адаврута с командой
pixels.setPixelColor(i, pixels.Color(r,g,b));
где i - номер светодиода (считается от нулевого до 39 - линейно) r,g,b - соотв. красный, зеленый, синий от 0 до 255
сам столбец построил командой
for(int i=0;i<NUMPIXELS;i=i+8){
// pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
pixels.setPixelColor(i, pixels.Color(r,g,b));
pixels.show();
}
NUMPIXELS - количество светодиодов (8х5=40)
а вот дальше - труба. нужно, чтобы в цикле этим переменным последовательно прибавлялись значения (т.е. все номера светодиодов для второго столбца -
это уже не 0,8,16,24, и 32 как в первом "включении"
а 1,9,17,25, 33 - и так 8 раз до "полного пробега строки"
решил это по колхозному:
для перемещения "на 1 пиксель":
for(int i=1;i<NUMPIXELS;i=i+8){
pixels.setPixelColor(i, pixels.Color(r,g,b));
и так еще 7 раз, просто тупо меняя начальное значение i
"Бегущая строка огней" побежала. Но, скетч выглядит колхозным и я чувствую, можно это решить элегантней.
Если кто сможет помочь - подскажите пожалуйста.
Надеюсь на помощь гуру.
ждем разбор от Фабиена
Почему так происходит, им недостаточно ссылки? Я же ведь не делаю преобразование из const в не-const
Зачем тебе неконстантый объект, если ты его менять не будешь? Так хоть компилятор что-то соптимизирует.
Что ты несешь, лол? Там ясно написано: без ссылки или указателя будет копирование, со ссылкой или указателем - не будет. Константность ссылки не влияет на это, а просто позволяет передать в функцию константу в качестве аргумента.
Еще раз:
T coll - можно пихать что угодно, но будет копирование. Плохо.
T & coll или T * coll_ptr - копирования не будет, но нельзя сделать printElems (5), например. Все еще плохо.
const T & coll - вот теперь заебись, можно пихать что угодно и без копирования.
можно хоть пример, а то нифига не понятно (вернее понятно, что можно решить еще одним циклом) Но как заставить переменную i последовательно принимать нужные значения?
У меня при добавлении второго цикла все рассыпается.
Видимо упирается все в поиск алгоритма.
Дайте хоть подсказку - примером. Умоляю.
Короче, вся шелуха из-за объявления константности в параметре функции, так получается?
Главное — ссылка. Чтобы избежать копирований.
Ну и плюс константность — для возможности передавать rvalue.
>>684560
Таки совет с SO http://stackoverflow.com/a/5257664
Там поясняют, что по стандарту так кошерно делать.
>Есть класс, объявлять в нем поля как указатели или как просто объекты?
Как просто объекты. Но не всегда.
> Где обстоятельно почитать в каких случаях что ипользовать?
Это сложно. Зависит много от чего.
> обстоятельно почитать
Опыт же, врядли где-то такое рассматривается в книге, так как хитрости никакой нет. Если объявить как объект то тебя будет копия. Если как указатель (ссылку) то будет совместное использование. Если нужна копия - объявляешь как объект (возможное исключение - жирные объекты, возможно лучше перестраховываться и даже копии в куче размещать), если совместное использование - указатель (в том числе умный) или ссылка. Есть несколько книг Майерса (что-то типа "Эффективное использование C++"), там могут подобные вопросы рассматриваться, но конкретно твой больше упирается в свойства указателей/объектов чем в то что лучше.
> Где обстоятельно почитать в каких случаях что ипользовать?
>>686147
Помедитируй http://stackoverflow.com/a/3871803 http://stackoverflow.com/a/22146244
Тащемта, последняя значимая, но не реализованная фича хачкеля - pattern matching. Все остальное уже есть в том или ином виде, либо коротко делается при помощи одной std library. Маловероятно, конечно, что PM впилят в одном из следующих стандартов прямо в ядро, как лямбды, например, но если впилят, то у монадолюбителей не останется вообще никаких преимуществ, с учетом общей тормознутости их языка.
https://github.com/solodon4/Mach7
Есть уже PM от челиков из комитета и Страуструпа. Кстати, если std::optional переедет из experemental в полноценное использование, например в stl, и pm будет реализован как часть языка в каком нибудь c++20 – внезапно кресты станут растом.
Зачем тогда функциональщину тащат во все возможные языки? И что вообще не так с монадами?
Шаг влево или вправо - харам. Пытаешься абсолютно безопасно использовать Int там, где надо Integer, компилятор хватает тебя и отрубает голову под нашид. Все как в исламе, хуле.
Ну теперь более-менее понятно. Я только одного не понял, если я объявляю поле не указателем, то оно сразу инициализируется с пустым конструктором штоле? А если у меня только один конструктор и в нем несколько аргументов?
> объявляю поле не указателем, то оно сразу
Да. По нормальному запись вида Foo foo; надо было вообще запретить и заставить писать Foo foo(); - но тогда возникает путаница с декларациями функций, поэтому разрешено (и нужно) Foo foo; что означает вызов конструктора по умолчанию
> только один конструктор и в нем несколько
Будет ошибка при компиляции, если у аргументов конструктора нет значений по умолчанию.
>Пытаешься абсолютно безопасно использовать Int там, где надо Integer
Это не всегда безопасно. Таки чем именно идея молча конвертировать long в int или тем более float в int и не выдавать даже предупреждения лучше?
Я не говорю о long в int. Integer заведомо шире Int, поэтому можно бы было сделать автоматическое безопасное приведение, как в сиподобных языках, но нихуя.
Как-то это не очень удобно получается, в другом языке программирования я бы определил аргументами у конструктора класса какие-то обязательные вещи, без которых например объект класса не функционирует по умолчанию. А тут получается надо какую-то дополнительную функцию для инициализации вводить?
Или это вообще плохая практика посылать что-то в конструктор и вообще хранить указатели на какие-то объекты других классов, потому что они могут быть внезапно уничтожены?
Да, ты прав, я почему-то прочитал что ты Integer хочешь конвертнуть в Int. Но по большому счету это придирки, которых к тем же крестам можно придумать сколько угодно.
Нихуя не понятно что ты написал. Навсякий случай обращаю твое внимание что объекты можно создавать так: Foo foo(bar, baz);
> Я только одного не понял, если я объявляю поле не указателем, то оно сразу инициализируется с пустым конструктором штоле?
man "initializer list"
>>686474
class Klass {
pivate:
Foo foo;
publuc:
Klass() : foo("abc", 123) {}
}
Вот, конструктор не по-умолчанию вызовется.
"int" → iterator: begin(vector) + i
iterator → "int" : std::distance
ользо, какой трюк: http://stackoverflow.com/a/15919834
В следующий раз назову Ass.
http://study.sfu-kras . ru/DATA/docs/ProgramTheory/recurs/task_set.htm
Так же мне посоветовали изучить задачу о рюкзаке. Так вот, хуйня в том, что я не понимаю как реализовать это в моей задаче, а т.е. нахуй находить мне сумму дохода на должностях, что это мне даст и как быть с оптимальным решением? Моя задача в том, чтобы найти ВСЕ решения
Вообще подкиньте хотя бы алгоритм решения, ибо ступорюсь на случае, когда один рабочий по назначению на первой должности оказывается лучше на пятой, то получается мне надо уходить опять в начало, как с этим быть? И уйдя в начало, дойдя опять же до какой-нибудь должности может произойти тоже самое, в рюкзаке рассматриваются два случая, точнее функции, которые считают что будет если взять предмет и что будет если его не брать. Как сюда это все запихнуть не ебу вообще, меня скорее задача эта ебет уже в течении месяца.
Очень прошу хелп, выручайте
Windows + MinGW, какая IDE под это дело подойдёт? Code::blocks какой-то нетривиальный.
WebDAV?
dropbox?
мои действия:
class blabla...
str _str..
void test(str _str)
{}
блабла бла;
бла = нью бла();
test(bla->_str):
это фейл.. а как верно?
http://pastebin.com/jM3VEicM
> делает хуйню
> спраштвает как избавиться от хуйни
Уточни анальные ограничения которые ты себе выдумал. Конкретно интересует почему ты в коде шаблона можешь использовать отстаток от деления аргумента шаблона как условние для условного оператора, но равенство аргументов шаблона уже использовать нельзя.
А вообще нужно сделать так чтобы спецификация шаблона для конца рекурсии была пустая.
Я его пробовал, ему простого набора MinGW мало, ему какая-то утилита ещё нужна (название похоже на cmake) под виндой, причём не та, которая идёт в комплекте с MinGW, а какая-то другая. Code::blocks работает без неё.
Хуёво пробовал
вот я дно
Это не я тебе рассказал про ideone:3
О, ты то мне и нужен. Подскажи, что делать: накатил Moonrise на Eclipse, чтобы было не скучно и картинки весёлые, в General-Appearance-Color Theme выбрал цвета для шрифтов, но в Консоли один хуй чёрный шрифт. На тёмном бэкграунде как-то не очень смотрится. Как поменять цвет шрифта в выводе консоли?
> си хуй так реализуешь
Что значит "хуй так реализуешь"? Просто переписываешь то гавно, подправляя синтакс. https://ideone.com/wrx1CW
Qmake или cmake поставь.
у меня версия эклипса не стабильная и на ребуте цвета дропаются
но думаю пик1 -- то что тебе нужно!
да и вообще может что-то годное и в pic2
Ох, добра тебе, анон. Ты лучший. Только хуйня в том, что ВЕКТОРОВ СЛИШКОМ МНОГО. Реально ли ее переписать так, чтобы каждый элемент матрицы был структурой и в ней отмечать то самое po (выбирали мы его или нет). А так же как допилить со ВСЕМИ РЕШЕНИЯМИ?
> ВЕКТОРОВ СЛИШКОМ МНОГО
Они все нужны. Ты предлагаешь какую-то хуйню. Опустим то что в матрица U меньше столбоцов чем po. Замена равноценна обмену вектора размером (N+1) на вектор размера (N+1)xM. Мне сложно придумать ситуацию где это может быть оправдано. Разве что ты работаешь на системе где вектора - очень ограниченый (количественно) ресурс выдача которого управляется (и анально ограничена) ОС. Но я не слышал о таких.
>ВСЕМИ
https://ideone.com/poEFEA
Между 10 и 11 какой-то отступ, а заместо 28 - 8.
Посмотри таблицу ASCII или как её. Там в начале символы вроде "перенос строки" или "удаление".
Ага... А почему в начале одни какие-то вопросы в квадратах? Кончаются они на 31 символе.
скорее всего консоль не умеет их показывать
А как надо?
Спасибо.
Я не понял, ну поясни, я ньюфаг и тяжело с ходу разобраться. Поэтому очевидные для тебя вещи мне кажутся непонятными.
У меня установлен ноптад++, юзаю его заместо блокнота.
Бамп
Ты не ньфаг, а мудак, в интернете все есть, в книжках все есть, но ты, уебок, постишь свое говно тут. Ты безнадежен, иди в питонотред или в клуб любителе пхп. С++ первым языком брать не стоит. Особенно беспросветным тупицам.
Кокой ты злой.
вот и я не знаю критичны ли те "фичи" или нет?
Джавапетухи и на имиджбордах память жрут.
У них гарантированый размер. Тогда как у обычных типов размер четко не определен. Они могут оказатся все равны друг другу. Определено только то что sizeof(char) == 1 и что каждый последующий тип должен быть как минимум равене предыдущему. Тоесть long не может быть меньше int (но может быть равен). Ну и еще якобы минимальный размер определяется: char минимум 8 бит, инт минимум 16, лонг минимум 32 и лонг лонг минимум 64. Но все типы могут оказаться равны 64 (или вообще 128) битам - это будет соотвествовать стандарту.
Спасибо, анонус, так гораздо лучше.
Понял. Спасибо.
Из нее удобней переводить в двоичную (и обратно), чем из десятичной. Простой заменой, каждый разряд в шестнадцатеричной однозначно превращается ровно в четыре разряда двоичной. А десятичную нужно разлаживать на множетели, вычитать, умножать и т.д.
Ясненько. Спасибо.
Чет я вижу и решаю спокойно, но это хуйня для студентов, хочу сложных задач.
Только с фрагментацией.
Напиши компилятор C++. Для любого языка компилятор себя - классическая задача.
>минимальный размер определяется: char минимум 8 бит, инт минимум 16, лонг минимум 32 и лонг лонг минимум 64. Но все типы могут оказаться равны 64 (или вообще 128) битам - это будет соотвествовать стандарту.
Мои старания не прошли зря. Несколько тредов назад тут писали, что все они могут быть равны одному байту (8 бит) и это будет по стандарту. Пришлось ребяткам показывать таблицу с INT_MAX, LONG_MAX и проч.
Как что-то плохое сказал. Лёгкие же задачи.
Хуйню тут пишет даунёнок, который считает, что INT_MIN определяется через numeric_limits, а не наоборот.
Вот и мне интересно, какая разница.
Речь шла о том, что INT_MAX и проч. накладывают на размер типов в битах определённые ограничения снизу.
И тут влезает какой-то даун с numeric_limits и восьмидесятыми. Что он хотел сказать, я не понял. Выебнуться тем, что знает о существовании numeric_limits? Ну молодец, хули. Знаешь. Теперь иди дальше.
Есть такие вещи как кодстайл и легитимная для языка библиотека. Он пытался тебя попросить не советовать использовать макросы.
Речь шла об ограничениях на размер в битах. Стандарт C++ говорит о том, что numeric_limits эквивалентен type_MIN/MAX/etc. Стандарт C++ не приводит никаких численных значений ни для numeric_limits, ни для type_MIN/MAX.
Минимальные численные значения для INT_MIN, INT_MAX и др. определены в стандарте C. Меня интересовали конкретные численные значения. Естественно, что я говорил о INT_MAX, а не о numeri_limits<int>::max().
Теперь объясни мне, нахуй он ты? это вставил:
> как там в 80ых?
> std::numeric_limits еще не завезли?
> Есть такие вещи как кодстайл и легитимная для языка библиотека.
climits — легитимная для C++ библиотека, инфа 100%.
Ельзофаг вкатись назад
Какие проекты, вероятнее всего, среднестатистический некриворукий анон будет делать, если выучит C++ на уровне приличного новичка? Какие проекты чаще всего попадаются? Какие проекты интересные? Какие проекты в 2016 году делаются на Qt? На голом C++? Под какие платформы? Бывалые, опишите, интересно же. На моей прошлой работе был крохотный проект на плюсах с нормальным ООП, но он был скорее огромным таким биндингом для использования другого проекта.
Вы видите копию треда, сохраненную 8 апреля 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.