Похожие чаты

Why is there dense and sparse?

2 ответов

29 просмотров

It is a part of implementation of sparse set (the main part is in src/lib.rs file). Basically there are 3 arrays: - dense array of packed data - dense array of back-references to sparse keys (needed to maintain removals) - sparse array of indexes to dense array The idea of a sparse set, that it provides O(1) access by keys without hashing, and at the same time allows to get benefits of cache-friendly packing of values for iteration over them. The twist of this specific implementation, is that it generates the key when the element is inserted and provides it back (so it basically acts as a limited implementstion of Vec, but to index specific element, one supposed to store a struct instead of a raw index). The reuse of keys is done using a "free list" (basically making a linked list of removed sparse elements using the memory of those elements). To make sure old keys can't be used with new elements when sparse elements are reused, they store an 'epoch', which is just an number of times they were reused.

Thomas- Автор вопроса

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
any reference of this implementation?
BitBuddha
29
Ⓐrtto, [4/23/24 7:02 PM] Please explain more fully how it is not working exactly, and what are the steps you are taking, and what error messages come or what happens. Ⓐrtto, ...
Ezza Kezza
2
sounds like people have lost their kaspa on tradeogre... does this mean tradeogre not trustworthy?
Ezza Kezza
15
Страшнейшая правда про списки ЦБ. С первых дней жизни P2P сферы, молодые человеки, начитавшись законодательной базы и "внутренних" документов, решили, что им противостоит сер...
Foxcool
3
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
So much speculation in the last week. So much volatility in price. This is because Hedera has a GC that isn't using the network it's governing. Why aren't people asking why a...
Summit Seeker R
8
Anyone else having this error when trying to make transactions?
Datzel
11
Question: How viable is it to use Anvil as the backend infrastructure for managing a TradFi portfolio, while integrating Flexa for instant liquidity and payment solutions? Cou...
Kevin
2
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Карта сайта