У VecDeque появилось копирование части очереди в саму себя — без промежуточного среза

01.11.2025

У VecDeque появились методы, копирующие часть самой очереди в её конец или в её начало. Промежуточный срез при этом не создаётся.

Зачем нужен такой метод

Очередь на обоих концах хранится в кольцевом буфере, и её начало может физически лежать в конце массива. Копирование элементов из начала в конец обычным способом пересекает границу массива — и либо ломается, либо требует временного массива.

Раньше это выглядело как «вырезать кусок, преобразовать в вектор, положить обратно». Копирование данных происходило дважды, а выделение памяти — каждый раз.

Практические случаи

Кольцевые буферы в сетевом и консольном вводе. Приём данных порциями с последующим переносом в начало — типовая операция, которая на таких структурах обычно и пишется вручную.

Оригинал

implement VecDeque extend_from_within and prepend_from_within

Упоминаний: 1 · Просмотров: 2