home *** CD-ROM | disk | FTP | other *** search
- //: C21:ForEach.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // Use of STL for_each() algorithm
- #include "Counted.h"
- #include <iostream>
- #include <vector>
- #include <algorithm>
- using namespace std;
-
- // Simple function:
- void destroy(Counted* fp) { delete fp; }
-
- // Function object:
- template<class T>
- class DeleteT {
- public:
- void operator()(T* x) { delete x; }
- };
-
- // Template function:
- template <class T>
- void wipe(T* x) { delete x; }
-
- int main() {
- CountedVector A("one");
- for_each(A.begin(), A.end(), destroy);
- CountedVector B("two");
- for_each(B.begin(),B.end(),DeleteT<Counted>());
- CountedVector C("three");
- for_each(C.begin(), C.end(), wipe<Counted>);
- } ///:~
-