🏖 Подборка вакансий для C++-разработчиков за неделю
Senior С++ / Rust Developer — от 300 000 и до 450 000 ₽ Гибрид (Москва, Санкт-Петербург)
Разработчик C++ — от 350 000 и до 500 000 ₽ Гибрид (Москва)
C/C++ Developer — от 350 000 и до 500 000 ₽ Гибрид (Москва)
Разработчик на C++ — от 250 000 и до 350 000 ₽ Офис (Москва)
➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
Библиотека C/C++ разработчика
Senior С++ / Rust Developer — от 300 000 и до 450 000 ₽ Гибрид (Москва, Санкт-Петербург)
Разработчик C++ — от 350 000 и до 500 000 ₽ Гибрид (Москва)
C/C++ Developer — от 350 000 и до 500 000 ₽ Гибрид (Москва)
Разработчик на C++ — от 250 000 и до 350 000 ₽ Офис (Москва)
➡️ Еще больше топовых вакансий — в нашем канале C++ jobs
Библиотека C/C++ разработчика
🔥2
⚙️ Boost.Program_options
Boost.Program_options — это библиотека для элегантного парсинга аргументов командной строки и конфигурационных файлов с автоматической генерацией help и валидацией параметров.
👉 Установка:
💡 Примеры использования:
✍️ Дополнительные возможности:
— Поддержка конфигурационных файлов
— Валидация типов и значений
— Группировка опций
— Автоматическая генерация справки
🔍 Специальная фича:
Библиотека C/C++ разработчика #буст
Устали писать парсинг argc/argv вручную для каждого приложения?
Boost.Program_options — это библиотека для элегантного парсинга аргументов командной строки и конфигурационных файлов с автоматической генерацией help и валидацией параметров.
👉 Установка:
# Часть Boost libraries
sudo apt install libboost-program-options-dev
# Или через vcpkg: vcpkg install boost-program-options
💡 Примеры использования:
#include <boost/program_options.hpp>
namespace po = boost::program_options;
po::options_description desc("Options");
desc.add_options()
("help,h", "Help message")
("input,i", po::value<string>(), "Input file")
("verbose,v", "Verbose output");
po::variables_map vm;
po::store(po::parse_command_line(argc, argv, desc), vm);
✍️ Дополнительные возможности:
— Поддержка конфигурационных файлов
— Валидация типов и значений
— Группировка опций
— Автоматическая генерация справки
🔍 Специальная фича:
// Комбинирование источников конфигурации
po::store(po::parse_command_line(argc, argv, desc), vm);
po::store(po::parse_config_file("config.ini", desc), vm);
po::notify(vm); // Применение всех значений
Библиотека C/C++ разработчика #буст
🔥5❤3👍3❤🔥1
🧨 C++26 получил Reflection
💡 Комитет ISO C++ только что проголосовал за включение compile-time reflection в C++26, и Хана Дусикова («Ms. Constexpr») охарактеризовала это всего словами: «Целый новый язык».
❗ Ключевые возможности reflection в C++26:
• отражение типов и генерация кода на их основе в compile-time
• автоматическое создание биндингов для Python/JS прямо из C++ кода
• упрощение build-систем и тулчейнов через метаданные
Основной фокус — это первый шаг к полноценному метапрограммированию без template-магии, который позволит генерировать произвольный C++ код на основе информации о типах.
Актуально для всех C++ разработчиков — от новичков до архитекторов крупных систем, так как reflection кардинально изменит подходы к написанию кода.
Герб Саттер называет это «более трансформационным, чем любые 10 других крупных фич стандарта вместе взятых».
👉 Заметка
Библиотека C/C++ разработчика
«Когда же в C++ появится нормальное метапрограммирование без этих template-кошмаров?»
💡 Комитет ISO C++ только что проголосовал за включение compile-time reflection в C++26, и Хана Дусикова («Ms. Constexpr») охарактеризовала это всего словами: «Целый новый язык».
❗ Ключевые возможности reflection в C++26:
• отражение типов и генерация кода на их основе в compile-time
• автоматическое создание биндингов для Python/JS прямо из C++ кода
• упрощение build-систем и тулчейнов через метаданные
Основной фокус — это первый шаг к полноценному метапрограммированию без template-магии, который позволит генерировать произвольный C++ код на основе информации о типах.
Актуально для всех C++ разработчиков — от новичков до архитекторов крупных систем, так как reflection кардинально изменит подходы к написанию кода.
Герб Саттер называет это «более трансформационным, чем любые 10 других крупных фич стандарта вместе взятых».
👉 Заметка
Библиотека C/C++ разработчика
🔥24🤔6❤2😢1
Часто возникает ситуация, когда нужно добавить новую функциональность в существующую функцию. В C++ это особенно актуально при работе с шаблонами, алгоритмами и обработкой данных.
Для того чтобы корректно добавить параметр в функцию и расширить её возможности, используй следующий промпт:
Add a parameter to this function to do [ФУНКЦИОНАЛЬНОСТЬ]
[ВСТАВТЕ ВАШ КОД ЗДЕСЬ]
До:
void processData(const std::vector<int>& data) {
for (const auto& item : data) {
std::cout << item << std::endl;
}
}
После (добавили параметр для кастомного форматирования):
void processData(const std::vector<int>& data,
const std::string& format = "{}: {}") {
for (size_t i = 0; i < data.size(); ++i) {
std::cout << std::format(format, i, data[i]) << std::endl;
}
}
✏️ Как часто вам приходится расширять функциональность существующих функций?
Библиотека C/C++ разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😢6🔥2🥱2❤1
🔥 Последняя неделя перед стартом курса по AI-агентам
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Старт курса уже 5го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место
На курсе:
— разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах
📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями
И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»
👉 Курс здесь
Please open Telegram to view this post
VIEW IN TELEGRAM
😁37👏2👾1
✅ Чек-лист: Автоматическое форматирование кода для единообразного стиля в команде
🎯 Настройка и конфигурация
✓ Создайте .clang-format файл в корне проекта
✓ Выберите базовый стиль
✓ Настройте отступы, скобки и переносы строк
✓ Добавьте специфичные правила для вашего проекта
🎯 Интеграция с инструментами
✓ Настройте автоформатирование в IDE
✓ Используйте pre-commit hooks для Git
✓ Интегрируйте с CI для проверки стиля
✓ Добавьте команды форматирования в CMake
🎯 Командная работа
✓ Документируйте стиль кода в README
✓ Проводите code review с проверкой стиля
✓ Используйте .clang-format-ignore для исключений
✓ Настройте автоматическое форматирование
🎯 Продвинутые возможности
✓ Используйте clang-format-diff для частичного форматирования
✓ Настройте языкоспецифичные правила
✓ Применяйте макросы для кастомизации
✓ Интегрируйте с другими linter'ами
Как измерить результат: Подсчитайте количество комментариев по стилю кода в code review.
Библиотека C/C++ разработчика #буст
🎯 Настройка и конфигурация
✓ Создайте .clang-format файл в корне проекта
✓ Выберите базовый стиль
✓ Настройте отступы, скобки и переносы строк
✓ Добавьте специфичные правила для вашего проекта
🎯 Интеграция с инструментами
✓ Настройте автоформатирование в IDE
✓ Используйте pre-commit hooks для Git
✓ Интегрируйте с CI для проверки стиля
✓ Добавьте команды форматирования в CMake
🎯 Командная работа
✓ Документируйте стиль кода в README
✓ Проводите code review с проверкой стиля
✓ Используйте .clang-format-ignore для исключений
✓ Настройте автоматическое форматирование
🎯 Продвинутые возможности
✓ Используйте clang-format-diff для частичного форматирования
✓ Настройте языкоспецифичные правила
✓ Применяйте макросы для кастомизации
✓ Интегрируйте с другими linter'ами
Как измерить результат: Подсчитайте количество комментариев по стилю кода в code review.
Библиотека C/C++ разработчика #буст
🔥4🥰1🤩1
🧠 «Поиграйся с LLM, почитай про агентов — и сам поймёшь, как это работает»
Это один из самых бесполезных советов, который мы слышали в адрес тех, кто хочет разобраться в AI-агентах.
Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.
AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.
➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод
Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля
P.S: не упусти свой шанс, промокод:LASTCALL на 10.000₽
Это один из самых бесполезных советов, который мы слышали в адрес тех, кто хочет разобраться в AI-агентах.
Поиграйся — это как?
Потыкать пару промптов в ChatGPT и решить, что теперь ты можешь строить мультиагентные системы? 🤡 Ну-ну.
AI-агенты — это не «очередная обёртка над GPT». Это архитектура. Состояния, инструменты, цепочки вызовов, память, оценка качества и адекватность поведения.
➡️ Чтобы разобраться, нужно:
— понимать, как устроен LLM под капотом
— уметь подключать внешние данные (RAG, retrievers, rerankers)
— уметь масштабировать и дебажить поведение агентов
— разбираться в фреймворках вроде AutoGen, CrewAI, LangChain
— знать, как всё это тащится в прод
Если вы реально хотите не «поиграться», а научиться собирать рабочие агентные системы — у нас стартует курс по разработке ИИ-агентов 5го июля
P.S: не упусти свой шанс, промокод:
😁1
⚠️ Частая ошибка: почему std::vector<bool> — это не то, что вы думаете
Это один из самых неожиданных моментов в STL. std::vector<bool> ведет себя не как обычный vector!
Причина: std::vector<bool> оптимизирован для экономии памяти (1 бит на элемент), поэтому не может дать настоящие ссылки.
🔎 Сталкивались ли вы с этой особенностью? Как решали проблему?
Библиотека C/C++ разработчика #буст
Это один из самых неожиданных моментов в STL. std::vector<bool> ведет себя не как обычный vector!
// Обычный vector - все работает как ожидается
std::vector<int> vec_int = {1, 2, 3};
int& ref = vec_int[0]; // Настоящая ссылка
int* ptr = &vec_int[0]; // Настоящий указатель
// vector<bool> - сюрприз!
std::vector<bool> vec_bool = {true, false, true};
// auto& ref = vec_bool[0]; // Ошибка компиляции!
// bool* ptr = &vec_bool[0]; // Тоже ошибка!
// Это работает, но ref - не настоящая ссылка
auto ref = vec_bool[0]; // Тип: std::vector<bool>::reference
ref = false; // Работает, но через прокси-объект
// Если нужен настоящий vector<bool>
std::deque<bool> real_bool_container = {true, false, true};
bool& real_ref = real_bool_container[0]; // Настоящая ссылка!
Причина: std::vector<bool> оптимизирован для экономии памяти (1 бит на элемент), поэтому не может дать настоящие ссылки.
🔎 Сталкивались ли вы с этой особенностью? Как решали проблему?
Библиотека C/C++ разработчика #буст
❤8🌚5
👾 C++26 — что нового и почему стандартизация это так сложно
💡 Антон Полухин и Павел Новиков разбирают, что нового в C++26 и почему процесс стандартизации настолько сложен.
❗ Ключевые моменты обсуждения:
• контракты и рефлексия наконец добавлены в C++26
• стандартизация учитывает интересы всех участников экосистемы
• модули в C++20 — пример удачного компромисса после 5 лет обсуждений
Основной фокус — понимание того, что комитет по стандартизации должен учитывать интересы разработчиков мобильных устройств, бэкенд-приложений, экзотических платформ и крупных компаний одновременно.
Особенно интересно для тех, кто хочет понять механизмы принятия решений в мире C++ и почему некоторые «очевидные» фичи добавляются годами.
Вы узнаете, что медленность стандартизации — это не бюрократия, а необходимость найти решение, которое работает для всех участников экосистемы, от разработчиков встроенных систем до авторов высокоуровневых библиотек.
👉 Видео
Библиотека C/C++ разработчика #буст
💡 Антон Полухин и Павел Новиков разбирают, что нового в C++26 и почему процесс стандартизации настолько сложен.
❗ Ключевые моменты обсуждения:
• контракты и рефлексия наконец добавлены в C++26
• стандартизация учитывает интересы всех участников экосистемы
• модули в C++20 — пример удачного компромисса после 5 лет обсуждений
Основной фокус — понимание того, что комитет по стандартизации должен учитывать интересы разработчиков мобильных устройств, бэкенд-приложений, экзотических платформ и крупных компаний одновременно.
Особенно интересно для тех, кто хочет понять механизмы принятия решений в мире C++ и почему некоторые «очевидные» фичи добавляются годами.
Вы узнаете, что медленность стандартизации — это не бюрократия, а необходимость найти решение, которое работает для всех участников экосистемы, от разработчиков встроенных систем до авторов высокоуровневых библиотек.
👉 Видео
Библиотека C/C++ разработчика #буст
❤3👍2
🧠 Как алгоритмическое мышление повышает производительность приложений
За последние годы я не раз сталкивался с проектами, где смена всего одного неудачного алгоритма в корне меняла картину. Внезапно запросы начинали выполняться за миллисекунды, а пользователи переставали жаловаться на «тормоза». Обычно такие решения находят программисты, которые участвовали в соревнованиях по спортивному программированию. И я хочу рассказать, почему их мышление помогает в реальной работе.
👉 Продолжение в статье
Библиотека C/C++ разработчика
За последние годы я не раз сталкивался с проектами, где смена всего одного неудачного алгоритма в корне меняла картину. Внезапно запросы начинали выполняться за миллисекунды, а пользователи переставали жаловаться на «тормоза». Обычно такие решения находят программисты, которые участвовали в соревнованиях по спортивному программированию. И я хочу рассказать, почему их мышление помогает в реальной работе.
👉 Продолжение в статье
Библиотека C/C++ разработчика
🔥3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29❤1
🔥 Сегодня стартует курс по AI-агентам!
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
Онбординг уже сегодня, но ещё можно вписаться — ПОСЛЕДНИЙ ШАНС это сделать.
Мы больше года собирали мультиагентные системы: экспериментировали, переделывали и в итоге — оформили всё в 5 плотных вебинаров.
😤 «А можно ли вообще научиться чему-то за 5 вебинаров?!»
Если вы хотите просто послушать — нет
Если хотите разбираться и делать — да
➡️ На курсе:
— мы не читаем слайдики, а работаем в коде в реальном времени
— можно задавать вопросы прямо на вебинаре
— после каждого вебинара есть домашка и поддержка в чате
И главное — вы получаете системное понимание, а не набор хаотичных туториалов.
⚡️Если вы думаете, что успеете потом — не успеете.
Старт сегодня:
— а те, кто вписался сейчас, будут вас опережать — в проектах, на грейде и в зарплате
Знакомьтесь, эксперт нашего курса:
Никита Зелинский — Chief Data Scientist МТС, Head of ML Platforms, руководитель центра компетенций по Data Science.
❗Стартуем сегодня — забронируй свое место
❤1🥱1
👾 Как эффективнее изучать C++ в 2025?
Книжники (я такой): «Effective C++, More Effective C++, Meyers — это классика! Книга дает систематизированные знания.»
Видео-фанаты: «YouTube, Coursera, Udemy — современно, наглядно, можно на 2x скорости!»
Практики: «Лучший способ изучить C++ — читать исходники больших проектов и писать код!»
Реальный опыт: Прочитал 15 книг по C++, но реальное понимание пришло только после года работы с legacy кодом на 500k строк 😅
Провокационный факт: Встречал разработчиков, которые знают наизусть «Effective C++», но не могут написать простой RAII wrapper.
😼 Как изучаешь новое?
❤️ Книги (классическая база)
🔥 Видео (современный подход)
👏 Практика (сразу код)
🌚 Смешанный подход
Библиотека C/C++ разработчика
Книжники (я такой): «Effective C++, More Effective C++, Meyers — это классика! Книга дает систематизированные знания.»
Видео-фанаты: «YouTube, Coursera, Udemy — современно, наглядно, можно на 2x скорости!»
Практики: «Лучший способ изучить C++ — читать исходники больших проектов и писать код!»
Реальный опыт: Прочитал 15 книг по C++, но реальное понимание пришло только после года работы с legacy кодом на 500k строк 😅
Провокационный факт: Встречал разработчиков, которые знают наизусть «Effective C++», но не могут написать простой RAII wrapper.
😼 Как изучаешь новое?
❤️ Книги (классическая база)
🔥 Видео (современный подход)
👏 Практика (сразу код)
🌚 Смешанный подход
Библиотека C/C++ разработчика
🌚31❤12🔥5👏3🤔1
📰 Свеженькое из мира C++
Недельный дайджест новостей о разных аспектах программирования и интересных проектах в мире C++.
🥳 Интересное:
• C++26 получил Reflection — обзор новой фитчи
• Почему std::vector из bool'ов — это не то, что вы думаете — обзор std::vector из bool'ов
• C++26 — что нового и почему стандартизация это так сложно — обзор фишек нового стандарта
• Как алгоритмическое мышление повышает производительность приложений — статья о улучшении производительности
😎 Полезное:
• Использование Boost.Program_options— пример использования библиотеки
• Расширение функциональности с помошью AI — пример использования искусственного интеллекта
• Форматирование кода для единообразного стиля — чек-лист по форматированию
🖨Интересные проекты:
• Ladybird — независимый веб-браузер
• PCSX2 — бесплатный эмулятор PlayStation 2 (PS2) с открытым исходным кодом
• Serial Studio — кроссплатформенная телеметрическая панель управления
Библиотека C/C++ разработчика #свежак
Недельный дайджест новостей о разных аспектах программирования и интересных проектах в мире C++.
🥳 Интересное:
• C++26 получил Reflection — обзор новой фитчи
• Почему std::vector из bool'ов — это не то, что вы думаете — обзор std::vector из bool'ов
• C++26 — что нового и почему стандартизация это так сложно — обзор фишек нового стандарта
• Как алгоритмическое мышление повышает производительность приложений — статья о улучшении производительности
😎 Полезное:
• Использование Boost.Program_options— пример использования библиотеки
• Расширение функциональности с помошью AI — пример использования искусственного интеллекта
• Форматирование кода для единообразного стиля — чек-лист по форматированию
🖨Интересные проекты:
• Ladybird — независимый веб-браузер
• PCSX2 — бесплатный эмулятор PlayStation 2 (PS2) с открытым исходным кодом
• Serial Studio — кроссплатформенная телеметрическая панель управления
Библиотека C/C++ разработчика #свежак
❤2🔥1
Forwarded from Библиотека задач по C++ | тесты, код, задания
Forwarded from Библиотека задач по C++ | тесты, код, задания
Что вернет функция main()?
Anonymous Quiz
31%
1
7%
Ошибка компиляции
18%
Блокировка программы
36%
0
8%
Неопределенное поведение
🏖 Подборка вакансий для C++-разработчиков за неделю
C/C++ Developer — от 350 000 и до 500 000 ₽ Гибрид (Москва)
Разработчик на C++ — от 250 000 и до 350 000 ₽ Офис (Москва)
С/С++ Linux разработчик — до 8000 $ Удалёнка
Разработчик C++ — от 190 000 и до 250 000 ₽ Офис (Москва)
Программист микроконтроллеров C++ STM — от 200 000 ₽ Гибрид (Москва)
C и C++ Developer — от 240 000 до 270 000 ₽ Гибрид (Москва)
C++/Qt Developer (Рефакторинг) — от 260 000 ₽ Гибрид (Москва, Санкт-Петербург)
Библиотека C/C++ разработчика
C/C++ Developer — от 350 000 и до 500 000 ₽ Гибрид (Москва)
Разработчик на C++ — от 250 000 и до 350 000 ₽ Офис (Москва)
С/С++ Linux разработчик — до 8000 $ Удалёнка
Разработчик C++ — от 190 000 и до 250 000 ₽ Офис (Москва)
Программист микроконтроллеров C++ STM — от 200 000 ₽ Гибрид (Москва)
C и C++ Developer — от 240 000 до 270 000 ₽ Гибрид (Москва)
C++/Qt Developer (Рефакторинг) — от 260 000 ₽ Гибрид (Москва, Санкт-Петербург)
Библиотека C/C++ разработчика
❤1👍1
Поддержка актуальной документации для C++ проектов требует постоянного обновления отдельных файлов. Разработчики забывают обновлять документацию после изменения кода, что приводит к устаревшей и неточной информации.
Doxygen автоматически генерирует документацию из специальных комментариев в коде. Инструмент создает HTML, PDF и другие форматы документации с диаграммами классов и зависимостей.
/**
* @brief Класс для работы с геометрическими фигурами
* @author Имя разработчика
* @date 2024-01-15
*/
class Shape {
protected:
double width; ///< Ширина фигуры
double height; ///< Высота фигуры
public:
/**
* @brief Конструктор с параметрами
* @param w Ширина фигуры (должна быть > 0)
* @param h Высота фигуры (должна быть > 0)
* @throw std::invalid_argument при некорректных параметрах
*/
Shape(double w, double h) : width(w), height(h) {
if (w <= 0 || h <= 0) {
throw std::invalid_argument("Размеры должны быть положительными");
}
}
/**
* @brief Вычисляет площадь фигуры
* @return Площадь в квадратных единицах
* @note Виртуальный метод, должен быть переопределен
*/
virtual double calculateArea() const = 0;
/// Деструктор по умолчанию
virtual ~Shape() = default;
};
# Генерация документации
doxygen -g # Создание конфигурационного файла
doxygen Doxyfile # Генерация документации
— Автоматическая генерация документации из кода
— Поддержка множества выходных форматов
— Создание диаграмм классов и зависимостей
— Синхронизация документации с кодом
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3🥰1
🌀 Тезисы о std::set и std::multiset в C++
💡 Максим Бабенко разбирает ключевые различия между
❗️ Ключевые моменты статьи:
•
• операции
• методы поиска и работы с диапазонами имеют особенности
Основной фокус — практические различия в поведении методов
Особенно полезно для разработчиков, которые активно используют STL и хотят избежать неожиданного поведения при работе с ассоциативными контейнерами.
Помните: в
👉 Статья
Библиотека C/C++ разработчика
💡 Максим Бабенко разбирает ключевые различия между
std::set
и std::multiset
и показывает практические примеры их использования.❗️ Ключевые моменты статьи:
•
std::set
хранит только уникальные элементы, std::multiset
допускает дубликаты• операции
erase()
ведут себя по-разному в двух контейнерах• методы поиска и работы с диапазонами имеют особенности
Основной фокус — практические различия в поведении методов
insert()
, erase()
, find()
и equal_range()
для каждого типа контейнера.Особенно полезно для разработчиков, которые активно используют STL и хотят избежать неожиданного поведения при работе с ассоциативными контейнерами.
Помните: в
std::multiset
метод erase(value)
удаляет ВСЕ элементы с данным значением, а не только один. Для удаления единственного элемента используйте erase(iterator)
.👉 Статья
Библиотека C/C++ разработчика