Библиотека 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
加入频道
Задача : на вход подается номер столбца, необходимо конвертировать его в буквенное представление, которое будет использоваться в таблице-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 самых распространенных вопросов, которые точно задавали каждому из вас.

Читать статью
⚙️🛠️ Оптимизируя неоптимизируемое: ускорение компиляции C++

В статье речь пойдёт о повышении скорости компиляции библиотеки {fmt} до уровня библиотеки ввода-вывода Cи stdio.

{fmt} — это популярная открытая библиотека С++, представляющая более эффективную альтернативу С++ библиотеке iostreams и библиотеке Си stdio. Последнюю она обошла по целому ряду аспектов:

🔹 Безопасность типов с проверками форматирующих строк во время компиляции. Эти проверки включены по умолчанию начиная с С++ 20, и присутствуют в качестве дополнения для С++ 14/17. Форматирующие строки среды выполнения в {fmt} также оказываются безопасными, чего невозможно достичь в printf.
🔹 Расширяемость. Определяемый пользователем тип можно сделать форматируемым. При этом большинство типов стандартных библиотек, например, контейнеры и пакеты для обработки даты и времени, предлагают возможность форматирования изначально.
🔹 Производительность. {fmt} намного быстрее любой распространённой реализации printf, порой на несколько порядков (например, в форматировании чисел с плавающей запятой).
🔹 Возможность переноса поддержки Unicode.

Продолжение здесь

#гайд
input_iterator

В C++ понятие итератора используется для доступа к элементам контейнера. Итераторы могут быть разных типов, каждый из которых имеет свои собственные свойства и ограничения.

Итератор input_iterator представляет собой итератор, который может только читать значения элементов контейнера. Он не может их изменять.

Итераторы input_iterator должны удовлетворять следующим требованиям:
🔹 Они должны поддерживать оператор *, который возвращает значение элемента, на который указывает итератор.
🔹 Они должны поддерживать оператор ++, который перемещает итератор на следующий элемент контейнера.
📚Extreme C (2019)

✍️Автор: Amini K.

📃Страниц: 823

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

Ссылка на книгу
🤔 Очередной #дайджест по С++

🔽 Дорожная карта навыков разработчика на C++ — универсальная дорожная карта будет полезна всем, кто хочет развиваться в разработке

🔽 Больше функциональности в C++23 — приемы, дополнения и библиотеки улучшающие работу разработчика

🔽 Малоизвестные и интересные особенности C и C++ — малоизвестные и странные решения, принятые в языках C и C++, своего рода солянка из фактов

🔽 Про сортировку чисел и SIMD или как я обогнал STL в 16 раз — как быстро сортировать множества, в которых количество элементов не превышает 128 элементов

🔽 LLVM и GCC, Register allocation, IT-образование в вузах и прочее — познавательный разговор с разработчиком компиляторов для CPU и GPU
«Библиотека программиста» ищет контент-менеджера для ведения телеграм-каналов

Ищем человека, который грамотно пишет и разбирается в одной из этих тем:
👉С++
👉C#
👉DevOps

Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴

Подробнее о вакансии и форма для отклика — по ссылке.

Ждем вас в команде!