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

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

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

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17

#WXSSA
Download Telegram
🎓 Халява для новичков: Бесплатная база по Python и C++ с тонной практики

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

Python: Мощный упор на практику 210 тестов и 243 интерактивные задачи. Программа построена грамотно: вас проведут от стартовой настройки PyCharm, систем счисления и таблицы ASCII через нюансы типа Decimal к серьезной работе с матрицами в NumPy и функциональным встроенным инструментам вроде map(), filter() и reduce().з

C++: Тоже не дадут расслабиться внутри 205 тестов и 197 интерактивных задач для жесткой прокачки синтаксиса и алгоритмического мышления.


👉 Забираем в закладки:
- C++
- Python

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#магиякода
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2🔥2👏1
👀 Практический курс «Разработка AI-агентов для автоматизации задач, работы и собственных проектов» со скидкой 40% до конца мая!

Мы поговорили с десятками разработчиков, учли главные боли индустрии и запускаем полностью обновленный курс «ИИ-агенты 5.0». 🎉

Что вы узнаете?

- Как радикально оптимизировать траты на токены.
- Как на практике оценивать качество и точность работы агента.
- Как «докручивать» RAG-системы без потери качества.
- Как обеспечить устойчивость агента к сбоям внешних сервисов без падения всей системы, и про многое-многое другое.

Спикеры — практики с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, Raft и Газпромбанк др.

Длительность: 6–12 недель в зависимости от тарифа.

👉 Занимайте место на главном агентском интенсиве по лучшей цене
1
🪐 Алгоритмы диапазонов: Алгоритмы сортировки

Продолжаем серию о диапазонах — на очереди сортировка 🙂

Напомню: std::ranges::* принимают диапазоны целиком и поддерживают проекции. Если пропустили предыдущий пост про алгоритмы поиска — начните с него.


🧋 ranges::sort — классическая сортировка

std::vector<int> v = {5, 3, 1, 4, 2};

std::ranges::sort(v); // {1, 2, 3, 4, 5}
std::ranges::sort(v, std::greater{}); // {5, 4, 3, 2, 1}


Один аргумент вместо пары итераторов. Второй аргумент — компаратор: std::greater{} для сортировки по убыванию, {} (или ничего) — по возрастанию.

❗️ ranges::sort требует random access range — std::vector, std::array, std::deque подойдут, а std::list — нет (для него есть метод list::sort()).


🍿 ranges::stable_sort — сохраняем порядок равных

struct Task {
std::string name;
int priority;
};

std::vector<Task> tasks = {
{"Почта", 2}, {"Код", 1}, {"Тесты", 2}, {"Деплой", 1}
};

std::ranges::stable_sort(tasks, {}, &Task::priority);
// {{"Код", 1}, {"Деплой", 1}, {"Почта", 2}, {"Тесты", 2}}
// Элементы с одинаковым priority сохранили исходный порядок


Если два элемента «равны» по компаратору, stable_sort гарантирует, что их взаимный порядок останется таким же, как в исходном диапазоне. Обычный sort такой гарантии не даёт.


🍨 ranges::partial_sort — сортируем только первые N

std::vector<int> v = {5, 3, 1, 4, 2};

std::ranges::partial_sort(v, v.begin() + 3);
// {1, 2, 3, ?, ?} — первые три отсортированы, остальные в произвольном порядке


Полезно, когда нужен «топ-N» без затрат на полную сортировку. Сложность O(N·log(K)) вместо O(N·log(N)), где K — количество нужных элементов.


🍋 ranges::partial_sort_copy — топ-N в отдельный буфер

std::vector<int> v = {5, 3, 1, 4, 2};
std::vector<int> top3(3); // буфер под результат

std::ranges::partial_sort_copy(v, top3);
// top3 == {1, 2, 3}
// v не изменился: {5, 3, 1, 4, 2}


Работает как partial_sort, но не трогает исходный диапазон — результат пишется в отдельный контейнер. Размер приёмника определяет K (сколько элементов попадёт в «топ»). Удобно, когда исходные данные нельзя модифицировать.

// Топ-2 самых старших — без изменения исходного вектора
std::vector<Person> oldest(2);
std::ranges::partial_sort_copy(people, oldest, std::greater{}, &Person::age);



👀 ranges::nth_element — найти N-й по порядку

std::vector<int> v = {5, 3, 1, 4, 2};

std::ranges::nth_element(v, v.begin() + 2);
// v[2] == 3 (медиана)
// Все элементы слева <= 3, справа >= 3, но внутри групп порядок произвольный


Элемент на позиции N оказывается тем же, что стоял бы там после полной сортировки. Идеален для поиска медианы или перцентилей. Средняя сложность — O(N).


🐾 ranges::is_sorted — проверка отсортированности

std::vector<int> a = {1, 2, 3, 4, 5};
std::vector<int> b = {1, 3, 2, 4, 5};

bool ok1 = std::ranges::is_sorted(a); // true
bool ok2 = std::ranges::is_sorted(b); // false

// Найти, где порядок нарушается
auto it = std::ranges::is_sorted_until(b);
// *it == 2 — первый элемент, нарушающий порядок


is_sorted — быстрая проверка перед бинарным поиском или мержем. is_sorted_until возвращает итератор на первый элемент, который «ломает» порядок.


🍕 Проекции — работают и в сортировках

struct Person {
std::string name;
int age;
};

std::vector<Person> people = {{"Алиса", 30}, {"Борис", 25}, {"Вера", 35}};

// Сортировка по возрасту — без лямбды
std::ranges::sort(people, {}, &Person::age);
// {{"Борис", 25}, {"Алиса", 30}, {"Вера", 35}}

// По убыванию возраста
std::ranges::sort(people, std::greater{}, &Person::age);

// Топ-2 самых старших
std::ranges::partial_sort(people, people.begin() + 2, std::greater{}, &Person::age);


is_sorted — быстрая проверка перед бинарным поиском или мержем. is_sorted_until возвращает итератор на первый элемент, который «ломает» порядок.

❗️ Проекция — третий аргумент (после компаратора). {} на месте компаратора означает std::less{} по умолчанию.


📍Навигация: ВакансииЗадачиСобесыКанал в Max

Библиотека C/C++ разработчика

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
🚨 8 признаков, что тебя готовят к увольнению

В IT не принято говорить прямо. Поэтому вместо честного разговора тебе просто перестают давать важные задачи, убирают с ключевых встреч и начинают «оптимизировать расходы». Мы собрали 8 признаков, что компания уже приняла решение и просто ждет удобного момента.

👉 Подробнее...

📍Навигация: ВакансииЗадачиСобесы Канал в Max

Библиотека C/C++ разработчика

#буст
🌚2👍1😁1
🦾🧠🏋️ Качаем мозги к лету!

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

⚡️ Распродажа @proglib_academy: забирайте самые актуальные образовательные треки по сниженным ценам!

➡️ Разработка AI-агентов от 49 000 ₽ (вместо 69 000 ₽).

➡️ Курс AgentOps129 000 ₽ (вместо 149 000 ₽).

➡️ Математика для разработки AI-моделей23 990 ₽ (вместо 31 990 ₽).

➡️ ML для старта в Data Science 28 990 ₽ (вместо 38 990 ₽).

Почему мы?

⭐️Учим для продакшена. Наши программы заточены под реальные задачи бизнеса: как не слить бюджет на токены, как заставить LLM работать стабильно в бэкенде и как выстроить отказоустойчивую архитектуру.
⭐️Спикеры — суровые практики. Вы будете перенимать опыт у действующих AI-архитекторов, тимлидов и ML-инженеров из топовых IT-компаний.
⭐️Комплексный подход. Мы даем как мощный математический фундамент для понимания моделей «под капотом», так и передовые инструменты оркестрации агентов.
⭐️Много практики и фидбека. Вебинары, десятки практических заданий и живое общение с экспертами в чате Telegram на протяжении всего обучения.

Оставляйте заявку и бронируйте место со СКИДКОЙ 40%
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🐸 Подборка вакансий для C++-разработчиков за неделю

Системный программист С++ — Офис (Санкт-Петербург)

Senior С++ разработчик — от 370 000 и до 450 000 ₽ Офис (Санкт-Петербург)

Senior C++ developer (Fintech) — от 3 000 и до 5 000 $ Удалёнка

C++ разработчик — Удалёнка

📍Навигация: ВакансииЗадачиСобесыКанал в Max

Библиотека C/C++ разработчика

#вакансии
😁2
🧨 Задача на выходные: битовое поле, которое лжёт


Сделали компактную структуру флагов. Записали 1, сравниваем с 1 — не сходится. Призраки?

struct Flags { int active : 1; };

int main() {
Flags f;
f.active = 1;

if (f.active == 1)
std::cout << "ok\n"; // не печатает!
}


Задача: объясни, почему однобитное знаковое поле хранит не то, что ждёшь, и какое значение реально читается. Как объявить поле правильно?

💬 Кто наступал на эти грабли — пишите в комментариях.


📍Навигация:
ВакансииЗадачиСобесыКанал в Max

Библиотека C/C++ разработчика

#междусобойчик
👍5🔥1
⚡️ Последний шанс забрать курсы со СКИДКОЙ 40%! Прокачайте свой мозг правильно

До конца акции вы можете воспользоваться специальными ценами на самые востребованные IT-направления. Круто и выгодно прокачать свои скиллы, чтобы получить оффер, уехать на Бали и больше не быть онлайн 😎

➡️ Разработка AI-агентов от 49 000 ₽ (вместо 69 000 ₽)
Курс про контролируемую разработку ИИ-агентов: качество, стоимость, наблюдаемость и тестирование. С первого занятия — только практическая работа.

➡️ Курс AgentOps 129 000 ₽ (вместо 149 000 ₽)
Профессиональный трек для разработчиков и LLM инженеров о том, как правильно внедрять AI-логику в бэкенд и сохранять железную стабильность сервиса.

➡️ Математика для Data Science от 29 990 ₽ (вместо 39 990 ₽)
Вы научитесь решать сложные математические задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе. Отличная база для мощного старта в DS.

➡️ Курс Специалист по ИИ 89 000 ₽ (вместо 113 900 ₽)
Комплексная программа для получения профессии в сфере ИИ с нуля. За 8 месяцев вы соберете сильное портфолио из 5 реальных проектов и дипломной работы.

➡️ Архитектуры и шаблоны проектирования27 990 ₽ (вместо 37 900 ₽)
Интенсив для разработчиков, который поможет освоить основные паттерны проектирования и прокачать навыки архитектора программного обеспечения.

🌸 Выбирайте направление, оставляйте заявку на сайте распродажи, и наш менеджер подробно вас проконсультирует
Please open Telegram to view this post
VIEW IN TELEGRAM
1
📰 Свеженькое из мира C++

Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.

😎 Интересное:

Как уволиться грамотно: 8 шагов, чтобы закрыть все вопросы — разбираемся как подготовиться к увольнению
constexpr аллокации в C++20: new при компиляции — разбираемся почему теперь можно аллоцировать память во время компиляции
Бесплатная база по C++ с тонной практики — бесплатный курс по C++
8 признаков, что тебя готовят к увольнению — будь осторожен, эти признаки тебе намекнут на то, что тебе нужно вспоминать свой пароль от HH

📙 Ranges:

Алгоритмы диапазонов: Алгоритмы поиска
Алгоритмы диапазонов: Алгоритмы сортировки

🔹📍Навигация: ВакансииЗадачиСобесы

Библиотека C/C++ разработчика

#свежак
😁2