#include <iostream>
#include <map>
using namespace std;
int main ()
{
map<char,int>::iterator it;
map<char,int> first;
char c;
first['a']=10;
first['b']=30;
first['c']=50;
first['d']=70;
first['e']=80;
first['f']=100;
map<char,int> second (first);
cout << "first contains:/n";
for ( it=first.begin() ; it != first.end(); it++ )
cout << (*it).first << " => " << (*it).second << endl;
cout << "second contains:/n";
for ( it=second.begin() ; it != second.end(); it++ )
cout << (*it).first << " => " << (*it).second << endl;
first.clear();
first['a']=1101;
first['d']=2202;
cout << "first contains:/n";
for ( it=first.begin() ; it != first.end(); it++ )
cout << (*it).first << " => " << (*it).second << endl;
cout << "second contains:/n";
for ( it=second.begin() ; it != second.end(); it++ )
cout << (*it).first << " => " << (*it).second << endl;
/
for (c='a'; c<'g'; c++)
{
cout << c;
if (first.count(c)>0)
cout << " is an element of first./n";
else
cout << " is not an element of first./n";
}
it=second.find('b');
second.erase (it); // erasing by iterator
second.erase ('d'); // erasing by key
it=second.find ('e');
second.erase ( it, second.end() ); // erasing by range
// show content:
for ( it=second.begin() ; it != second.end(); it++ )
cout << (*it).first << " => " << (*it).second << endl;
return 0;
}