#Дайджест полезных материалов по С++. Сохраняй и делись с другом!
🤖 Что такое пир-ревью и зачем оно нужно вашей команде
🤖 Как создать свой мод для Cyberpunk 2077? Шерстим исходники, Lua, C++ и Python
🤖 Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1
🤖 Типы, больше типов
🤖 Raylib: опыт использования абсолютным новичком и что из этого вышло
🤖 Интероперабельность между С++ и Rust
🤖 Что такое пир-ревью и зачем оно нужно вашей команде
🤖 Как создать свой мод для Cyberpunk 2077? Шерстим исходники, Lua, C++ и Python
🤖 Подводные камни С++. Решаем загадки неопределённого поведения, ч. 1
🤖 Типы, больше типов
🤖 Raylib: опыт использования абсолютным новичком и что из этого вышло
🤖 Интероперабельность между С++ и Rust
60 ужасных советов разработчику на C++
Объемнейший материал, сделанный в юмористическом стиле, подскажет вам, как писать код не нужно.
Читать статью
Объемнейший материал, сделанный в юмористическом стиле, подскажет вам, как писать код не нужно.
Читать статью
Монадическая композиция Expected в C++
Здесь речь пойдёт о трюке, который ещё больше имитирует код под исключения C++.
Смотреть статью
Здесь речь пойдёт о трюке, который ещё больше имитирует код под исключения C++.
Смотреть статью
Библиотечный метод
Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, не нужно ничего выводить.
Формат входных данных:
На первой строке дано целое число n (1 ≤ n ≤ 100) – количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.
Формат выходных данных:
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.
Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если массив упорядочен изначально, не нужно ничего выводить.
Формат входных данных:
На первой строке дано целое число n (1 ≤ n ≤ 100) – количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 10^9.
Формат выходных данных:
В выходной файл выведите строки (по количеству вставок) по n чисел каждая.
GTK+
Один из самых популярных графических фреймворков нарадяду с Qt, предназначен для создания виджетов, GUI и просто красивых графических оболочек программы, поддерживает Windows, macOS X, Linux и Unix-подобные системы.
Открыть фреймворк
Один из самых популярных графических фреймворков нарадяду с Qt, предназначен для создания виджетов, GUI и просто красивых графических оболочек программы, поддерживает Windows, macOS X, Linux и Unix-подобные системы.
Открыть фреймворк
Количество уникальных букв в строке
Здесь мы создаем строку str и множество letters, в которое будем добавлять все буквы из строки в нижнем регистре. Затем мы проходим по каждому символу c в строке, и если он является буквой, то добавляем его в множество letters. В конце выводим размер множества letters, который и представляет собой количество различных букв в строке.
Функция std::isalpha() из библиотеки используется для проверки того, является ли символ буквой. Мы также используем функцию std::tolower() из той же библиотеки, чтобы перевести буквы в нижний регистр, так как unordered_set считает A и a разными символами.
#код
Здесь мы создаем строку str и множество letters, в которое будем добавлять все буквы из строки в нижнем регистре. Затем мы проходим по каждому символу c в строке, и если он является буквой, то добавляем его в множество letters. В конце выводим размер множества letters, который и представляет собой количество различных букв в строке.
Функция std::isalpha() из библиотеки используется для проверки того, является ли символ буквой. Мы также используем функцию std::tolower() из той же библиотеки, чтобы перевести буквы в нижний регистр, так как unordered_set считает A и a разными символами.
#код
Взгляд внутрь memcmp на оборудовании Intel AVX2
memcmp — это функция стандартной библиотеки Cи, которая лексикографически сравнивает два массива. Она знакома программистам на Cи и часто используется в качестве строительного блока для строковых операций в других языках.
Читать статью
memcmp — это функция стандартной библиотеки Cи, которая лексикографически сравнивает два массива. Она знакома программистам на Cи и часто используется в качестве строительного блока для строковых операций в других языках.
Читать статью
PIMPL (Pointer to Implementation)
PIMPL — это паттерн программирования, который позволяет скрыть внутреннюю реализацию класса от клиента, а также упростить перекомпиляцию кода и улучшить производительность.
Суть PIMPL-паттерна заключается в том, что все данные хранятся в отдельном класс, а в основном хранится только указатель на этот вспомогательный класс, в котором осуществляется вся работа с данными.
В данном примере пользователь класса MyObject не видит внутреннюю реализацию объекта, что позволяет добавлять/удалять поля без необходимости изменять интерфейс класса. Работа с внутренними данными осуществляется через методы класса Impl, которые вызываются в функциях-членах класса MyObject.
#код
PIMPL — это паттерн программирования, который позволяет скрыть внутреннюю реализацию класса от клиента, а также упростить перекомпиляцию кода и улучшить производительность.
Суть PIMPL-паттерна заключается в том, что все данные хранятся в отдельном класс, а в основном хранится только указатель на этот вспомогательный класс, в котором осуществляется вся работа с данными.
В данном примере пользователь класса MyObject не видит внутреннюю реализацию объекта, что позволяет добавлять/удалять поля без необходимости изменять интерфейс класса. Работа с внутренними данными осуществляется через методы класса Impl, которые вызываются в функциях-членах класса MyObject.
#код
🤝 5 soft skills, которые помогут тебе дорасти до Senior-разработчика
Как думаешь, что нужно уметь, чтобы стать крутым Senior-разработчиком или даже создать свой успешный стартап? Спойлер: нет, не только хорошо кодить.
🔗 Основной сайт
🔗 Зеркало
Как думаешь, что нужно уметь, чтобы стать крутым Senior-разработчиком или даже создать свой успешный стартап? Спойлер: нет, не только хорошо кодить.
🔗 Основной сайт
🔗 Зеркало
В чем проблема следующего фрагмента?
Из спецификации (C++11 §5.3.5/3):
Если статический тип подлежащего удалению объекта отличается от его динамического типа, статический тип должен быть базовым классом динамического типа подлежащего удалению объекта и иметь виртуальный деструктор или поведение undefined.
#вопросы_с_собеседований
Из спецификации (C++11 §5.3.5/3):
Если статический тип подлежащего удалению объекта отличается от его динамического типа, статический тип должен быть базовым классом динамического типа подлежащего удалению объекта и иметь виртуальный деструктор или поведение undefined.
#вопросы_с_собеседований
AMD — вечная канарейка Intel
Если прямо сейчас посмотреть на рынок процессоров, то может сложиться обманчивое впечатление, что AMD на равных конкурирует за место под солнцем с компанией Intel. Кто-то может посчитать, что так было всегда. Реальность же заключается в том, что если Intel всю свою историю колебалась между полной гегемонией и просто доминированием на рынке процессоров для персональных компьютеров и серверов, то AMD в хорошие моменты своей истории была строго второй, а в плохие — находилась буквально при смерти.
Читать статью
Если прямо сейчас посмотреть на рынок процессоров, то может сложиться обманчивое впечатление, что AMD на равных конкурирует за место под солнцем с компанией Intel. Кто-то может посчитать, что так было всегда. Реальность же заключается в том, что если Intel всю свою историю колебалась между полной гегемонией и просто доминированием на рынке процессоров для персональных компьютеров и серверов, то AMD в хорошие моменты своей истории была строго второй, а в плохие — находилась буквально при смерти.
Читать статью
Какие сериалы/фильмы о программировании мотивируют вас продолжать обучение?
#интерактив
#интерактив
Что за ошибка в приведенном ниже коде и как ее исправить?
Последним аргументом memset должен быть sizeof(*bar), а не sizeof(bar). sizeof(bar) вычисляет размер bar (то есть самого указателя), а не размер структуры, на которую указывает bar. Поэтому код можно исправить, используя sizeof(*bar) в качестве последнего аргумента вызова memset.
Последним аргументом memset должен быть sizeof(*bar), а не sizeof(bar). sizeof(bar) вычисляет размер bar (то есть самого указателя), а не размер структуры, на которую указывает bar. Поэтому код можно исправить, используя sizeof(*bar) в качестве последнего аргумента вызова memset.
Сравниваем 2 строки на одинаковые буквы
Для сравнения двух строк на одинаковые буквы можно использовать стандартную функцию strcmp() из библиотеки.
В данном примере две строки "hello" и "holle" сравниваются на одинаковые буквы. Функция strcmp() возвращает 0, если строки совпадают, и любое другое число, если строки не совпадают. Если строки содержат одинаковые буквы, выводится сообщение "Строки содержат одинаковые буквы", иначе - "Строки содержат разные буквы".
Для сравнения двух строк на одинаковые буквы можно использовать стандартную функцию strcmp() из библиотеки.
В данном примере две строки "hello" и "holle" сравниваются на одинаковые буквы. Функция strcmp() возвращает 0, если строки совпадают, и любое другое число, если строки не совпадают. Если строки содержат одинаковые буквы, выводится сообщение "Строки содержат одинаковые буквы", иначе - "Строки содержат разные буквы".
Числа с плавающей точкой для гуманитариев. Что это такое и как они работают
На данную тему уже написано большое количество статей, однако многие из них используют пугающие математические формулы и нотации, что может быть сложно для понимания новичкам. В этой статье автор простым языком попытался раскрыть данную тему и помочь решить ряд вопросов.
Читать статью
На данную тему уже написано большое количество статей, однако многие из них используют пугающие математические формулы и нотации, что может быть сложно для понимания новичкам. В этой статье автор простым языком попытался раскрыть данную тему и помочь решить ряд вопросов.
Читать статью
Алгоритмы компрессии данных: принципы и эффективность
В современном информационном обществе объем данных стремительно растет, и с каждым годом все больше информации генерируется и обрабатывается. В связи с этим важным аспектом стало умение эффективно управлять данными, чтобы не только сохранить информацию, но и оптимизировать ее использование и передачу. Одним из основных инструментов для достижения этой цели является компрессия данных.
Читать статью
В современном информационном обществе объем данных стремительно растет, и с каждым годом все больше информации генерируется и обрабатывается. В связи с этим важным аспектом стало умение эффективно управлять данными, чтобы не только сохранить информацию, но и оптимизировать ее использование и передачу. Одним из основных инструментов для достижения этой цели является компрессия данных.
Читать статью
🔥 Шаблоны и метапрограммирование в C++
Урок для тех, кто уже чётко понимает что такое ООП, может отличить инкапсуляцию от сокрытия данных и знает что такое полиморфизм.
Здесь вы узнаете про шаблоны, как это представляет себе язык, про явную и частную специализацию, про паттерн Singleton.
Смотреть видео
Урок для тех, кто уже чётко понимает что такое ООП, может отличить инкапсуляцию от сокрытия данных и знает что такое полиморфизм.
Здесь вы узнаете про шаблоны, как это представляет себе язык, про явную и частную специализацию, про паттерн Singleton.
Смотреть видео
YouTube
Курс по ООП в С++: шаблоны и метапрограммирование
Курсы по программированию: https://clck.ru/37iG2b
Потренироваться проходить собеседования: https://clck.ru/3C2CY3
Присоединиться к моему сообществу: https://boosty.to/vladimir_balun
Консультации:
https://getmentor.dev/mentor/vladimir-balun-191
https://s…
Потренироваться проходить собеседования: https://clck.ru/3C2CY3
Присоединиться к моему сообществу: https://boosty.to/vladimir_balun
Консультации:
https://getmentor.dev/mentor/vladimir-balun-191
https://s…
🔥 Теоретический минимум по Computer Science
Computer Science рассказывает о том, как работает компьютер, что такое двоичная система, что за структуры данных и как их использовать.
Это видео — база по Computer Science, которую должен знать каждый программист. Здесь про блок схемы, вентили и работу двоичных систем.
Смотреть видео
Computer Science рассказывает о том, как работает компьютер, что такое двоичная система, что за структуры данных и как их использовать.
Это видео — база по Computer Science, которую должен знать каждый программист. Здесь про блок схемы, вентили и работу двоичных систем.
Смотреть видео