|
|
The output for the program above was produced using the default stream insertion operator which comes with Maps. Suppose we prefer a prettier output, consisting of two columns of integer/string pairs. To do this, we use an iterator. Simply replace the line
cout << count << endl;
with the following code:
Mapiter<String,int> p(count); while (p.next()) cout << p.curr()->value << '\ t' << p.curr()->key << endl;
Here is the resulting output when the new program is run with itself as input:
3 #include 1 '\ t' 1 (cin 1 (p.next()) 4 <<1 <Map.h> 1 <String.h> 1 <stream.h> 1 >> 1 Map<String,int> 1 Mapiter<String,int> 1 String 1 count; 1 count[word]++; 1 cout 1 endl; 1 main() 1 p(count); 1 p.curr()->key 1 p.curr()->value 2 while 1 word) 1 word; 1 { 1 }