Forwarded from Библиотека задач по C++ | тесты, код, задания
😁7❤3
  🔥 Не пропустите событие осени для AI-комьюнити
24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»
😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%
⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.
⏰ Мест мало, регистрация закроется, как только забьём комнату
24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»
😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%
⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.
⏰ Мест мало, регистрация закроется, как только забьём комнату
😁2❤1
  Если нужно запретить автоматический вывод типов для некоторых параметров шаблона, то
std::type_identity поможет решить эту проблему.std::type_identity из C++20 — простая обертка, которая предотвращает template argument deduction. Полезно для создания non-deduced contexts.👉 Определение:
template<typename T>
struct type_identity { using type = T; };
template<typename T>
using type_identity_t = typename type_identity<T>::type;
💡 Примеры использования:
// БЕЗ type_identity - тип T выводится автоматически
template<typename T>
void convert_and_print(T from, T to) { /* ... */ }
convert_and_print(1, 2.5); // Ошибка: T не может быть int и double
// С type_identity - принуждаем указать тип явно
template<typename T>
void convert_and_print(T from, std::type_identity_t<T> to) {
std::cout << static_cast<T>(to) << std::endl;
}
convert_and_print<double>(1, 2.5); // OK: T = double}
💡 Функции сравнения:
template<typename T>
bool equal(const T& a, std::type_identity_t<const T&> b) {
return a == b;
}
std::string str = "hello";
equal(str, "hello"); // OK: T = std::string, второй параметр - const char*
🔍 Factory с явным указанием типа:
template<typename T>
std::unique_ptr<T> make_initialized(std::type_identity_t<T> init_value) {
return std::make_unique<T>(init_value);
}
// Тип нужно указать явно
auto ptr = make_initialized<std::string>("Hello World");
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤10👍4
  💡 Pointer Tagging в C++: искусство упаковки битов в указатель
Автор статьи рассказывает о технике pointer tagging — упаковке дополнительных данных прямо в указатели, используя неиспользуемые биты.
❗Ключевые моменты статьи:
• 64-битный указатель использует только 48 бит для адресации, оставляя 16 бит свободными
• malloc выравнивает память по 16-байтным границам, освобождая нижние 4 бита
• в итоге получается 20 свободных бит для хранения метаданных
 
Основной фокус — практическая реализация
Особенно актуально для разработчиков высокопроизводительных систем, работающих с динамическим полиморфизмом и древовидными структурами данных.
Вы узнаете, как Chrome V8 использует эту технику для различения целых чисел и ссылок на объекты, а ядро Linux — для хранения цвета узла в красно-чёрном дереве прямо в указателе на родителя.
➡️ Статья
Библиотека C/C++ разработчика
#буст
Автор статьи рассказывает о технике pointer tagging — упаковке дополнительных данных прямо в указатели, используя неиспользуемые биты.
❗Ключевые моменты статьи:
• 64-битный указатель использует только 48 бит для адресации, оставляя 16 бит свободными
• malloc выравнивает память по 16-байтным границам, освобождая нижние 4 бита
• в итоге получается 20 свободных бит для хранения метаданных
Основной фокус — практическая реализация
tagged_ptr в C++ с автоматическим маскированием битов и поддержкой стандартных операторов указателей.Особенно актуально для разработчиков высокопроизводительных систем, работающих с динамическим полиморфизмом и древовидными структурами данных.
Вы узнаете, как Chrome V8 использует эту технику для различения целых чисел и ссылок на объекты, а ядро Linux — для хранения цвета узла в красно-чёрном дереве прямо в указателе на родителя.
➡️ Статья
Библиотека C/C++ разработчика
#буст
❤11🔥7👍1🥰1
  ❗ Сегодня премьера
В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным — «ИИ-агенты: новая фаза развития искусственного интеллекта».
В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.
⏰ Это прямой эфир: подключиться можно через лендинг курса.
В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным — «ИИ-агенты: новая фаза развития искусственного интеллекта».
В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.
⏰ Это прямой эфир: подключиться можно через лендинг курса.
❤1😁1
  🔍 Какой алгоритм поиска выбрать?
Выбор неправильного алгоритма поиска может в разы замедлить программу.
✏️  Выбираем по ситуации:
1️⃣  Неупорядоченные данные → std::find (O(n)):
2️⃣  Упорядоченные данные → std::binary_search (O(log n)):
3️⃣  Частые поиски → std::unordered_set (O(1) average):
4️⃣  Поиск с предикатом → std::find_if:
❌  Частая ошибка: Использование find на отсортированных данных.
Библиотека C/C++ разработчика
#буст
Выбор неправильного алгоритма поиска может в разы замедлить программу.
std::vector<int> nums = {3, 1, 4, 1, 5};
auto it = std::find(nums.begin(), nums.end(), 4);
if (it != nums.end()) {
    std::cout << "Found at position " << std::distance(nums.begin(), it);
}std::vector<int> sorted_nums = {1, 2, 3, 4, 5};
if (std::binary_search(sorted_nums.begin(), sorted_nums.end(), 3)) {
    std::cout << "Found!";
}std::unordered_set<int> lookup = {1, 3, 5, 7, 9};
if (lookup.find(5) != lookup.end()) {
    std::cout << "Found instantly!";
}auto even = std::find_if(nums.begin(), nums.end(),
[](int n) { return n % 2 == 0; });
Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  🔥10👍1
  Forwarded from Proglib.academy | IT-курсы
🔒 Оптимистическая vs пессимистическая блокировка: как выбрать и не пожалеть
Что произойдет, если несколько пользователей одновременно начнут менять одни и те же данные? Скорее всего — потеря изменений и ошибки.
Чтобы этого избежать, в системах используются блокировки: пессимистические — когда конфликтам не дают случиться, и оптимистические — когда система проверяет их только перед сохранением.
Разбираемся, как работают блокировки и какая из них лучше подойдет твоему приложению.
🔗  Читать статью
🏃♀️  Proglib Academy
#буст
Что произойдет, если несколько пользователей одновременно начнут менять одни и те же данные? Скорее всего — потеря изменений и ошибки.
Чтобы этого избежать, в системах используются блокировки: пессимистические — когда конфликтам не дают случиться, и оптимистические — когда система проверяет их только перед сохранением.
Разбираемся, как работают блокировки и какая из них лучше подойдет твоему приложению.
#буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  😁5💯1
  Правильная обработка ошибок — разница между надёжным и хрупким кодом.
✓ Бросание исключений по значению, ловля по ссылке
✓ Использование стандартных исключений STL где возможно
✓ RAII для автоматической очистки при исключениях
✓ Документирование исключений в комментариях
✓ std::optional для функций, которые могут не вернуть значение
✓ std::expected (C++23) для возврата ошибок
✓ Error codes для низкоуровневого кода
✓ Паттерн Result<T, Error> для функционального стиля
✓ Функции помечены как noexcept где гарантируется
✓ Strong exception гарантия в критичных местах
✓ Правильная обработка в деструкторах (never throw)
Библиотека C/C++ разработчика
#код_ревью
Please open Telegram to view this post
    VIEW IN TELEGRAM
  ❤8😁1
  🐸 Подборка вакансий для C++-разработчиков за неделю
Программист Embedded C++ — от 200 000 и до 300 000 ₽ Офис (Санкт-Петербург)
Системный программист C++ — от 180 000 и до 350 000 ₽ Офис (Екатеринбург)
Разработчик C++/Rust (SDN dataplane, DPDK/DOCA API) — от 300 000 и до 600 000 ₽ Офис/удаленно/гибрид (Москва)
C++ Developer — от 300 000 ₽ Удаленно/офис
C++ developer [Middle] — до 350 000 ₽ Удаленно/Офис (Омск, Новосибирск, Санкт-Петербург)
C++ / Qt Разработчик — до 370 000 ₽ Офис (Республика Татарстан, ОЭЗ «Алабуга»)
Библиотека C/C++ разработчика
Программист Embedded C++ — от 200 000 и до 300 000 ₽ Офис (Санкт-Петербург)
Системный программист C++ — от 180 000 и до 350 000 ₽ Офис (Екатеринбург)
Разработчик C++/Rust (SDN dataplane, DPDK/DOCA API) — от 300 000 и до 600 000 ₽ Офис/удаленно/гибрид (Москва)
C++ Developer — от 300 000 ₽ Удаленно/офис
C++ developer [Middle] — до 350 000 ₽ Удаленно/Офис (Омск, Новосибирск, Санкт-Петербург)
C++ / Qt Разработчик — до 370 000 ₽ Офис (Республика Татарстан, ОЭЗ «Алабуга»)
Библиотека C/C++ разработчика
👍2🔥1
  🤫 Курс «ИИ-агенты для DS-специалистов»
Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.
Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?
🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:
— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса
📌 Курс подходит:
→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам
⚡️ Старт уже скоро — 3 октября.
💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).
🔗 Узнать больше о курсе и записаться
З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.
Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?
🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:
— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса
📌 Курс подходит:
→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам
⚡️ Старт уже скоро — 3 октября.
💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).
🔗 Узнать больше о курсе и записаться
З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
❤1😁1
  Длинные или короткие имена функций/переменных?
  Anonymous Poll
    41%
    Длинные и описательные - самодокументируемый код
      
    15%
    Короткие и ёмкие - меньше печатать
      
    20%
    Зависит от области видимости
      
    4%
    Как в стандартной библиотеке
      
    20%
    Главное - не использовать однобуквенные
      
    😁1
  📰 Свеженькое из мира C++
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• std::type_identity — предотвращение template argument deduction
• Pointer Tagging в C++ — искусство упаковки битов в указатель
• Какой алгоритм поиска выбрать? — варианты алгоритмов для решения задач по поиску элементов
• Error Handling в C++ — чек-лист для проверки кода на правильность обработки ошибок
🔥 Интересные проекты:
• Sunshine — игровой стриминговый сервис для Moonlight
• Deskflow — бесплатное приложение с открытым исходным кодом для совместного использования клавиатуры и мыши
• Abseil — коллекция C++-кода с открытым исходным кодом (совместимая с C++17), предназначенная для расширения стандартной библиотеки C++.
Библиотека C/C++ разработчика
#свежак
Подготовили подборку самых интересных материалов за неделю о разных аспектах программирования и интересных проектах в мире C++.
😎 Полезное:
• std::type_identity — предотвращение template argument deduction
• Pointer Tagging в C++ — искусство упаковки битов в указатель
• Какой алгоритм поиска выбрать? — варианты алгоритмов для решения задач по поиску элементов
• Error Handling в C++ — чек-лист для проверки кода на правильность обработки ошибок
🔥 Интересные проекты:
• Sunshine — игровой стриминговый сервис для Moonlight
• Deskflow — бесплатное приложение с открытым исходным кодом для совместного использования клавиатуры и мыши
• Abseil — коллекция C++-кода с открытым исходным кодом (совместимая с C++17), предназначенная для расширения стандартной библиотеки C++.
Библиотека C/C++ разработчика
#свежак
❤3👍2
  🚀 Всё о курсе «ИИ-агенты для DS-специалистов»
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals).
🔗 Описание программы и регистрация
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо
🔗 Описание программы и регистрация
😁1
  🔥 Сегодня последний день скидки!
На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.
Что тебя ждёт на курсе:
⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса
⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокодdatarascals ).
🔗 Записаться на курс
На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.
Что тебя ждёт на курсе:
⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса
⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокод
🔗 Записаться на курс
😁4❤1
  Forwarded from Библиотека задач по C++ | тесты, код, задания
  
  Forwarded from Библиотека задач по C++ | тесты, код, задания
Что выведет программа?
  Anonymous Quiz
    22%
    5 5 5
      
    42%
    0 5 0
      
    20%
    Undefined behavior
      
    10%
    0 5 и непредсказуемое значение
      
    8%
    Ошибка компиляции
      
    😁8🥱1👾1
  Если устали помнить порядок полей в структурах и случайно их путать, то
designated initializers могут решить эту проблему.Designated initializers позволяют инициализировать структуры по именам полей, делая код более читаемым и безопасным.struct Point {
    int x, y, z;
};
Point p{.x = 10, .y = 20, .z = 30};struct Config {
    std::string host = "localhost";
    int port = 8080;
    bool ssl_enabled = false;
    int timeout_ms = 5000;
};
// Указываем только нужные поля
Config cfg{
    .host = "example.com",
    .ssl_enabled = true
}; // port и timeout_ms получат значения по умолчаниюstruct Database {
    std::string connection_string;
    int max_connections = 10;
};
struct AppConfig {
    Database db;
    std::string log_level = "INFO";
};
AppConfig config{
    .db = {.connection_string = "postgresql://...", .max_connections = 20},
    .log_level = "DEBUG"
};struct DrawOptions {
    bool fill = false;
    int line_width = 1;
    std::string color = "black";
    float opacity = 1.0f;
};
void draw_rectangle(int x, int y, int w, int h, DrawOptions opts = {}) {
    // implementation
}
// Явно указываем только нужные опции
draw_rectangle(10, 20, 100, 50, {
    .fill = true,
    .color = "red",
    .opacity = 0.8f
});Библиотека C/C++ разработчика
#буст
Please open Telegram to view this post
    VIEW IN TELEGRAM
  👍10❤4
  🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
😁3
  