Click on map.cpp to get source.
#include <map>
#include <iostream>

using namespace std;

int main(void)
{typedef map<char, int, less<char> > mymap;
 typedef mymap::value_type mypair; // typedef pair<const char, int> mypair;
 typedef pair<mymap::iterator, bool> mymap_insert_t;

 mymap M;
 cout << "map example:" << endl;
 M.insert(mypair('A', 25));
 M['B'] = 10; //M.insert(mypair('B', 10));
 mypair x('A', 26);
 mymap_insert_t p = M.insert(x);
 if (p.second == false)
    cout <<"(" << x.first << ", " << x.second << ") not inserted" << endl;
 cout << "M['A']: " << M['A'] << endl;
 cout << "M['B']: " << M['B'] << endl;
 cout << "M['C']: " << M['C'] << endl; // access inserts make_pair('C', int())
 M['D']=7;
 M['D']=8;
 cout << "M['D']: " << M['D'] << endl;

 cout << "traverse map sequentially:" << endl;
 for(mymap::iterator seq = M.begin();
     seq != M.end();
     seq++
    ) cout << "(" << seq->first << ", " << seq->second << "), ";
 cout << endl << endl;

 typedef multimap<char, int, less<char> > mymultimap;
 //typedef mymultimap::iterator mymultimap_insert_t;
 typedef mymultimap::value_type mymmpair; // typedef pair<const char, int> mymmpair;
 typedef pair<mymultimap::const_iterator
             ,mymultimap::const_iterator> mymultimap_equal_range_t;

 mymultimap MM;
 MM.insert(mymmpair('A', 25));
 MM.insert(mymmpair('B', 10));
 MM.insert(mymmpair('A', 26));
 MM.emplace('C',0); // inserts pair in place without making a copy first
                    // note: not operator[] for multimap STL container
 MM.insert(mymmpair('B', 15));
 MM.insert(mymmpair('D', 47));
 MM.insert(mymmpair('A', 27));

 mymultimap_equal_range_t r = MM.equal_range('A');
 cout << "all values of multimap at 'A': ";
 for(mymultimap::const_iterator pp = r.first;
     pp != r.second;
     pp++) cout << "(" << pp->first << ", " << pp->second << "), ";
 cout << endl;

 cout << "reversely traverse multimap sequentially:" << endl;
 for(mymultimap::reverse_iterator r_seq = MM.rbegin();
     r_seq != MM.rend();
     r_seq++
    ) cout << "(" << r_seq->first << ", " << r_seq->second << "), ";
 cout << endl;

 return 0;
}// main