Size: a a a

Rust — русскоговорящее сообществo

2020 September 29

V

Vetro in Rust — русскоговорящее сообществo
Nick Linker
Их сложно сравнивать, все молодцы.
+, я вот с dtolnay в шоке частенько
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Daniel Podolsky
Ну мне-то интересно tokio почитать больше всего :)
Там как в std: есть красивые легкочитаемые комбинаторы  и утилиты, а есть куча ансейфа (особенно в tokio::runtime и часть tokio::sync)
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
А кто-нибудь знает структуры данных вроде очередей с O(1) удалением во время итерации и O(1) вставкой в конец?

Мне видимо нужно что-то вроде linked list, но поскольку я часто  меняю список, то думаю аллокации угробят весь смысл.

Может есть что-то вроде vec-based linked list? (пока нагуглить не смог 😐)
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
хэшмапа :)
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
А, или даже обычный массив по-моему должен сойти
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
хэшмапа :)
Порядок не соблюдается
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
А, или даже обычный массив по-моему должен сойти
А как удалять элементы?...
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
Кольцевая очередь из Option<T> мб?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
вафель 🧇
А как удалять элементы?...
Vec<Option<T>>, для удаления заменяем на None.
Если доля живых элементов упала ниже 0.5, делаем сжатие
источник

AV

Andrey Vlasov in Rust — русскоговорящее сообществo
)
источник

KR

Kai Ren in Rust — русскоговорящее сообществo
шакальное?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Индексироваться надо?
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Ну оно как бы так, но мне кажется странным фильтровать None'ы. Не лучше ли индекс хранить?
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
вафель 🧇
А кто-нибудь знает структуры данных вроде очередей с O(1) удалением во время итерации и O(1) вставкой в конец?

Мне видимо нужно что-то вроде linked list, но поскольку я часто  меняю список, то думаю аллокации угробят весь смысл.

Может есть что-то вроде vec-based linked list? (пока нагуглить не смог 😐)
Linked list + арена?
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Индексироваться надо?
Вроде нет. Мне достаточно курсора — пройтись от начала до конца, забрать понравившиеся элементы. Вставить в конец новые.
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
С удалением, правда, тоже проблемы.
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну тогда дырявый вектор должен норм работать
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Это должно быть эффективней по памяти, чем в каждой вершине хранить по индексу
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Mikail Bagishov
Ну тогда дырявый вектор должен норм работать
Просто дырявый вектор — вставка O(n) на поиск None
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
вафель 🧇
Просто дырявый вектор — вставка O(n) на поиск None
Амортизированно должно O(1) получиться, потому что сжатие будет редко происходить
источник