Манипуляции с символами - смещение индекса всех остальных символов в буфере, содержащем тысячи символов - PullRequest
0 голосов
/ 08 мая 2020

Проблема, которую необходимо решить:

У меня огромный массив символов, и я получил их индекс от 0 до 80000, допустим. Когда в реальном файле кто-то добавляет символ в 10-й позиции, предположим, тогда мне нужно обновить индекс всех символов за пределами 10 на 1

. Пример. Текст: «Это мой первый текст, а позже я собираюсь вставить больше в любом месте »; Предположим, что индекс начинается с 0 до 65 (где T - это индекс 0, а последний символ E - это индекс 65)

Теперь я добавляю символ «$» после «This is», так что теперь он стал Text is now : «Это $ мой первый текст, позже я собираюсь вставить куда угодно»; Таким образом, индекс $ теперь равен 9. Таким образом, весь индекс символа строки «мой первый текст, а позже я собираюсь вставить еще где-нибудь» должен быть увеличен на 1

Я легко могу сделать это с помощью a for l oop, но для 80000 символов это очень дорого для операции добавления / удаления, ища какое-то элегантное решение.

Например: алгоритм таблицы элементов или алгоритм веревки.

или реализация шаблона посетителя дизайн, в котором каждый символ является узлом с индексом в качестве атрибута и получает уведомление, когда какой-либо персонаж добавляется / удаляется, чтобы они могли автоматически настраивать свой индекс с помощью уведомления обратного вызова с информацией о том, на сколько изменился символ?

это как 1 переключатель и несколько переключателей света включаются по разному значению мощности (от тусклого до более яркого)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...