Библиотека C/C++ разработчика | cpp, boost, qt
20.9K subscribers
1.57K photos
42 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
🥪 Какие преимущества и недостатки PIMPL

❗️Преимущества

- Улучшение времени компиляции: изменения в реализации не требуют перекомпиляции кода, использующего публичный класс
- Сокрытие деталей реализации: пользователи класса видят только его интерфейс
- Упрощение ABI (Application Binary Interface): изменения в приватной части не влияют на ABI
- Уменьшение зависимостей: заголовочный файл не нуждается в инклюдах для внутренних типов.

❗️Недостатки

- Дополнительный уровень косвенности: может слегка снизить производительность
- Усложнение кода: требует написания дополнительного кода для управления указателем
- Увеличение размера объекта: из-за хранения указателя

❗️Альтернатива

- C++20 появился концепт модулей, который может частично заменить PIMPL, предоставляя лучшие механизмы для сокрытия реализации и управления зависимостями
🍯 Проект Zork++

Zork++ - это современный менеджер проектов на C++ и система сборки для современного C++.

Zork++ родился из необходимости создавать C++ проекты с помощью функции modules, появившихся в C++20 стандарте.

❗️Существующие системы сборки имеют ограничения и трудности при последовательном использовании C++20 модулей. Поэтому и появилась идея разработки инструмента, который принимает некоторые C++ файлы, генерирует необходимые команды компилятора и вызывает компилятор для создания желаемого исполняемого файла / библиотеки!

👉 Github
This media is not supported in your browser
VIEW IN TELEGRAM
🙈 Waifu Motivator Plugin

Плагин для Jetbrains IDE с открытым исходным кодом, которые включают Waifu, чтобы поддерживать вашу мотивацию к завершению выполнения задач по программированию.

😌 Что такое Waifu?

Waifu - это термин, обозначающий вымышленного персонажа, обычно в аниме или связанных медиа, к которому кто-то испытывает большую, а иногда и романтическую привязанность.

👉 GitHub
😳 Разгоняем C++ с кастомными аллокаторами

Обратим свой взор на производительность в C++, и как ни странно, нашими главными героями станут не библиотеки или сложные алгоритмы, а казалось бы, простые аллокаторы. Но не просто аллокаторы, а кастомные, которые могут заметно ускорить работу приложений.

👉 Habr
🏗️ Структуры данных для разработчиков: 10 самых важных

Структуры данных — фундамент эффективной разработки. Кратко разберем 10 ключевых структур данных, которые необходимо освоить каждому разработчику для создания производительных и масштабируемых приложений, а подробнее читайте в статье👇

🔹 Списки отлично подходят для хранения и обработки упорядоченных данных и полезны в различных приложениях, таких как управление задачами, ленты соцсетей и корзины интернет-магазинов.
🔹 Массивы — упорядоченная коллекция элементов фиксированного размера и хорошо подходят для ситуаций, где размер коллекции известен или редко меняется.
🔹 Стеки следуют принципу «последним пришел — первым вышел». Они идеальны для реализации операций отмены/повтора в текстовых редакторах или ведения истории просмотров в веб-браузерах.
🔹 Очереди работают по принципу «первым пришел — первым вышел». Они подходят для управления заданиями печати, отправки действий пользователя в играх на сервер или обработки сообщений в чат-приложениях.
🔹 Кучи используются для планирования задач и управления памятью. Они особенно полезны в реализации очередей с приоритетами, где нужен доступ к элементу с наивысшим или наименьшим приоритетом.
🔹 Деревья организуют данные иерархически. Они полезны для представления данных с естественными иерархиями или связями и могут использоваться в различных приложениях, таких как индексация баз данных.
🔹 Хеш-таблицы позволяют эффективно искать, вставлять и удалять данные. Они используют хеш-функцию для сопоставления ключей с соответствующими местами хранения и обеспечивают доступ к сохраненным значениям за постоянное время.
🔹 Суффиксные деревья специализируются на поиске строк в документах, что делает их идеальными для текстовых редакторов и алгоритмов поиска.
🔹 Графы отслеживают отношения и находят пути, что делает их незаменимыми в социальных сетях, рекомендательных системах и алгоритмах поиска путей.
🔹 KD-деревья хороши для поиска ближайших соседей и важны для картографических приложений и геолокационных сервисов.
🫐 Решение общих задач работы с файловой системой

Работа с файловой системой может быть сложной задачей. В этом посте я рассказывается о некоторых наиболее распространенных операциях с файловой системой с использованием функций, представленных в C ++ 17, а также о некоторых новых улучшениях в C ++ 20/23. Независимо от того, создаете ли вы каталоги, копируете файлы или управляете разрешениями, эти примеры помогут вам понять и эффективно использовать библиотеку std::filesystem.

👉 Статья
👾 -35% на курс по алгоритмам

На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код – https://proglib.io/w/8b93777f

23 390 рублей 35 990 рублей

Что еще вас ждет на курсе:

▪️ 150 практических заданий и 47 видеолекций;

▪️ Бессрочный доступ ко всем материалам курса;

▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.

🌚 Переходите на сайт, читайте подробности и заходите на обучение по самым выгодным условиям – https://proglib.io/w/8b93777f
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩 Обучение на основе проектов

Список руководств по программированию, в которых начинающие разработчики программного обеспечения узнают, как создавать приложения с нуля. Эти руководства разделены на разные языки программирования.

👉 GitHub
💣 Сайт How I Start

How I Start - это нечто среднее между набором руководств по разработке и настройкой. Цель состоит в том, чтобы заполнить пробел в руководствах и дать представление о том, как некоторые из ведущих разработчиков выполняют свою работу.

По своей сути сайт представляет собой короткие руководства по языкам (в том числе C++)

👉 Сайт
📖 От Кнута до Седжвика: классика алгоритмической литературы

Обзор лучших книг по алгоритмам для программистов всех уровней. От иллюстрированных пособий для начинающих до фундаментальных трудов для экспертов.

🔗 Читать подборку
😑 Что такое std::popcount?

std::popcount - это функция из стандартной библиотеки, которая подсчитывает количество установленных бит (единиц) в двоичном представлении целого числа.

Другими словами, std::popcount возвращает количество ненулевых битов в двоичном представлении числа.

Например, если у нас есть число 0b1101010, то std::popcount вернет 4, потому что в этом числе 4 бита имеют значение 1.
🤥 Наврал в резюме: 5 вариантов, что делать

Каждый из нас хотя бы раз в жизни хотел выглядеть немного лучше, чем он есть на самом деле. В этой статье хочется поговорить о том, что делать, если вы наврали в резюме, но очень хотите получить работу и теперь не знаете, как быть и что делать.
Чтобы не было казусов с ложью в резюме: забирайте наш курс для программистов:

Не хочешь преукрашивать в резюме — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔵 Алгоритмы и структуры данных

🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM