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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
🥰 Senior C developer
Удаленно (Москва)
#c_plus@proglib_jobs

«БПЦ Банковские Технологии» — компания, которая является разработчиком и дистрибьютором семейства продуктов SmartVista, которые обеспечивают поддержку и оптимизацию бизнес-процессов в сфере платежей.

Требования:
• Экспертное знание C/C++
• Желание писать на Cи
• Опыт отладки приложений и системных сервисов
• Алгоритмическая подготовка
• Опыт разработки на Unix платформах

➡️ Подробнее о вакансии на careerist.ru

➡️ А избранные IT-вакансии вы найдете в нашем канале IT Job Hub
Please open Telegram to view this post
VIEW IN TELEGRAM
😁 Библиотека MBASE

MBASE — библиотека позволяющая интегрировать локальные языковые модели в свои приложения.

💡 MBASE SDK предлагает неблокирующую библиотеку для LLM-инференса, построенную поверх llama.cpp, которая решает эти проблемы.

❗️ Ключевые моменты:
• неблокирующий TextToText и Embedder интерфейсы для плавной интеграции в приложения;
• поддержка популярных моделей (Phi, Deepseek, Llama, Qwen и др.);
• OpenAI-совместимый сервер с возможностью обслуживания нескольких моделей одновременно.

Основной фокус — позволить разработчикам интегрировать локальные LLM в высокопроизводительные приложения без замедления основного потока выполнения программы, изменяя само понятие «локального LLM-инференса».

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

Даже с мощной GPU загрузка модели или операции кодирования/декодирования могут приостанавливать работу приложения — MBASE обрабатывает эти операции параллельно, предоставляя синхронизированные коллбэки, чтобы вам не пришлось беспокоиться о проблемах параллельного программирования.
🔄 Мгновенное переименование символов с умным рефакторингом

🤔 Проблема:

Переименование функций, переменных или классов в C++ проектах может быть рискованным — нужно найти все места использования и не забыть изменить связанные конструкции.

🎯 Решение:
Умное переименование (Rename Refactoring) — одна кнопка для безопасного изменения имени во всём проекте!

Комбинации клавиш:

VSCode: F2
CLion: Shift+F6
Visual Studio: Ctrl+R, Ctrl+R (двойное нажатие)

📝 Процесс:

• Установите курсор на имя переменной/функции/класса
• Нажмите соответствующую комбинацию клавиш
• Введите новое имя
• Нажмите Enter для применения изменений
📝 Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году

Техническое собеседование на позицию разработчика, дата-сайентиста и ML-инженера часто включает вопросы по структурам данных и связанным с ними алгоритмами.

В нашей статье мы рассмотрим базовые и продвинутые темы, разберем типичные задачи и обсудим оптимальные способы их решения.

📄 Прочитайте статью и укрепите свои знания https://proglib.io/sh/1uYAygzIxr

Библиотека питониста
Чек-лист: Линейные структуры данных в C++

Линейные структуры данных — фундамент программирования на C++. Правильный выбор структуры может значительно повысить эффективность вашего кода.

🎯 Векторы (std::vector)

✓ Используйте reserve() для предварительного выделения памяти, когда примерно известен размер
✓ Применяйте push_back() для добавления элементов и pop_back() для удаления с конца
✓ Доступ по индексу выполняется за O(1) с помощью оператора []
✓ Используйте at() вместо [] для проверки границ массива

🎯 Списки (std::list)

✓ Отдавайте предпочтение при частых вставках/удалениях в середине
✓ Используйте splice() для эффективного перемещения элементов между списками
✓ Помните, что прямой доступ по индексу невозможен — только итерация
✓ Двунаправленные итераторы позволяют двигаться как вперед, так и назад

🎯 Очереди и стеки (std::queue, std::stack)
✓ Стек (LIFO): используйте push() для добавления и pop() для извлечения
✓ Очередь (FIFO): применяйте push() для добавления и pop() для извлечения
✓ Функция front() позволяет посмотреть первый элемент без удаления
✓ Обе структуры являются адаптерами и построены на других контейнерах

🎯 Массивы (std::array)
✓ Используйте для данных фиксированного размера, известного на этапе компиляции
✓ Более эффективны чем векторы для неизменяемых данных
✓ Поддерживают STL-алгоритмы (sort, find и др.)
✓ Проверяйте границы с функцией at() во избежание ошибок доступа

🤫 Правильный выбор структуры данных может ускорить ваш без изменения алгоритма.
Нужна ли математика программисту

Можно ли стать разработчиком, если в школе ненавидел математику? А если наоборот — тащился от алгебры и геометрии, но кодить не умеешь? Эта статья раскладывает всё по полочкам: где без математики никуда, а где можно и без неё.

➡️ Что внутри:

✓ Почему все считают, что программисты — математики

✓ В каких сферах разработки можно вообще не знать математику

✓ Где хватит готовых библиотек, а где придётся разбираться в формулах

✓ Какие области программирования требуют мощного математического бэкграунда

✓ Что делать, если математика — это боль, но хочется освоить ML или Data Science

✓ Топ книг, которые помогут понять и даже полюбить математику

🔵 Чтобы знать математику, забирайте наш курс → «Математика для Data Science»

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

Proglib Academy
Please open Telegram to view this post
VIEW IN TELEGRAM
sysconf 2025 — конференция по системному программированию от создателей C++ Russia и DevOops

📅 22 марта в Москве + онлайн

На конференции не будет абстрактных рассуждений — только разбор реальных кейсов, разрезка бинарников, дебаггинг и хардкор.

Доклады, на которые стоит обратить внимание:
Компиляторные технологии в верификации аппаратного обеспечения — Константин Владимиров
Устройство многопоточного рантайма движков ВКонтакте — Никита Костливцев
Генератор случайных процессорных архитектур для обучения системному программированию — Петр Советов

Все выступления — на сайте. Кроме докладов будут дискуссии, нетворкинг, активности и розыгрыши от партнеров.

🎟 Купить билет
Если оплачиваете самостоятельно — промокод CPPPROGLIB дает скидку 15%. Но выгоднее участвовать за счет компании! В статье есть аргументы, почему это полезно не только вам, но и работодателю.

Реклама. ООО «Джуг Ру Груп». ИНН 7801341446
😧 58% IT-специалистов страдают: психология успеха и борьба с синдромом самозванца

Синдром самозванца — не просто модный термин, а реальная проблема, с которой сталкиваются даже опытные разработчики. Почему так происходит и как с этим бороться? Разбираемся в причинах «стандартной болезни айтишников»

➡️ Читайте в статье

Спойлер: дело не в навыках, а в психологии успеха

🐸Библиотека шарписта
Please open Telegram to view this post
VIEW IN TELEGRAM
😎 Выпуск Qt Creator 16: новые возможности и улучшения 

14 марта 2025 года состоялся релиз новой версии интегрированной среды разработки Qt Creator 16, предназначенной для создания кроссплатформенных приложений с использованием библиотеки Qt. В этой версии представлены значительные улучшения, которые делают процесс разработки более удобным и эффективным. 

🌶️ Основные нововведения

1. Оптимизация времени запуска 
   - Добавлены асинхронные методы для определения ABI и загрузки кэша шрифтов на Windows. 
   - Ускорено получение информации о Python-пакетах. 

2. Улучшения для работы с QML и CMake 
   - Добавлена переменная QML_IMPORT_PATH для CMake при использовании QML Language Server. 
   - Внедрена поддержка функции Diagnostic.CodeDescription в протоколе LSP. 

3. Новые настройки и интерфейс 
   - Добавлена категория "SDK" для управления параметрами Android, QNX, MCU и Windows App SDK. 
   - Переработаны настройки тулкитов, что сделало их более компактными и удобными. 

4. Улучшения для CMake-проектов 
   - Упрощена структура дерева компонентов проекта. 
   - Повышена производительность определения изменений внешней конфигурации CMake. 

5. Интеграция с инструментами анализа 
   - Улучшена поддержка Axivion для статического анализа кода. 
   - Добавлена возможность настройки coverage-тестирования с использованием Coco. 

6. Исправление проблем 
   - Решена проблема с чисткой временных файлов на разделах с файловой системой FAT. 
   - Добавлена поддержка отладки на устройствах с iOS 17+.
📉🤦 152 000 уволенных в IT за год: кому это помогло?

Корпоративная бензопила снова в деле: каждый месяц 2 миллиона американцев теряют работу из-за сокращений. Но действительно ли это помогает компаниям?

🔗 Читать статью
📚 Мини-справочник по основным типам данных C++

Делимся компактным справочником по основным типам данных в C++. Сохраняйте себе на будущее.

🔢 Целочисленные типы

int — 4 байта, от -2,147,483,648 до 2,147,483,647
short — 2 байта, от -32,768 до 32,767
long — 4 байта (Windows) или 8 байт (Unix)
long long — 8 байт, от -9,223,372,036,854,775,808 до 9,223,372,036,854,775,807

Модификаторы:
unsigned — только положительные числа, удваивает верхний предел
signed — со знаком (по умолчанию)

unsigned int counter = 100;
short temperature = -15;
long long population = 7800000000;


🔡 Символьные типы

char — 1 байт, обычные символы ASCII
wchar_t — 2 или 4 байта, широкие символы (Unicode)
char16_t — 2 байта, символы UTF-16 (C++11)
char32_t — 4 байта, символы UTF-32 (C++11)

char letter = 'A';
wchar_t unicodeChar = L'Ф';
char16_t utf16Char = u'Ж';


🔄 Числа с плавающей точкой

float — 4 байта, точность ~7 цифр, диапазон ±3.4e±38
double — 8 байт, точность ~15 цифр, диапазон ±1.7e±308
long double — 8-16 байт, точность ≥ double, диапазон зависит от компилятора

float price = 19.99f;   // 'f' суффикс для float
double pi = 3.14159265359;
long double precise = 1.23456789123456789L; // 'L' суффикс


🧮 Логический тип

bool — 1 байт, значения: true или false

bool isActive = true;
bool hasPermission = false;


🗄 Производные типы

Массивы: int numbers[5];
Указатели: int* ptr;
Ссылки: int& ref = value;
Строки:
• C-строки: char str[] = "Hello";
• std::string: std::string text = "Hello";

🔄 Автоматическое определение типа (C++11)

auto x = 10;        // int
auto y = 3.14; // double
auto z = "Hello"; // const char*


🧩 Тип Void

void — отсутствие типа (для функций без возвращаемого значения)
void* — указатель на данные любого типа

🔍 Как узнать размер типа


cout << "Размер int: " << sizeof(int) << " байт" << endl;


💡 Полезные советы

1. Используйте **size_t
для индексации и размеров
2. Для целых чисел с гарантированным размером используйте типы из <cstdint>: int32_t, uint64_t
3. Для денежных расчетов избегайте float из-за погрешностей округления

Библиотека C/C++ разработчика #буст
😮‍💨Устали вручную разруливать зависимости в C++ проектах? Время автоматизировать процесс! 🕒💻

Пакетные менеджеры Conan и vcpkg позволяют легко управлять библиотеками, устанавливать зависимости и ускорять сборку. Разберем, как это работает, на открытом уроке.

Упростите себе жизнь: научитесь использовать пакетные менеджеры, чтобы писать код, а не разбираться с проблемами сборки.

Спикер Денис Злобинстарший инженер-программист в Astra Linux, опытный наставник разработчиков.

➡️Встречаемся 20 марта в 20:00 мск, разберем всё на практике! Участники получат скидку на большое обучение по разработке на С++.

Регистрация: https://clck.ru/3HjpJy

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов

В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.

➡️ Читать статью
➡️ Зеркало
❗️Вакансии «Библиотеки программиста» — ждем вас в команде!

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

Подробности тут

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

Ждем ваших откликов 👾