#include <iostream>
#include <map>
using namespace std;
int main( )
{
multimap < char ,int > myMultimap;
map < char ,int > myMap;
char c;
for ( int i = 0 ,c = 'a' ; i < 5 ; ++ i,++ c)
{
myMap[ c] = i; ///заполняем map
}
///заполняем multimap
myMultimap.insert ( pair< char ,int > ( 'c' ,146 ) ) ;
myMultimap.insert ( pair< char ,int > ( 'a' ,23 ) ) ;
myMultimap.insert ( pair< char ,int > ( 'b' ,996 ) ) ;
myMultimap.insert ( pair< char ,int > ( 'a' ,56 ) ) ;
myMultimap.insert ( pair< char ,int > ( 'c' ,121 ) ) ;
auto itMap = myMap.begin ( ) ; ///создаем итератор на начало myМap
auto itMultimap = myMultimap.begin ( ) ; ///создаем итератор на начало myMultimap
cout << "myMap contains: \t myMultimap contains:\n " ;
///вывод на экран myMap и myMultimap
for ( itMap = myMap.begin ( ) ,itMultimap = myMultimap.begin ( ) ; itMultimap ! = myMultimap.end ( ) ; itMap++ ,itMultimap++ )
{
cout << itMap- > first << " : " << itMap- > second << "\t \t \t \t " << itMultimap- > first << " : " << itMultimap- > second << endl;
}
for ( c = 'a' ; c <= 'f' ; c++ )
{
myMap.count ( c) ? cout << "\n Number of elements '" << c << "' in myMap = " << myMap.count ( c) : cout << "\n Element '" << c << "' is not in myMap " ;
myMultimap.count ( c) ? cout << "\n Number of elements '" << c << "' in myMultimap " << myMultimap.count ( c) : cout << "\n Element '" << c << "' is not in myMultimap" ;
}
itMap = myMap.find ( 'b' ) ; ///итератор на заданный элемент в map
itMultimap = myMultimap.find ( 'a' ) ; ///итератор на заданный элемент в multimap
myMap.erase ( itMap) ; ///стираем его в map
myMultimap.erase ( itMultimap) ; ///стираем его в multimap
itMap = myMap.find ( 'd' ) ;
itMultimap = myMultimap.find ( 'd' ) ;
myMap.erase ( itMap,myMap.end ( ) ) ; ///стираем c элемента 'd' и до конца map
myMultimap.erase ( itMultimap,myMultimap.end ( ) ) ; ///стираем c элемента 'd' и до конца multimap
cout << "\n \n myMap contains: \t myMultimap contains:\n " ;
for ( itMap = myMap.begin ( ) ,itMultimap = myMultimap.begin ( ) ; itMap ! = myMap.end ( ) ; itMap++ ,itMultimap++ )
{
cout << itMap- > first << " : " << itMap- > second << "\t \t \t \t " << itMultimap- > first << " : " << itMultimap- > second << endl; ///вывод на экран
}
myMap.clear ( ) ;
myMap.empty ( ) ? cout << "\n myMap is empty\n " : cout << "myMap isn't empty\n " ;
myMultimap.empty ( ) ? cout << "\n myMultimap is empty\n " : cout << "myMultimap isn't empty\n " ;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBtYWluKCkKewogIG11bHRpbWFwIDxjaGFyLGludD4gbXlNdWx0aW1hcDsKICBtYXAgPGNoYXIsaW50PiBteU1hcDsKICBjaGFyIGM7CiAgZm9yIChpbnQgaSA9IDAsYyA9ICdhJzsgaSA8IDU7ICsraSwrK2MpCiAgewogICAgICBteU1hcFtjXSA9IGk7Ly8v0LfQsNC/0L7Qu9C90Y/QtdC8IG1hcAogIH0KIAogICAvLy/Qt9Cw0L/QvtC70L3Rj9C10LwgbXVsdGltYXAKICAgbXlNdWx0aW1hcC5pbnNlcnQgKCBwYWlyPGNoYXIsaW50PignYycsMTQ2KSApOwogICBteU11bHRpbWFwLmluc2VydCAoIHBhaXI8Y2hhcixpbnQ+KCdhJywyMykgKTsKICAgbXlNdWx0aW1hcC5pbnNlcnQgKCBwYWlyPGNoYXIsaW50PignYicsOTk2KSApOwogICBteU11bHRpbWFwLmluc2VydCAoIHBhaXI8Y2hhcixpbnQ+KCdhJyw1NikgKTsKICAgbXlNdWx0aW1hcC5pbnNlcnQgKCBwYWlyPGNoYXIsaW50PignYycsMTIxKSApOwogICBhdXRvIGl0TWFwID0gbXlNYXAuYmVnaW4oKTsvLy/RgdC+0LfQtNCw0LXQvCDQuNGC0LXRgNCw0YLQvtGAINC90LAg0L3QsNGH0LDQu9C+IG150JxhcAogICBhdXRvIGl0TXVsdGltYXAgPSBteU11bHRpbWFwLmJlZ2luKCk7Ly8v0YHQvtC30LTQsNC10Lwg0LjRgtC10YDQsNGC0L7RgCDQvdCwINC90LDRh9Cw0LvQviBteU11bHRpbWFwCiAgIGNvdXQ8PCJteU1hcCBjb250YWluczogXHQgbXlNdWx0aW1hcCBjb250YWluczpcbiI7CiAKICAgLy8v0LLRi9Cy0L7QtCDQvdCwINGN0LrRgNCw0L0gbXlNYXAg0LggbXlNdWx0aW1hcAogICBmb3IoaXRNYXAgPSBteU1hcC5iZWdpbigpLGl0TXVsdGltYXAgPSBteU11bHRpbWFwLmJlZ2luKCk7IGl0TXVsdGltYXAgIT0gbXlNdWx0aW1hcC5lbmQoKTsgaXRNYXArKyxpdE11bHRpbWFwKyspCiAgIHsKICAgICAgIGNvdXQgPDwgaXRNYXAtPmZpcnN0IDw8ICIgOiAiIDw8IGl0TWFwLT5zZWNvbmQgPDwgIlx0XHRcdFx0IiA8PCBpdE11bHRpbWFwLT5maXJzdCA8PCAiIDogIiA8PCBpdE11bHRpbWFwLT5zZWNvbmQgPDwgZW5kbDsKICAgfQogCiAgIGZvcihjID0gJ2EnOyBjIDw9ICdmJzsgYysrKQogICB7CiAgICAgIG15TWFwLmNvdW50KGMpID8gY291dCA8PCAiXG5OdW1iZXIgb2YgZWxlbWVudHMgJyIgPDwgYyA8PCAiJyBpbiBteU1hcCA9ICIgPDwgbXlNYXAuY291bnQoYykgOiBjb3V0IDw8ICJcbkVsZW1lbnQgJyIgPDwgYyA8PCAiJyBpcyBub3QgaW4gbXlNYXAgIjsKICAgICAgbXlNdWx0aW1hcC5jb3VudChjKSA/IGNvdXQgPDwgIlxuTnVtYmVyIG9mIGVsZW1lbnRzICciIDw8IGMgPDwgIicgaW4gbXlNdWx0aW1hcCAiIDw8IG15TXVsdGltYXAuY291bnQoYykgOiBjb3V0IDw8ICJcbkVsZW1lbnQgJyIgPDwgYyA8PCAiJyBpcyBub3QgaW4gbXlNdWx0aW1hcCI7CiAgIH0KIAogICBpdE1hcCA9IG15TWFwLmZpbmQoJ2InKTsvLy/QuNGC0LXRgNCw0YLQvtGAINC90LAg0LfQsNC00LDQvdC90YvQuSDRjdC70LXQvNC10L3RgiDQsiBtYXAKICAgaXRNdWx0aW1hcCA9IG15TXVsdGltYXAuZmluZCgnYScpOy8vL9C40YLQtdGA0LDRgtC+0YAg0L3QsCDQt9Cw0LTQsNC90L3Ri9C5INGN0LvQtdC80LXQvdGCINCyIG11bHRpbWFwCiAgIG15TWFwLmVyYXNlKGl0TWFwKTsvLy/RgdGC0LjRgNCw0LXQvCDQtdCz0L4g0LIgbWFwCiAgIG15TXVsdGltYXAuZXJhc2UoaXRNdWx0aW1hcCk7Ly8v0YHRgtC40YDQsNC10Lwg0LXQs9C+INCyIG11bHRpbWFwCiAgIGl0TWFwID0gbXlNYXAuZmluZCgnZCcpOwogICBpdE11bHRpbWFwID0gbXlNdWx0aW1hcC5maW5kKCdkJyk7CiAgIG15TWFwLmVyYXNlKGl0TWFwLG15TWFwLmVuZCgpKTsvLy/RgdGC0LjRgNCw0LXQvCBjINGN0LvQtdC80LXQvdGC0LAgJ2QnINC4INC00L4g0LrQvtC90YbQsCBtYXAKICAgbXlNdWx0aW1hcC5lcmFzZShpdE11bHRpbWFwLG15TXVsdGltYXAuZW5kKCkpOy8vL9GB0YLQuNGA0LDQtdC8IGMg0Y3Qu9C10LzQtdC90YLQsCAnZCcg0Lgg0LTQviDQutC+0L3RhtCwIG11bHRpbWFwCiAKICAgY291dCA8PCAiXG5cbm15TWFwIGNvbnRhaW5zOiBcdCBteU11bHRpbWFwIGNvbnRhaW5zOlxuIjsKICAgZm9yKGl0TWFwID0gbXlNYXAuYmVnaW4oKSxpdE11bHRpbWFwID0gbXlNdWx0aW1hcC5iZWdpbigpOyBpdE1hcCAhPSBteU1hcC5lbmQoKTsgaXRNYXArKyxpdE11bHRpbWFwKyspCiAgIHsKICAgICAgY291dCA8PCBpdE1hcC0+Zmlyc3QgPDwgIiA6ICIgPDwgaXRNYXAtPnNlY29uZCA8PCAiXHRcdFx0XHQiIDw8IGl0TXVsdGltYXAtPmZpcnN0IDw8ICIgOiAiIDw8IGl0TXVsdGltYXAtPnNlY29uZCA8PCBlbmRsOy8vL9Cy0YvQstC+0LQg0L3QsCDRjdC60YDQsNC9CiAgIH0KIAogICBteU1hcC5jbGVhcigpOwogICBteU1hcC5lbXB0eSgpID8gY291dCA8PCAiXG5teU1hcCBpcyBlbXB0eVxuIiA6IGNvdXQgPDwgIm15TWFwIGlzbid0IGVtcHR5XG4iOwogICBteU11bHRpbWFwLmVtcHR5KCkgPyBjb3V0IDw8ICJcbm15TXVsdGltYXAgaXMgZW1wdHlcbiIgOiBjb3V0IDw8ICJteU11bHRpbWFwIGlzbid0IGVtcHR5XG4iOwogCiAgIHJldHVybiAwOwp9