Шаблонная функция: template <

Автор admin Среда, 3 июня 2009 11:32

Шаблонная функция: template void wiped* x) { delete x: } int mainO { CountedVector B(“two”): for_each(B.begi n(),В.end().DeleteT()); CountedVector C(“three”): for_each(C.beginO. C.endO, wipe): } ///:- Поскольку вызов delete для всех указателей в контейнере требуется достаточно часто, почему бы не создать для этой цели алгоритм? За основу можно взять transform (). Преимущество transform() перед for_each() заключается в том, что transform() присваивает результат вызова объекта функции элементу приемного интервала, который может совпадать с исходным интервалом. В последнем случае выполняется преобразование исходного интервала, так как каждый элемент заменяется новым значением. В данном случае этот подход особенно уместен, потому что после вызова delete для указателя будет разумно присвоить ему безопасное нулевое значение. Алгоритм transform^) позволяет легко решить эту задачу: //: С06:Transform.срр // Использование алгоритма STL transformO //{L} Counted #incl ude #incl ude #include #include “Counted.h” using namespace std: Копирующий конструктор


Комментарии закрыты.