У VecDeque появилось копирование части очереди в саму себя — без промежуточного среза
01.11.2025У VecDeque появились методы, копирующие часть самой очереди в её конец или в её начало. Промежуточный срез при этом не создаётся.
Зачем нужен такой метод
Очередь на обоих концах хранится в кольцевом буфере, и её начало может физически лежать в конце массива. Копирование элементов из начала в конец обычным способом пересекает границу массива — и либо ломается, либо требует временного массива.
Раньше это выглядело как «вырезать кусок, преобразовать в вектор, положить обратно». Копирование данных происходило дважды, а выделение памяти — каждый раз.
Практические случаи
Кольцевые буферы в сетевом и консольном вводе. Приём данных порциями с последующим переносом в начало — типовая операция, которая на таких структурах обычно и пишется вручную.
Оригинал
implement VecDeque extend_from_within and prepend_from_within
Упоминаний: 1 · Просмотров: 2