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