Удалить любой контейнер с помощью шаблонов

У меня много кода, в котором я удаляю векторные контейнеры, в которых есть указатели, то есть сначала мне нужно удалить все указатели, а затем очистить контейнер. Каждый раз я перебирал и удалял указатели вручную (я знаю stl :: алгоритмы for_each). Чтобы обойти весь этот код, я создал шаблон для удаления всех векторных контейнеров, имеющих указатель. Пока все хорошо.

Теперь у меня есть еще несколько типов контейнеров, включая карты, параллельные контейнеры и т. Д., Все с той же функциональностью, что и при удалении. Имеющаяся у меня функция DeleteContainer (std :: vector & VecIn) может работать только с векторами, как упомянуто выше. Есть ли способ сделать его достаточно универсальным для работы со всеми контейнерами?

РЕДАКТИРОВАТЬ: Спасибо за все ответы, я хотел бы выбрать более одного. Всем, кто наткнется на этот вопрос, прочтите все ответы, а не только выбранный, поскольку все они предоставляют отличную информацию.

9
задан Samaursa 19 December 2010 в 07:21
поделиться