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, которую должен знать каждый программист. Здесь про блок схемы, вентили и работу двоичных систем.
Смотреть видео
Узнаем сколько лет человеку по дате его рождения
В этом коде мы запрашиваем у пользователя его дату рождения, а затем получаем текущую дату с помощью функции time. Затем мы используем структуру tm для извлечения года, месяца и дня из текущей даты и вычисляем количество полных лет с помощью формулы now->tm_year + 1900 - year. Если текущий месяц и день меньше, чем месяц и день рождения, мы уменьшаем возраст на 1. Наконец, мы выводим результат на экран.
#код
В этом коде мы запрашиваем у пользователя его дату рождения, а затем получаем текущую дату с помощью функции time. Затем мы используем структуру tm для извлечения года, месяца и дня из текущей даты и вычисляем количество полных лет с помощью формулы now->tm_year + 1900 - year. Если текущий месяц и день меньше, чем месяц и день рождения, мы уменьшаем возраст на 1. Наконец, мы выводим результат на экран.
#код
📚Очередной #дайджест статей:
👉Малоизвестные возможности языка C
👉Параллельный метод сортировки массива std::thread
👉Первый проект длиною в полтора года…
👉Волновой алгоритм
👉Почему язык C никогда не помешает вам совершать ошибки
👉Автоматический обход блокировок
👉Все, что вы никогда не хотели знать о CMake (Redux)
👉Малоизвестные возможности языка C
👉Параллельный метод сортировки массива std::thread
👉Первый проект длиною в полтора года…
👉Волновой алгоритм
👉Почему язык C никогда не помешает вам совершать ошибки
👉Автоматический обход блокировок
👉Все, что вы никогда не хотели знать о CMake (Redux)
Пользуетесь ли вы какими-либо иностранными новостными ресурсами по программированию на регулярной основе? Если да, то какими?
#интерактив
#интерактив