#stl_контейнеры — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #stl_контейнеры, aggregated by home.social.
-
Не бойтесь std::set, его легко приручить
Не бойтесь std::set, его легко приручить. Эта небольшая статья для тех, кто имеет некоторое представление об ассоциативных контейнерах стандартной библиотеки C++ (std::map, std::set и т.д.), но пока не использовал «множество» (std::set) в повседневной жизни. Этот контейнер позволяет наиболее изящно организовать коллекцию «самоидентифицируемых» объектов, не трубующих внешнего «ключа» для поиска. Но работа с std::set имеет свои особенности, о них и пойдет речь. Каких-то принциапиальных открытий статья не содержит, я просто решил собрать в одном месте некий минимально необходимый набор приемов для работы со множествами и, таким образом, несколько сэкономить время читателя, впервые решившего использовать «множества» в реальных проектах. Сразу оговорюсь, я сознательно снизил планку стандарта C++ до минимально необходимой, чтобы код, приведенный здесь, мог использоваться максимально широко (так что просьба не удивляться громоздким «устаревшим» конструкциям вроде enable_if). ... Отлично, std::set — это то, что нужно! Зачем мне std::map, если ключ уже находится внутри моего объекта! Такова была моя первая восторженная реакция после знакомства с «множеством» (std::set) стандартной библиотеки шаблонов C++. Это было давно... очень давно.
https://habr.com/ru/articles/986322/
#множество #гетерогенные_запросы #stl_контейнеры #set #map #с++ #с++14 #с++17
-
Структуры данных в C++
Всем привет! Давно хотел собрать пост по структурам данным, которые есть в C++ и кратенько описать преимущество каждой из них. В первой итерации статьи начнем с тех, что есть в стандартной библиотеке STL. Начнем с того, что структура данных — это формальный способ организации и хранения информации в памяти компьютера, который определяет, как данные располагаются, как к ним обращаются и какие операции над ними выполняются наиболее эффективно. Выбор структуры данных напрямую определяет производительность программы. Если операция выполняется миллионы раз в секунду — даже незначительное отличие во времени вставки или доступа может стать решающим. Стандартная библиотека C++ (STL) предоставляет широкий набор структур данных, каждая из них решает определённый класс задач: от линейного хранения элементов до ассоциативных структур с поиском по ключу. В этой статье мы кратко рассмотрим основные контейнеры, их внутреннюю организацию и типичные сценарии применения.