История изменений
Исправление
vertexua,
(текущая версия)
:
напиши на нем простой двусвязный список
Эталонный пример, очень поучительный. В таких списках элементы не должны владеть друг другом и не должны выделяться с помощью аллокатора. Должны лежать рядышком в векторе, ссылаться на друг друга по индексам и выделяться из free list в виде кругового вектора. Работа с индексами должна быть абстрагирована и переходы между состояними должны соответствовать документированным инвариантам.
Именно к такому подтолкнет тебя Rust. И неплохая реализация в С++ будет делать что-то похожее
Исправление
vertexua,
:
напиши на нем простой двусвязный список
Эталонный пример, очень поучительный. В таких списках элементы не должны владеть друг другом и не должны выделяться с помощью аллокатора. Должны лежать рядышком в векторе, ссылаться на друг друга по индексам и выделяться из free list в виде кругового вектора. Работа с индексами должна быть абстрагирована и переходы между состояними должны соответствовать документированным инвариантам.
Исправление
vertexua,
:
напиши на нем простой двусвязный список
Эталонный пример, очень поучительный. В таких списках элементы не должны владеть друг другом и не должны выделяться с помощью аллокатора. Должны лежать рядышком в векторе, ссылаться на друг друга по индексам и выделяться из free list в виде кругового вектора
Исходная версия
vertexua,
:
напиши на нем простой двусвязный список
Эталонный пример, очень поучительный. В таких списках элементы не должны владеть друг другом и не должны выделяться с помощью аллокатора. Должны лежать рядышком в векторе, ссылаться на друг друга по индексам и выделяться из free list