Набор специализирован для shared_ptr

Keymap для обновления NERDTree

Вместо переключения в окно NERDTree, нажатия R kbd> и переключения назад, я использую пользовательскую карту, которая делает это для меня:

nmap r :NERDTreeFocusR

После установки нажатие Leader kbd> + r kbd> обновит NERDTree.


Примечание: Поскольку я также использую CtrlP, моя фактическая карта клавиш имеет последний шаг, чтобы обновить CtrlP после обновления NERDTree sup>

5
задан 5 June 2009 в 16:12
поделиться

2 ответа

, который знает о внутреннем устройстве shared_ptr,

Это должно ответить на ваш вопрос прямо здесь. Чтобы знать о внутреннем устройстве, такая коллекция почти наверняка должна быть частью библиотек интеллектуальных указателей boost. К сожалению, такого нет.

Это действительно недостаток интеллектуальных указателей. Я бы рекомендовал использовать структуры данных, которые ограничивают количество внутренних копий. Перераспределение Vector будет болезненным. Возможно, будет полезна двухсторонняя очередь, которая имеет распределение на основе фрагментов. Также имейте в виду, что векторные реализации имеют тенденцию получать новую память в виде экспоненциально увеличивающихся фрагментов. Таким образом, они не перераспределяют, скажем, каждые 10 элементов. Вместо этого вы можете начать со 128 элементами, затем вектор резервирует себе 256, затем перемещается до 512, 1024 и т. Д. Каждый раз удваивая то, что необходимо.

3
ответ дан 13 December 2019 в 05:41
поделиться

Теоретически после принятия C ++ 0x контейнеры будут модифицированы для использования семантики перемещения там, где это необходимо. В этот момент shared_ptr также может быть изменен, чтобы иметь конструктор перемещения, чтобы минимизировать ненужную настройку счетчика ссылок.

9
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: