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


Я написал свою собственную библиотеку 2D-графики на C++.
Введение Создание графики на C++ может быть сложной задачей. Язык C++ не имеет встроенных графических возможностей, поэтому для создания графиков и диаграмм нам приходится использовать внешнюю библиотеку, например OpenGL. Однако использование OpenGL может быть сложным, особенно для новичков или тех, кто просто хочет добавить немного графики в свои проекты, не погружаясь слишком глубоко в детали сложной библиотеки. Вот почему я создал проект « pom » на GitHub. Цель этого проекта —..

Распространенные шаблоны опечаток в программировании
У разработчиков есть бесконечное количество способов допустить ошибки при написании кода. Однако иногда можно обнаружить очевидные и интересные закономерности в том, как и где разработчики допускают ошибки. Давайте поговорим о коде как о «магните» для опечаток. История исследования Для тестирования и продвижения статического анализатора кода PVS-Studio мы проверяем различные проекты с открытым исходным кодом. Если мы находим ошибки, то сообщаем о них авторам проектов. Мы собираем..

Сделать лексикографически наименьший палиндром с минимальными изменениями
Дана строка S. Выведите лексикографически наименьшую возможную строку. Вы можете внести минимальные изменения в символы в строке и переставить строку. Примеры: void makeSmallestPalindrome(string s) { int n = s.size(); unordered_map<char, int> mp; int oddnums = 0; for (auto i: s) mp[i]++; for (char i = 'a'; i <= 'z'; i++) { if(mp[i]%2)oddnums++; } //update count to make only one odd character exists if (oddnums > 1) { for..

LeetCode 226- инвертировать двоичное дерево
Вопрос : Учитывая root бинарного дерева, инвертировать дерево и вернуть его корень . Пример 1: Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1] Решение: В данной задаче нам нужно инвертировать бинарное дерево. Инвертирование двоичного дерева просто означает, что мы должны поменять местами левый и правый узлы этого дерева. Наш первый шаг — проверить, является ли бинарное дерево пустым или нет. Если да, верните null . if(!root) return NULL;..

Найдите ближайший элемент в BST
Вопрос: Учитывая BST и целое число. Найдите наименьшую абсолютную разницу между любым значением узла BST и заданным целым числом. Пример 1: Input: 10 / \ 2 11 / \ 1 5 / \ 3 6 \ 4 K = 13 Output: 2 Explanation: K=13. The node that has value nearest to K is 11. so the answer is 2 Пример 2: Input: 8 / \ 1 9 \ \ 4 10 / 3 K = 9 Output: 0 Explanation: K=9. The node that has..

Посещение «голландского кода» на C++
Дискуссия о Голландском кодексе циркулирует в кругах программистов. На Medium статья Tom Smykowski побудила меня внимательно посмотреть на код. Это привело к реализации его с другим подходом в C++. После первого подхода я упростил код. Оба набора кода приведены ниже. Споры о голландском кодексе

Самая опасная функция в мире C/C++
Проверив сотни C/C++ проектов разного типа, могу заявить: memset() — самая неэффективная и опасная функция. Большинство ошибок, которые я вижу в проектах, связаны с использованием именно этой функции memset(). Я понимаю, что мой вывод, вероятно, не является ни революционным, ни чрезвычайно полезным, но думаю, нашим читателям было бы интересно узнать, почему я к нему пришел. Несколько слов обо мне Меня зовут Андрей Карпов. Я делаю много вещей в своей жизни. Но главное, чем я..