Публикации по теме 'cpp'


Ежедневный бит(е) C++ | Необязательные значения: std::unique_ptr, std::Optional
Ежедневный бит (е) C++ # 101, представление необязательных значений с использованием std::unique_ptr и std::Optional Если мы хотим представить необязательное значение, мы можем использовать std::unique_ptr (C++11) и выделение кучи (nullptr обозначает отсутствие). Однако это влечет за собой затраты времени выполнения и может привести к сбою (и броску). std::Optional (C++17) не будет выделять динамическую память и несет только затраты на хранение логического значения. #include..

Спасибо, Марио, но код нуждается в исправлении — проверка TheXTech
Круто, когда разработчики-энтузиасты создают рабочий клон известной игры. Еще круче, когда люди готовы продолжать развитие таких проектов! В этой статье мы проверяем TheXTech с помощью PVS-Studio. TheXTech — открытая реализация игры из вселенной Super Mario. О проекте TheXTech — это SMBX 1.3. движок игры переписан на C++. Оригинальный SMBX (Super Mario Bros. X) был написан на Visual Basic 6 Эндрю Спинксом в 2009 году. Он позволяет создавать уровни из элементов игр Nintendo..

Внедрение строительных блоков Intel Thread Building Block (Intel TBB)
4 августа 2019 г. Ёсио Ямаути ( @spparkle1017 ) При использовании функций opencv как в python, так и в c++ я заметил, что задачи автоматически распределялись по всем ядрам. Я подумал, что это может быть связано с тем, что opencv использует некоторые алгоритмы распределения задач и фон потоков. Это было правдой, и это называется Intel Thread Building Block , или TBB. TBB использует цикл for или while и разбивает их на небольшие фрагменты задач, автоматически распределяя их по..

Ежедневный бит(е) C++ | std::nth_element
Ежедневный бит (е) C ++ # 40, Алгоритм разделения линейной сложности: std:: nth_element std::nth_element — это алгоритм разделения с линейной сложностью, который переупорядочивает элементы заданного диапазона, так что этот элемент под средним итератором является элементом, который был бы там, если бы диапазон был отсортирован. Это может быть полезно для выбора различных процентилей вне диапазона (например, медианы) без явной сортировки. Линейная сложность алгоритма приводит к..

Моя личная история как программиста
Я начал обучать себя программированию где-то в 1995 году, изучая Quake C, C и PHP в то время. К сожалению, я купил очень плохую книгу по C и не знал никого, кто мог бы мне помочь, когда я застрял в концепции и использовании указателей, указателей на функции и в том, как писать код с нуля с их использованием. Это означало, что единственным способом продвижения вперед для меня было улучшение PHP при добавлении Flash, MySQL и JS к моему набору инструментов. Я также пытался программировать на..

Как совместить C ++, Cmake, Googletest, CircleCi, Docker и ПОЧЕМУ
Мы проведем полную настройку этих инструментов, и я покажу вам, почему они стоят потраченного времени;) Я предоставлю файлы конфигурации, а также предложу некоторое понимание того, почему мы делаем эти настройки. Вступление Есть много статей, объясняющих некоторые комбинации инструментов, упомянутых в названии. Недавно я пролистал исходный код своих старых проектов и наткнулся на C ++ - проект, на который давно не смотрел. Он был настроен в классическом стиле C ++ - проекта:..

Эпизод 000: Эмулятор Gameboy Classic!
Добро пожаловать в серию эмуляторов Gameboy Classic, в которой мы собираемся изучить и узнать , как создать эмулятор для известного портативного устройства Nintendo Gameboy Classic. Этот эпизод «Эпизод 000» служит приквелом, предоставляя некоторые идеи о том, чего ожидать от сериала, мотивации его написания и процессе выбора проекта. Соглашение об именах «Ep xxx» означает, что я пытаюсь быть оптимистом в отношении написания более 99 эпизодов, но не слишком оптимистичен в отношении..