/////////////////////////////////////////// // MT2Q5.cpp - sum of container values #include #include #include #include template typename C::value_type sumInContainer(C& c) { C::iterator iter = c.begin(); C::value_type sum = 0; while(iter != c.end()) { sum += *iter; ++iter; } return sum; } template void showContainer(C& c) { C::const_iterator iter; for(iter=c.begin(); iter!=c.end(); ++iter) { std::cout << "\n container value is: "; std::cout << (*iter); } std::cout << "\n"; } template class Cont > T sum(const Cont& c) { T sum_ = 0; Cont::iterator iter; for(iter=c.begin(); iter!=c.end(); ++iter) { sum_ += *iter; } std::cout << "\n"; } // void main() { std::set sint; sint.insert(10); sint.insert(-7); sint.insert(23); sint.insert(6); std::cout << "\n Int Container values are:"; showContainer(sint); int sumInt = sumInContainer(sint); std::cout << "\n integer sum is: " << sumInt << "\n"; std::list dlist; dlist.push_back(-99.9); dlist.push_back(3.14159); dlist.push_back(-1); dlist.push_back(0.111111); std::cout << "\n double Container values are:"; showContainer(dlist); double sumDouble = sumInContainer(dlist); std::cout << "\n double sum is: " << sumDouble << "\n"; std::vector dVec; dVec.push_back(99.9); dVec.push_back(-3.14159); dVec.push_back(1); dVec.push_back(-0.111111); std::cout << "\n double Container values are:"; showContainer(dVec); sumDouble = sumInContainer(dVec); std::cout << "\n double sum is: " << sumDouble << "\n"; std::cout << "\n\n"; }