//: C09:sumValue.h // From Thinking in C++, 2nd Edition // Available at http://www.BruceEckel.com // (c) Bruce Eckel 2000 // Copyright notice in Copyright.txt // Sums the value of Trash in any type of STL // container of any specific type of Trash: #ifndef SUMVALUE_H #define SUMVALUE_H #include #include template void sumValue(const Cont& bin) { double val = 0.0f; typename Cont::iterator tally = bin.begin(); while(tally != bin.end()) { val +=(*tally)->weight() * (*tally)->value(); out << "weight of " << typeid(*(*tally)).name() << " = " << (*tally)->weight() << endl; tally++; } out << "Total value = " << val << endl; } #endif // SUMVALUE_H ///:~