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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
«Библиотека программиста» ищет девушек, работающих в IT — разработке, тестировании, информационной безопасности и других направлениях

Мы проводим новое исследование, посвященное специфике работы женщин в IT — от сложностей и недостатков в работе до гендерных стереотипов.

Пройдите короткий опрос — он анонимный и займет не более 10 минут вашего времени.

Ссылка тут.
Наследование

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

Существует два основных типа наследования: публичное и защищенное. Публичное наследование означает, что все общедоступные члены базового класса остаются общедоступными и в производном классе. Защищенное наследование делает общедоступные члены базового класса защищенными в производном классе. Также существует приватное наследование, которое делает общедоступные члены базового класса приватными в производном классе.
#код
Очередной #дайджест по C++:

🤖 Подводные камни C++. Решаем загадки неопределённого поведения, ч. 2
Продолжение известной статьи по неопределенному поведению.

🤖 Первые новинки C++26: итоги летней встречи ISO
На недавней встрече комитет C++ активно взялся за C++26. Уже есть первые новинки, которые нас будут ждать в готовящемся стандарте C++.

🤖 Как я вошёл в клуб бага 323
Это история о баге, который бы заставил вас рвать на себе волосы. Из-за такого бага вы можете подумать: «Но это невозможно, должно быть, компилятор сломался, других вариантов нет!»

🤖 Создание вашего собственного массива
Пост фокусируется на дизайнерских решениях.

🤖 Внутри STL: конструктор shared_ptr и make_shared
Variadic templates

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

С помощью вариативных шаблонов вы можете определить функции или классы, принимающие любое количество аргументов определенных типов. Это особенно полезно, например, при написании функций форматирования строк, обобщенных контейнеров и других ситуаций, когда количество аргументов может варьироваться.
#код
Рецензия на книгу: полное руководство по стандартным алгоритмам C++

Подробное ревью на каждый абзац книги со ссылкой на скачивание в конце. Пользуйтесь!

Читать рецензию
Семантика перемещения

Семантика перемещения позволяет эффективно перемещать ресурсы между объектами без копирования данных. Это понятие стало особенно актуальным в свете улучшений, внесенных в язык C++11 и последующих стандартах.

Семантика перемещения решает проблемы, связанные с копированием больших данных или ресурсов, что может быть очень затратным по времени и памяти. Вместо копирования данные «перемещаются» из одного объекта в другой, при этом исходный объект теряет право владения этими данными. Это осуществляется с использованием специальных методов и операторов, таких как конструктор перемещения (move constructor) и оператор перемещения (move assignment operator).
#код
Что выведет код сверху?

Ответ:
10 99 40 99

В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.
#вопросы_с_собеседований
🥷Это путь воина

Напоминаем, что «Библиотека программиста» запустила два новых канала специально для специалистов по C++ и тех, кто хочет ими стать👨‍🏫

Подписывайтесь:
👉Библиотека собеса по C++ — тут мы готовимся к интервью
👉Библиотека задач по C++ — тут решаем задачи, проходим тесты и изучаем код
Указатель на функцию

Указатель на функцию в C++ представляет собой переменную, которая хранит адрес функции. Это позволяет вызывать функции через указатель и передавать их как аргументы другим функциям.

Указатели на функции могут быть использованы для создания таблиц функций, динамической загрузки библиотек, а также для реализации различных паттернов программирования, таких как обратный вызов (callback) и динамическое определение функциональности.
#код
Официальный репозиторий симулятора архитектуры компьютерной системы gem5.

Открыть репозиторий

Кстати, у нас есть канал с вопросами с собеседований по С++. Подписывайтесь!
👨‍💻 Большой рассказ про C++

C++ стал популярен за счёт своей скорости: его считают идеальным балансом между временем выполнения и временем реализации задачи.

В видео для джунов описан путь C++ программиста, а для разработчиков постарше — много информации про статический анализ, компиляторы, скорость выполнения и при чём тут вообще Rust.

Смотреть видео
Очередной #дайджест по С++:

✍️ Недостатки корутин в C++
Эта статья написана с целью подчеркнуть некоторые риски, связанные с переносом базы кода на использование корутин.

✍️ Неопределённое поведение в C/C++ и приёмы против лома
Rust-разработчиков бесит неопределенное поведение в С++, поэтому автор предлагает погрузиться в эту тему как можно глубже.

✍️ Базовый набор для решения задач на LeetCode/Codeforces
Описаны основные тактики решения популярных на собеседованиях задач.

✍️ Как мы за один день наняли много C++ разработчиков
Статья будет полезна тимлидам, ищущим пополнение в команду.

✍️ Муравьиный алгоритм | Задача коммивояжёра
О классическаяой комбинаторной задаче, в которой необходимо найти самый короткий маршрут, проходящий через все заданные города, и вернуться в начальную точку.
Считаете ли вы, что в вашей компании уделяется слишком много времени на ненужные созвоны и мало времени на разработку?
#интерактив
Ищем копирайтера

Нам нужен человек, который:
— Любит IT и русский язык.
— Понимает разницу между бэкендом и фронтендом, OWASP и MISRA, функциональным программированием и ООП, микроконтроллером и миникомпьютером, UX и UI.
— Имеет опыт работы от 1 года.
— Будет плюсом, если вы программируете на каком-нибудь языке на уровне стажера/джуна.

Что нужно делать:
— Готовить подборки, ТОПы книг, ютуб- и телеграм-каналов по языкам программирования.
— Делать расшифровки топовых Ютуб-роликов по теме программирования и оформлять их в виде статей.
— Готовить новостные заметки.
— Актуализировать старые статьи.
— Брать интервью у экспертов. Мы поможем с поиском экспертов.
— Иногда писать небольшие рекламные посты в телеграм.
— Писать статьи с кодом, переводить статьи (по желанию, оплачивается отдельно).

Можно использовать нейронки?
— Да, главное, чтобы материал получился интересный.

Условия:
— Белая зарплата: 50 000 руб.
— Возможность работать удаленно.

👉Присылайте свои резюме: [email protected]
Имплементация

Имплементация означает создание кода, который реализует определенную функциональность или алгоритм на конкретном языке программирования. Это процесс написания программного кода, который осуществляет определенное поведение, описанное в спецификации или дизайне.

В C++ «имплементация» означает написание кода, который реализует методы, функции или классы, описанные в заголовочных файлах (header files). Заголовочные файлы содержат объявления (прототипы) функций и классов, а файлы с исходным кодом (.cpp) содержат реализацию этих функций и методов.
#код
🔍Насколько легко «войти в айти»?

IT — перспективная отрасль с высокими зарплатами и огромной конкуренцией. Собираем ваши истории: расскажите, как вам удалось сменить профессию (или сразу найти себя), какие шаги вы для этого предприняли и с какими сложностями пришлось столкнуться.

👉Пройдите наш 10-минутный опрос по ссылке.
📖 ТОП-10 книг по языку программирования С++ в 2023 году

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

Читать статью