home.social

#множество — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #множество, aggregated by home.social.

  1. Не бойтесь std::set, его легко приручить

    Не бойтесь std::set, его легко приручить. Эта небольшая статья для тех, кто имеет некоторое представление об ассоциативных контейнерах стандартной библиотеки C++ (std::map, std::set и т.д.), но пока не использовал «множество» (std::set) в повседневной жизни. Этот контейнер позволяет наиболее изящно организовать коллекцию «самоидентифицируемых» объектов, не трубующих внешнего «ключа» для поиска. Но работа с std::set имеет свои особенности, о них и пойдет речь. Каких-то принциапиальных открытий статья не содержит, я просто решил собрать в одном месте некий минимально необходимый набор приемов для работы со множествами и, таким образом, несколько сэкономить время читателя, впервые решившего использовать «множества» в реальных проектах. Сразу оговорюсь, я сознательно снизил планку стандарта C++ до минимально необходимой, чтобы код, приведенный здесь, мог использоваться максимально широко (так что просьба не удивляться громоздким «устаревшим» конструкциям вроде enable_if). ... Отлично, std::set — это то, что нужно! Зачем мне std::map, если ключ уже находится внутри моего объекта! Такова была моя первая восторженная реакция после знакомства с «множеством» (std::set) стандартной библиотеки шаблонов C++. Это было давно... очень давно.

    habr.com/ru/articles/986322/

    #множество #гетерогенные_запросы #stl_контейнеры #set #map #с++ #с++14 #с++17

  2. Не бойтесь std::set, его легко приручить

    Не бойтесь std::set, его легко приручить. Эта небольшая статья для тех, кто имеет некоторое представление об ассоциативных контейнерах стандартной библиотеки C++ (std::map, std::set и т.д.), но пока не использовал «множество» (std::set) в повседневной жизни. Этот контейнер позволяет наиболее изящно организовать коллекцию «самоидентифицируемых» объектов, не трубующих внешнего «ключа» для поиска. Но работа с std::set имеет свои особенности, о них и пойдет речь. Каких-то принциапиальных открытий статья не содержит, я просто решил собрать в одном месте некий минимально необходимый набор приемов для работы со множествами и, таким образом, несколько сэкономить время читателя, впервые решившего использовать «множества» в реальных проектах. Сразу оговорюсь, я сознательно снизил планку стандарта C++ до минимально необходимой, чтобы код, приведенный здесь, мог использоваться максимально широко (так что просьба не удивляться громоздким «устаревшим» конструкциям вроде enable_if). ... Отлично, std::set — это то, что нужно! Зачем мне std::map, если ключ уже находится внутри моего объекта! Такова была моя первая восторженная реакция после знакомства с «множеством» (std::set) стандартной библиотеки шаблонов C++. Это было давно... очень давно.

    habr.com/ru/articles/986322/

    #множество #гетерогенные_запросы #stl_контейнеры #set #map #с++ #с++14 #с++17

  3. Не бойтесь std::set, его легко приручить

    Не бойтесь std::set, его легко приручить. Эта небольшая статья для тех, кто имеет некоторое представление об ассоциативных контейнерах стандартной библиотеки C++ (std::map, std::set и т.д.), но пока не использовал «множество» (std::set) в повседневной жизни. Этот контейнер позволяет наиболее изящно организовать коллекцию «самоидентифицируемых» объектов, не трубующих внешнего «ключа» для поиска. Но работа с std::set имеет свои особенности, о них и пойдет речь. Каких-то принциапиальных открытий статья не содержит, я просто решил собрать в одном месте некий минимально необходимый набор приемов для работы со множествами и, таким образом, несколько сэкономить время читателя, впервые решившего использовать «множества» в реальных проектах. Сразу оговорюсь, я сознательно снизил планку стандарта C++ до минимально необходимой, чтобы код, приведенный здесь, мог использоваться максимально широко (так что просьба не удивляться громоздким «устаревшим» конструкциям вроде enable_if). ... Отлично, std::set — это то, что нужно! Зачем мне std::map, если ключ уже находится внутри моего объекта! Такова была моя первая восторженная реакция после знакомства с «множеством» (std::set) стандартной библиотеки шаблонов C++. Это было давно... очень давно.

    habr.com/ru/articles/986322/

    #множество #гетерогенные_запросы #stl_контейнеры #set #map #с++ #с++14 #с++17

  4. Не бойтесь std::set, его легко приручить

    Не бойтесь std::set, его легко приручить. Эта небольшая статья для тех, кто имеет некоторое представление об ассоциативных контейнерах стандартной библиотеки C++ (std::map, std::set и т.д.), но пока не использовал «множество» (std::set) в повседневной жизни. Этот контейнер позволяет наиболее изящно организовать коллекцию «самоидентифицируемых» объектов, не трубующих внешнего «ключа» для поиска. Но работа с std::set имеет свои особенности, о них и пойдет речь. Каких-то принциапиальных открытий статья не содержит, я просто решил собрать в одном месте некий минимально необходимый набор приемов для работы со множествами и, таким образом, несколько сэкономить время читателя, впервые решившего использовать «множества» в реальных проектах. Сразу оговорюсь, я сознательно снизил планку стандарта C++ до минимально необходимой, чтобы код, приведенный здесь, мог использоваться максимально широко (так что просьба не удивляться громоздким «устаревшим» конструкциям вроде enable_if). ... Отлично, std::set — это то, что нужно! Зачем мне std::map, если ключ уже находится внутри моего объекта! Такова была моя первая восторженная реакция после знакомства с «множеством» (std::set) стандартной библиотеки шаблонов C++. Это было давно... очень давно.

    habr.com/ru/articles/986322/

    #множество #гетерогенные_запросы #stl_контейнеры #set #map #с++ #с++14 #с++17

  5. Black-White Array: новая структура данных с O(log N) аллокаций

    Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и используемых участков памяти . Преимущества: • Амортизированное время вставки/удаления/поиска сравнимое с реализацией BTree от Google ; • Низкое количество аллокаций памяти при операциях вставки - меньше давления на сборщик мусора, ниже фрагментация памяти; • Массивы под капотом: данные лежат рядом, что улучшает кэшируемость процессором и скорость обхода/доступа к данным; • Позволяет хранить элементы с одинаковыми ключами - не нужно использовать дополнительные структуры для группировки таких элементов; • Низкий оверхед на хранение служебной информации - экономия памяти по сравнению с другими структурами данных; • Удобен для вставки батчами; • Простая сериализация и десериализация; Подробности

    habr.com/ru/articles/984184/

    #алгоритмы #структуры_данных #computer_science #множество #orderedset #производительность #optimization #allocation #индексы #оптимизация

  6. Black-White Array: новая структура данных с O(log N) аллокаций

    Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и используемых участков памяти . Преимущества: • Амортизированное время вставки/удаления/поиска сравнимое с реализацией BTree от Google ; • Низкое количество аллокаций памяти при операциях вставки - меньше давления на сборщик мусора, ниже фрагментация памяти; • Массивы под капотом: данные лежат рядом, что улучшает кэшируемость процессором и скорость обхода/доступа к данным; • Позволяет хранить элементы с одинаковыми ключами - не нужно использовать дополнительные структуры для группировки таких элементов; • Низкий оверхед на хранение служебной информации - экономия памяти по сравнению с другими структурами данных; • Удобен для вставки батчами; • Простая сериализация и десериализация; Подробности

    habr.com/ru/articles/984184/

    #алгоритмы #структуры_данных #computer_science #множество #orderedset #производительность #optimization #allocation #индексы #оптимизация

  7. Black-White Array: новая структура данных с O(log N) аллокаций

    Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и используемых участков памяти . Преимущества: • Амортизированное время вставки/удаления/поиска сравнимое с реализацией BTree от Google ; • Низкое количество аллокаций памяти при операциях вставки - меньше давления на сборщик мусора, ниже фрагментация памяти; • Массивы под капотом: данные лежат рядом, что улучшает кэшируемость процессором и скорость обхода/доступа к данным; • Позволяет хранить элементы с одинаковыми ключами - не нужно использовать дополнительные структуры для группировки таких элементов; • Низкий оверхед на хранение служебной информации - экономия памяти по сравнению с другими структурами данных; • Удобен для вставки батчами; • Простая сериализация и десериализация; Подробности

    habr.com/ru/articles/984184/

    #алгоритмы #структуры_данных #computer_science #множество #orderedset #производительность #optimization #allocation #индексы #оптимизация

  8. Black-White Array: новая структура данных с O(log N) аллокаций

    Black-White Array (BWA) — это упорядоченная структура данных с амортизированным временем операций вставки/поиска/удаления и используемых участков памяти . Преимущества: • Амортизированное время вставки/удаления/поиска сравнимое с реализацией BTree от Google ; • Низкое количество аллокаций памяти при операциях вставки - меньше давления на сборщик мусора, ниже фрагментация памяти; • Массивы под капотом: данные лежат рядом, что улучшает кэшируемость процессором и скорость обхода/доступа к данным; • Позволяет хранить элементы с одинаковыми ключами - не нужно использовать дополнительные структуры для группировки таких элементов; • Низкий оверхед на хранение служебной информации - экономия памяти по сравнению с другими структурами данных; • Удобен для вставки батчами; • Простая сериализация и десериализация; Подробности

    habr.com/ru/articles/984184/

    #алгоритмы #структуры_данных #computer_science #множество #orderedset #производительность #optimization #allocation #индексы #оптимизация

  9. Математические бланки // Часть 4: объекты в памяти

    Первые две статьи этой серии поставили ряд важных вопросов о математике. В третьей статье на них были даны ответы. Мы нашли память и время идеального мира (доска и маркер), и построили первые объекты (примитив и коллектор). Мы также начали построение нейроматематики, в рамках которой получили строгое определение ИСТИНА, РАВЕНСТВО и ПРОТИВОПОЛОЖНОСТЬ. Определения этих объектов отсутствуют в Математической энциклопедии, так что нейроматематика уже стала в чём-то более богата, чем математика традиционная. В третьей статье много говорилось о памяти, но это далеко не всё, что можно о ней сказать. В действительности, функция хранения наследуется от памяти всеми сложными объектами, и в четвёртой статье мы разберём, как это происходит. В процессе построения этих объектов мы также дадим определение ещё одному понятию, которое отсутствует в Математической энциклопедии, но которое крайне важно для математики. Это понятие - СЛЕДОВАНИЕ. Мы сталкиваемся с ним на каждом шагу; даже сейчас, в процессе написания/прочтения этих слов, которые следуют одно за другим. Следование нам понадобится также и для того, чтобы строго определить МНОЖЕСТВО. Это понятие, конечно, есть в Математической энциклопедии, но описывается оно там лишь неформально, на интуитивном уровне. Множество - одно из самых базовых понятий, а в рамках нейроматематики оно выражает самую суть памяти. Хотите узнать, как? Не переключайтесь!

    habr.com/ru/articles/864862/

    #фораон #нейроматематика #память #следование #множество