#include // for right, setw #include #include #include using namespace std; template class BarGraph { public: void operator+=(const T &datum) { data[datum]++; } void dump() const { for (auto it=data.begin(); it!=data.end(); ++it) cout << right << setw(10) << it->first << ' ' << string(it->second, '*') << '\n'; cout << '\n'; } private: map data; }; int main() { BarGraph alpha; alpha += 12; alpha += 6; alpha += 4; alpha += 6; alpha.dump(); BarGraph beta; beta += 3.14; beta += 2.71828; beta += 6.023e23; beta += 2.71828; beta.dump(); BarGraph gamma; gamma += false; gamma += true; gamma += false; gamma += true; gamma += true; gamma.dump(); BarGraph delta; delta += 'G'; delta += 'e'; delta += 'o'; delta += 'f'; delta += 'f'; delta.dump(); return 0; }