Jump to content

Буфер разрыва

Буфер пробелов в информатике — это динамический массив , который позволяет эффективно выполнять операции вставки и удаления, сгруппированные в одном и том же месте. Промежуточные буферы особенно распространены в текстовых редакторах , где большинство изменений текста происходит в текущем местоположении курсора или рядом с ним . Текст хранится в большом буфере в виде двух смежных сегментов с промежутком между ними для вставки нового текста. Перемещение курсора предполагает копирование текста с одной стороны разрыва на другую (иногда копирование откладывается до следующей операции по изменению текста). Вставка добавляет новый текст в конец первого сегмента; удаление удаляет его.

Текст в буфере пробелов представлен в виде двух строк , которые занимают очень мало дополнительного места и которые можно искать и отображать очень быстро по сравнению с более сложными структурами данных , такими как связанные списки . Однако операции в разных местах текста и операции, заполняющие пробел (требующие создания нового пробела), могут потребовать копирования большей части текста, что особенно неэффективно для больших файлов. Использование буферов пробелов основано на предположении, что такое повторное копирование происходит достаточно редко, поэтому его стоимость может быть амортизирована за счет более распространенных дешевых операций. Это делает буфер пробелов более простой альтернативой веревке для использования в текстовых редакторах. [1] например, Емакс . [2]

Ниже приведены некоторые примеры операций с пробелами в буфере. Пробел представляет собой пустое пространство между квадратными скобками. Такое представление немного вводит в заблуждение: в типичной реализации конечные точки пробела отслеживаются с помощью указателей или индексов массива, а содержимое пробела игнорируется; это позволяет, например, выполнять удаление путем изменения указателя без изменения текста в буфере.

Исходное состояние:

This is the way [                     ]out.

Пользователь вставляет новый текст:

This is the way the world started [   ]out.

Пользователь перемещает курсор перед словом «начало»; система перемещает «старт» из первого буфера во второй буфер.

This is the way the world [   ]started out.

Пользователь добавляет текст, заполняя пробел; система создает новый разрыв:

This is the way the world as we know it [                   ]started out.

См. также

[ редактировать ]
  1. ^ Марк К. Чу-Кэрролл. « Буферы с пробелами, или не связывайтесь веревками? » ScienceBlogs , 18 февраля 2009 г. По состоянию на 30 января 2013 г.
  2. ^ Информация о буфере разрыва emacs . По состоянию на 30 января 2013 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 47d67d9f3617b6fc60478a556369475f__1715079240
URL1:https://arc.ask3.ru/arc/aa/47/5f/47d67d9f3617b6fc60478a556369475f.html
Заголовок, (Title) документа по адресу, URL1:
Gap buffer - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)