Используете ли вы VPN?
Anonymous Poll
17%
Нет, мне лень
29%
Очень редко по особым случаям
38%
Регулярно
16%
Почти не выключаю/каждый день
Forwarded from Библиотека собеса по C++ | вопросы с собеседований
🥪 Какие преимущества и недостатки PIMPL
❗️Преимущества
- Улучшение времени компиляции: изменения в реализации не требуют перекомпиляции кода, использующего публичный класс
- Сокрытие деталей реализации: пользователи класса видят только его интерфейс
- Упрощение ABI (Application Binary Interface): изменения в приватной части не влияют на ABI
- Уменьшение зависимостей: заголовочный файл не нуждается в инклюдах для внутренних типов.
❗️Недостатки
- Дополнительный уровень косвенности: может слегка снизить производительность
- Усложнение кода: требует написания дополнительного кода для управления указателем
- Увеличение размера объекта: из-за хранения указателя
❗️Альтернатива
- C++20 появился концепт модулей, который может частично заменить PIMPL, предоставляя лучшие механизмы для сокрытия реализации и управления зависимостями
❗️Преимущества
- Улучшение времени компиляции: изменения в реализации не требуют перекомпиляции кода, использующего публичный класс
- Сокрытие деталей реализации: пользователи класса видят только его интерфейс
- Упрощение ABI (Application Binary Interface): изменения в приватной части не влияют на ABI
- Уменьшение зависимостей: заголовочный файл не нуждается в инклюдах для внутренних типов.
❗️Недостатки
- Дополнительный уровень косвенности: может слегка снизить производительность
- Усложнение кода: требует написания дополнительного кода для управления указателем
- Увеличение размера объекта: из-за хранения указателя
❗️Альтернатива
- C++20 появился концепт модулей, который может частично заменить PIMPL, предоставляя лучшие механизмы для сокрытия реализации и управления зависимостями
🍯 Проект Zork++
Zork++ - это современный менеджер проектов на C++ и система сборки для современного C++.
Zork++ родился из необходимости создавать C++ проекты с помощью функции modules, появившихся в C++20 стандарте.
❗️Существующие системы сборки имеют ограничения и трудности при последовательном использовании C++20 модулей. Поэтому и появилась идея разработки инструмента, который принимает некоторые C++ файлы, генерирует необходимые команды компилятора и вызывает компилятор для создания желаемого исполняемого файла / библиотеки!
👉 Github
Zork++ - это современный менеджер проектов на C++ и система сборки для современного C++.
Zork++ родился из необходимости создавать C++ проекты с помощью функции modules, появившихся в C++20 стандарте.
❗️Существующие системы сборки имеют ограничения и трудности при последовательном использовании C++20 модулей. Поэтому и появилась идея разработки инструмента, который принимает некоторые C++ файлы, генерирует необходимые команды компилятора и вызывает компилятор для создания желаемого исполняемого файла / библиотеки!
👉 Github
Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine
This media is not supported in your browser
VIEW IN TELEGRAM
🙈 Waifu Motivator Plugin
Плагин для Jetbrains IDE с открытым исходным кодом, которые включают Waifu, чтобы поддерживать вашу мотивацию к завершению выполнения задач по программированию.
😌 Что такое Waifu?
Waifu - это термин, обозначающий вымышленного персонажа, обычно в аниме или связанных медиа, к которому кто-то испытывает большую, а иногда и романтическую привязанность.
👉 GitHub
Плагин для Jetbrains IDE с открытым исходным кодом, которые включают Waifu, чтобы поддерживать вашу мотивацию к завершению выполнения задач по программированию.
😌 Что такое Waifu?
Waifu - это термин, обозначающий вымышленного персонажа, обычно в аниме или связанных медиа, к которому кто-то испытывает большую, а иногда и романтическую привязанность.
👉 GitHub
😳 Разгоняем C++ с кастомными аллокаторами
Обратим свой взор на производительность в C++, и как ни странно, нашими главными героями станут не библиотеки или сложные алгоритмы, а казалось бы, простые аллокаторы. Но не просто аллокаторы, а кастомные, которые могут заметно ускорить работу приложений.
👉 Habr
Обратим свой взор на производительность в C++, и как ни странно, нашими главными героями станут не библиотеки или сложные алгоритмы, а казалось бы, простые аллокаторы. Но не просто аллокаторы, а кастомные, которые могут заметно ускорить работу приложений.
👉 Habr
🏗️ Структуры данных для разработчиков: 10 самых важных
Структуры данных — фундамент эффективной разработки. Кратко разберем 10 ключевых структур данных, которые необходимо освоить каждому разработчику для создания производительных и масштабируемых приложений, а подробнее читайте в статье👇
🔹 Списки отлично подходят для хранения и обработки упорядоченных данных и полезны в различных приложениях, таких как управление задачами, ленты соцсетей и корзины интернет-магазинов.
🔹 Массивы — упорядоченная коллекция элементов фиксированного размера и хорошо подходят для ситуаций, где размер коллекции известен или редко меняется.
🔹 Стеки следуют принципу «последним пришел — первым вышел». Они идеальны для реализации операций отмены/повтора в текстовых редакторах или ведения истории просмотров в веб-браузерах.
🔹 Очереди работают по принципу «первым пришел — первым вышел». Они подходят для управления заданиями печати, отправки действий пользователя в играх на сервер или обработки сообщений в чат-приложениях.
🔹 Кучи используются для планирования задач и управления памятью. Они особенно полезны в реализации очередей с приоритетами, где нужен доступ к элементу с наивысшим или наименьшим приоритетом.
🔹 Деревья организуют данные иерархически. Они полезны для представления данных с естественными иерархиями или связями и могут использоваться в различных приложениях, таких как индексация баз данных.
🔹 Хеш-таблицы позволяют эффективно искать, вставлять и удалять данные. Они используют хеш-функцию для сопоставления ключей с соответствующими местами хранения и обеспечивают доступ к сохраненным значениям за постоянное время.
🔹 Суффиксные деревья специализируются на поиске строк в документах, что делает их идеальными для текстовых редакторов и алгоритмов поиска.
🔹 Графы отслеживают отношения и находят пути, что делает их незаменимыми в социальных сетях, рекомендательных системах и алгоритмах поиска путей.
🔹 KD-деревья хороши для поиска ближайших соседей и важны для картографических приложений и геолокационных сервисов.
Структуры данных — фундамент эффективной разработки. Кратко разберем 10 ключевых структур данных, которые необходимо освоить каждому разработчику для создания производительных и масштабируемых приложений, а подробнее читайте в статье👇
🔹 Списки отлично подходят для хранения и обработки упорядоченных данных и полезны в различных приложениях, таких как управление задачами, ленты соцсетей и корзины интернет-магазинов.
🔹 Массивы — упорядоченная коллекция элементов фиксированного размера и хорошо подходят для ситуаций, где размер коллекции известен или редко меняется.
🔹 Стеки следуют принципу «последним пришел — первым вышел». Они идеальны для реализации операций отмены/повтора в текстовых редакторах или ведения истории просмотров в веб-браузерах.
🔹 Очереди работают по принципу «первым пришел — первым вышел». Они подходят для управления заданиями печати, отправки действий пользователя в играх на сервер или обработки сообщений в чат-приложениях.
🔹 Кучи используются для планирования задач и управления памятью. Они особенно полезны в реализации очередей с приоритетами, где нужен доступ к элементу с наивысшим или наименьшим приоритетом.
🔹 Деревья организуют данные иерархически. Они полезны для представления данных с естественными иерархиями или связями и могут использоваться в различных приложениях, таких как индексация баз данных.
🔹 Хеш-таблицы позволяют эффективно искать, вставлять и удалять данные. Они используют хеш-функцию для сопоставления ключей с соответствующими местами хранения и обеспечивают доступ к сохраненным значениям за постоянное время.
🔹 Суффиксные деревья специализируются на поиске строк в документах, что делает их идеальными для текстовых редакторов и алгоритмов поиска.
🔹 Графы отслеживают отношения и находят пути, что делает их незаменимыми в социальных сетях, рекомендательных системах и алгоритмах поиска путей.
🔹 KD-деревья хороши для поиска ближайших соседей и важны для картографических приложений и геолокационных сервисов.
🫐 Решение общих задач работы с файловой системой
Работа с файловой системой может быть сложной задачей. В этом посте я рассказывается о некоторых наиболее распространенных операциях с файловой системой с использованием функций, представленных в C ++ 17, а также о некоторых новых улучшениях в C ++ 20/23. Независимо от того, создаете ли вы каталоги, копируете файлы или управляете разрешениями, эти примеры помогут вам понять и эффективно использовать библиотеку std::filesystem.
👉 Статья
Работа с файловой системой может быть сложной задачей. В этом посте я рассказывается о некоторых наиболее распространенных операциях с файловой системой с использованием функций, представленных в C ++ 17, а также о некоторых новых улучшениях в C ++ 20/23. Независимо от того, создаете ли вы каталоги, копируете файлы или управляете разрешениями, эти примеры помогут вам понять и эффективно использовать библиотеку std::filesystem.
👉 Статья
👾 -35% на курс по алгоритмам
На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код – https://proglib.io/w/8b93777f
23 390 рублей35 990 рублей
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
🌚 Переходите на сайт, читайте подробности и заходите на обучение по самым выгодным условиям – https://proglib.io/w/8b93777f
На курсе вы на практике познакомитесь со сложными алгоритмами и научитесь писать более короткий и эффективный код – https://proglib.io/w/8b93777f
23 390 рублей
Что еще вас ждет на курсе:
▪️ 150 практических заданий и 47 видеолекций;
▪️ Бессрочный доступ ко всем материалам курса;
▪️ Развернутая обратная связь по всем домашним заданиям, а также ссылки на полезные дополнительные материалы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩 Обучение на основе проектов
Список руководств по программированию, в которых начинающие разработчики программного обеспечения узнают, как создавать приложения с нуля. Эти руководства разделены на разные языки программирования.
👉 GitHub
Список руководств по программированию, в которых начинающие разработчики программного обеспечения узнают, как создавать приложения с нуля. Эти руководства разделены на разные языки программирования.
👉 GitHub
💣 Сайт How I Start
How I Start - это нечто среднее между набором руководств по разработке и настройкой. Цель состоит в том, чтобы заполнить пробел в руководствах и дать представление о том, как некоторые из ведущих разработчиков выполняют свою работу.
По своей сути сайт представляет собой короткие руководства по языкам (в том числе C++)
👉 Сайт
How I Start - это нечто среднее между набором руководств по разработке и настройкой. Цель состоит в том, чтобы заполнить пробел в руководствах и дать представление о том, как некоторые из ведущих разработчиков выполняют свою работу.
По своей сути сайт представляет собой короткие руководства по языкам (в том числе C++)
👉 Сайт
Forwarded from Книги для программистов
📖 От Кнута до Седжвика: классика алгоритмической литературы
Обзор лучших книг по алгоритмам для программистов всех уровней. От иллюстрированных пособий для начинающих до фундаментальных трудов для экспертов.
🔗 Читать подборку
Обзор лучших книг по алгоритмам для программистов всех уровней. От иллюстрированных пособий для начинающих до фундаментальных трудов для экспертов.
🔗 Читать подборку
😑 Что такое std::popcount?
std::popcount - это функция из стандартной библиотеки, которая подсчитывает количество установленных бит (единиц) в двоичном представлении целого числа.
Другими словами, std::popcount возвращает количество ненулевых битов в двоичном представлении числа.
Например, если у нас есть число 0b1101010, то std::popcount вернет 4, потому что в этом числе 4 бита имеют значение 1.
std::popcount - это функция из стандартной библиотеки, которая подсчитывает количество установленных бит (единиц) в двоичном представлении целого числа.
Другими словами, std::popcount возвращает количество ненулевых битов в двоичном представлении числа.
Например, если у нас есть число 0b1101010, то std::popcount вернет 4, потому что в этом числе 4 бита имеют значение 1.
Forwarded from Proglib.academy | IT-курсы
🤥 Наврал в резюме: 5 вариантов, что делать
Каждый из нас хотя бы раз в жизни хотел выглядеть немного лучше, чем он есть на самом деле. В этой статье хочется поговорить о том, что делать, если вы наврали в резюме, но очень хотите получить работу и теперь не знаете, как быть и что делать.
Чтобы не было казусов с ложью в резюме: забирайте наш курс для программистов:
Не хочешь преукрашивать в резюме — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔵 Алгоритмы и структуры данных
🔗 Ссылка на статью
Каждый из нас хотя бы раз в жизни хотел выглядеть немного лучше, чем он есть на самом деле. В этой статье хочется поговорить о том, что делать, если вы наврали в резюме, но очень хотите получить работу и теперь не знаете, как быть и что делать.
Чтобы не было казусов с ложью в резюме: забирайте наш курс для программистов:
Не хочешь преукрашивать в резюме — тогда забирай курс по Алгоритмам от базы до эксперт уровня:
🔗 Ссылка на статью
Please open Telegram to view this post
VIEW IN TELEGRAM