довольно забавный вопрос у меня есть.еще одно дерево STL вопрос
Я сейчас работаю над парсером HTML, и я использовал вектор для всех моих целей ввода, которые казались довольно хорошими и быстрыми для создания дерева.
В другом приложении мне нужно отредактировать структуру HTML, и теперь вставка или переупорядочение элементов будет чрезвычайно болезненной с использованием вектора, поэтому я решил переключиться на более древовидную структуру.
Я прочитал несколько статей о деревьях и их реализации, и я думал о std :: карте для этой цели.
Что-то вроде этого:
std::map< element, *child_map >
Так что, когда я думал о вставке тега где-то между ними и с ними все заказанные каким-то ключом (например, уникальный целочисленный идентификатор) Я до сих пор есть проблемы, чтобы обновить все ключи в ветке после вставки.
, например: 1: SCRIPT 2: НАЧАЛЬНИК 3: BODY
Когда я хочу, чтобы вставить новый элемент «SCRIPT» после того, как ГОЛОВЕ мне нужно будет увеличивать тело ключа 4 и иметь л, как это : 1: SCRIPT 2: НАЧАЛЬНИК 3: SCRIPT 4: BODY
Кажется немного громоздким для меня. Я что-то не хватает?
В качестве альтернативы я думал об осуществлении вместо list<pair<>>
. Таким образом, сортировка не определяется ключом, и я могу добавлять элементы в любом месте без каких-либо дополнительных обновлений.
Уточните, пожалуйста, что именно вы хотите сохранить в ключе карты? Заказ тега? – Dewfy