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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
💩💩 Попались в интернетах полезные видосы с встречи плюсовиков в Йошкар-Оле. 

Темы докладов:

💩 Сергей Шамбир (iSpring) — «Быстрые и надёжные сигналы-слоты в C++»
💩 Евгений Зуев (Университет Иннополис) — «Архитектура компиляции: проблемы и решения.»
💩 Константин Гейст (iSpring) — «Следи за своим состоянием: валидация в ООП»
💩 Антон Полухин (Yandex.Taxi) — Полезный constexpr

Смотреть

#видео
Please open Telegram to view this post
VIEW IN TELEGRAM
🤓🧑‍🍳 Интересные бенчмарки для многопоточности, асинхронности и корутинов C++20

Это набор производительных «words counters» (не навороченных, просто разделяющих «слова» пробелами), реализованных с использованием современных функций C++20, таких как span, string_view, filesystem, ranges и других.

Там, где это уместно, используются параллельные хэш-карты и другие зависимости, такие как контейнеры Abseil, Boost.Feature или Asio с корутинами.

#почитать
🧑‍💻 Особенности работы в айти: результаты опроса подписчиков

В декабре мы провели среди вас опрос, изучили результаты и сделали аналитическую статью на vc.ru.

Вот некоторые выводы:

🧔‍♂️ В основном наша аудитория состоит из мужчин — 92,1% опрошенных. Женщин, соответственно, всего 7,9%.
🐍 В ТОП-10 специальностей входят питонисты — их 12,4%. Дата-инженерами или дата-сайентистами себя назвали 3.7% респондентов.
👨‍🎓 25% аудитории — самоучки, у которых нет профильного образования, и они не заканчивали никаких платных курсов.
💲 У разработчиков с опытом менее года преобладают зарплаты до 90 000 рублей (88%). Если опыта 1-3 года, то доля получающих 150 000+ увеличивается до 53,6%.
💰 Опытные и образованные Python-разработчики (15,44%) также входят в шестёрку самых высокооплачиваемых специалистов.

🔗 Полный отчёт можно прочесть по этой ссылке

💬 Пишите, какие ещё подобные материалы вам было бы интересно почитать
🤔 Очередной #дайджест по С++

▫️ Каким root сертификатам следует доверять? — узнайте с помощью CertInfo

▫️ Разработка под Symbian: SDK — речь пойдет о платформе Series 60, позже переименованной в S^1

▫️ Шесть невозможных вещей — как только вы узнаете свои пределы, вы сможем работать в их рамках, создавая решения, а не проблемы

▫️ Практика языка C — хеш-таблицы, многомодульные программы и структуры данных

▫️ Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой — как загружать программы без знания ABI
Задача : на вход подается номер столбца, необходимо конвертировать его в буквенное представление, которое будет использоваться в таблице-Excel.

Пример:

Ввод:
columnNumber = 1
Вывод:
"A"

Ввод: columnNumber = 28
Вывод:
"AB"

Пишите свое решение в комментариях👇

Решение будет в следующем посте через 30мин
Please open Telegram to view this post
VIEW IN TELEGRAM
Сколько раз будут выполняться циклы внутри программы?

Ответ:
в первом случае цикл не выполнится никогда, а во втором случае будет выполняться бесконечно.

Объяснение:
В первом цикле условие прекращения цикла имеет тип беззнакового char, значит, у нас присвоение n 256 вызовет переполнение и n станет равным 0. Цикл превратится в for (unsigned char i = 0; i < 0; ++i), а, значит, условие цикла не выполняется, и мы даже не войдём в тело цикла.
Во втором цикле другая ситуация, он превращается в for (unsigned char i = 0; i < 256; ++i), и так как i не может быть больше, чем 255, то условие цикла будет выполняться всегда.
Ключевое слово requires

Ключевое слово requires используется в контексте концепций (concepts) для определения требований, которые тип должен удовлетворять. Концепции представляют собой инструмент в C++, введенный в стандарте C++20, который позволяет более точно указывать ограничения на типы данных, которые могут использоваться в шаблонах.

В примере на картинке Sortable — это концепция, описывающая типы, для которых определены операторы сравнения (»<» и «>»). Функция sortAndPrint принимает два аргумента типа T, удовлетворяющего концепции Sortable, и сравнивает их.

Использование requires в данном контексте позволяет более явно указать ограничения на типы данных, которые могут использоваться в шаблонах и функциях, делая код более читаемым и безопасным.
AI Toolkit — это библиотека C++ только для заголовков, которая предоставляет инструменты для создания ИИ для NPC для игр.

Она предоставляет:

💩 Система конечных автоматов
💩 Дерево поведения
💩 Утилитарный ИИ
💩 Планирование действий с ориентацией на цель

Добавьте папку include этого репозитория в свои пути или добавьте ее как подмодуль:

$ git submodule add https://github.com/linkdd/aitoolkit.git
$ g++ -std=c++23 -Iaiotoolkit/include main.cpp -o mygame
Please open Telegram to view this post
VIEW IN TELEGRAM
#вопросы_с_собеседования

Предполагая, что buf является валидным указателем, в чем проблема в приведенном на картинке коде? Каким был бы альтернативный способ реализации этого, который позволил бы избежать этой проблемы?

Проблема в коде заключается в том, что --sz >= 0 всегда будет истинным, поэтому вы никогда не выйдете из цикла while (поэтому вы, вероятно, в конечном итоге испортите память или вызовете какое-то нарушение памяти или какой-либо другой программный сбой, в зависимости от того, что вы делаете внутри цикла). Причина, по которой --sz >= 0 всегда будет истинной, заключается в том, что тип sz равен size_t. size_t на самом деле просто псевдоним одного из основных беззнаковых целочисленных типов. Следовательно, поскольку sz не имеет знака, оно никогда не может быть меньше нуля (поэтому условие никогда не может быть ложным). Одним из примеров альтернативной реализации, позволяющей избежать этой проблемы, может быть использование цикла for следующим образом:
for (size_t i = 0; i < sz; i++)
Самые полезные каналы для программистов в одной подборке!

Сохраняйте себе, чтобы не потерять 💾

🔥Для всех

Библиотека программиста — новости, статьи, досуг, фундаментальные темы
Книги для программистов
IT-мемы
Proglib Academy — тут мы рассказываем про обучение и курсы

#️⃣C#

Библиотека шарписта
Библиотека задач по C# — код, квизы и тесты
Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel

☁️DevOps

Библиотека devops’а
Вакансии по DevOps & SRE
Библиотека задач по DevOps — код, квизы и тесты
Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования

🐘PHP

Библиотека пхпшника
Вакансии по PHP, Symfony, Laravel
Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по PHP — код, квизы и тесты

🐍Python

Библиотека питониста
Вакансии по питону, Django, Flask
Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Python — код, квизы и тесты

Java

Библиотека джависта — полезные статьи по Java, новости и обучающие материалы
Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Java — код, квизы и тесты
Вакансии для java-разработчиков

👾Data Science

Библиотека Data Science — полезные статьи, новости и обучающие материалы
Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Data Science — код, квизы и тесты
Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту

🦫Go

Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go
Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по Go — код, квизы и тесты
Вакансии по Go

🧠C++

Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++
Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования
Библиотека задач по C++ — код, квизы и тесты
Вакансии по C++

💻Другие профильные каналы

Библиотека фронтендера
Библиотека мобильного разработчика
Библиотека хакера
Библиотека тестировщика

💼Каналы с вакансиями

Вакансии по фронтенду, джаваскрипт, React, Angular, Vue
Вакансии для мобильных разработчиков
Вакансии по QA тестированию
InfoSec Jobs — вакансии по информационной безопасности

📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈

🤖Также у нас есть боты:
Бот с IT-вакансиями
Бот с мероприятиями в сфере IT

Мы в других соцсетях:
🔸VK
🔸YouTube
🔸Дзен
🔸Facebook *
🔸Instagram *

* Организация Meta запрещена на территории РФ
🤔 Очередной #дайджест по С++

Nebula engine — современный опенсорсный игровой движок с бесплатным использованием

Неклассические контейнеры в C++ — в статье автор рассматривает последовательные контейнеры

Стремление к лучшему коду на C++ — основы анализа потоков данных

CMake Tutorial — классный курс по CMake от основ до CTest и CDash

Дорожная карта навыков разработчика на C++ — с помощью карты автор покажет, какие навыки и знания нужны разработчику на C++
Концепт Derived

Концепт Derived в C++ используется для проверки того, является ли указанный тип производным от другого типа. Концепт имеет два шаблонных параметра: Derived и Base.

Концепт Derived удовлетворяется, если и только если Base является классом, который является либо Derived, либо публичным и недвусмысленным базовым классом Derived, игнорируя cv-модификаторы.

Например, код выше удовлетворяет концепту Derived.
💣 Кем вы видите себя через 5 лет: как отвечать на странные и неудобные вопросы на собеседовании

7 самых распространенных вопросов, которые точно задавали каждому из вас.

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