#include #include #include #include using namespace std; template void printvector(vector& v) { for_each(v.begin(),v.end(), [](T element) { cout << element << " "; }); cout << endl; } // Generic overloaded insertion operator for a vector template ostream& operator<<(ostream& out, const vector& v) { for_each(v.begin(),v.end(), [&out](T element) { out << element << " "; }); out << endl; return out; } class Money { unsigned dollars, cents; public: Money(unsigned d, unsigned c) : dollars(d + c/100), cents(c%100) {} friend ostream& operator<<(ostream& out, const Money& m) { out << setfill('0'); out << '$' << m.dollars << '.' << setw(2) << m.cents; out << setfill(' '); return out; } }; int main() { vector vec1 = {1,4,5,8,9,2,6,4,32,7,19}; vector vec2 = {1.4,5.8,9.2,6.4,32.7,19}; vector vec3 = {{12,34},{56,78},{910,1112}}; printvector(vec1); printvector(vec2); printvector(vec3); cout << endl; cout << vec1; cout << vec2; cout << vec3; }