#include <iostream>
#include <map>
using namespace std;
int main ( )
{
map< char ,int > MapFirst;
map< char ,int > MapSecond;
MapFirst[ 'a' ] = 1 ;
MapFirst[ 'b' ] = 2 ;
MapSecond[ 'z' ] = 23 ;
MapSecond[ 'y' ] = 22 ;
cout << "MapFirst keeps before swap: MapSecond keeps before swap:" << endl;
auto itMapFirst= MapFirst.begin ( ) ;
auto itMapSecond= MapSecond.begin ( ) ;
for ( itMapFirst,itMapSecond; itMapFirst ! = MapFirst.end ( ) ; ++ itMapFirst,++ itMapSecond)
{
cout << itMapFirst- > first << " : " << itMapFirst- > second << "\t \t \t \t \t "
<< itMapSecond- > first << " : " << itMapSecond- > second << endl;
}
swap( MapFirst,MapSecond) ; ///обмен
cout << "MapFirst keeps after swap: MapSecond keeps after swap:" << endl;
itMapFirst= MapFirst.begin ( ) ;
itMapSecond= MapSecond.begin ( ) ;
for ( itMapFirst,itMapSecond; itMapFirst ! = MapFirst.end ( ) ; ++ itMapFirst,++ itMapSecond)
{
cout << itMapFirst- > first << " : " << itMapFirst- > second << "\t \t \t \t \t "
<< itMapSecond- > first << " : " << itMapSecond- > second << endl;
}
MapFirst.swap ( MapSecond) ; ///обмен
cout << "MapFirst keeps after anoter swap: MapSecond keeps after anoter swap:" << endl;
itMapFirst= MapFirst.begin ( ) ;
itMapSecond= MapSecond.begin ( ) ;
for ( itMapFirst,itMapSecond; itMapFirst ! = MapFirst.end ( ) ; ++ itMapFirst,++ itMapSecond)
{
cout << itMapFirst- > first << " : " << itMapFirst- > second << "\t \t \t \t \t "
<< itMapSecond- > first << " : " << itMapSecond- > second << endl;
}
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluICgpCnsKICBtYXA8Y2hhcixpbnQ+IE1hcEZpcnN0OwogIG1hcDxjaGFyLGludD4gTWFwU2Vjb25kOwogCiAgTWFwRmlyc3RbJ2EnXT0xOwogIE1hcEZpcnN0WydiJ109MjsKIAogIE1hcFNlY29uZFsneiddPTIzOwogIE1hcFNlY29uZFsneSddPTIyOwogCiAgY291dCA8PCAiTWFwRmlyc3Qga2VlcHMgYmVmb3JlIHN3YXA6ICBNYXBTZWNvbmQga2VlcHMgYmVmb3JlIHN3YXA6IiA8PCBlbmRsOwogIGF1dG8gaXRNYXBGaXJzdD1NYXBGaXJzdC5iZWdpbigpOwogIGF1dG8gaXRNYXBTZWNvbmQ9TWFwU2Vjb25kLmJlZ2luKCk7CiAgZm9yKGl0TWFwRmlyc3QsaXRNYXBTZWNvbmQ7IGl0TWFwRmlyc3QgIT0gTWFwRmlyc3QuZW5kKCk7ICsraXRNYXBGaXJzdCwrK2l0TWFwU2Vjb25kKQogIHsKICAgICAgY291dCA8PCBpdE1hcEZpcnN0LT5maXJzdCA8PCAiIDogIiA8PCBpdE1hcEZpcnN0LT5zZWNvbmQgPDwgIlx0XHRcdFx0XHQiCiAgICAgIDw8IGl0TWFwU2Vjb25kLT5maXJzdCA8PCAiIDogIiA8PCBpdE1hcFNlY29uZC0+c2Vjb25kIDw8ZW5kbDsKICB9CiAKICBzd2FwKE1hcEZpcnN0LE1hcFNlY29uZCk7Ly8v0L7QsdC80LXQvQogCiAgY291dCA8PCAiTWFwRmlyc3Qga2VlcHMgYWZ0ZXIgc3dhcDogICAgTWFwU2Vjb25kIGtlZXBzIGFmdGVyIHN3YXA6IiA8PCBlbmRsOwogIGl0TWFwRmlyc3Q9TWFwRmlyc3QuYmVnaW4oKTsKICBpdE1hcFNlY29uZD1NYXBTZWNvbmQuYmVnaW4oKTsKICBmb3IoaXRNYXBGaXJzdCxpdE1hcFNlY29uZDsgaXRNYXBGaXJzdCAhPSBNYXBGaXJzdC5lbmQoKTsgKytpdE1hcEZpcnN0LCsraXRNYXBTZWNvbmQpCiAgewogICAgICBjb3V0IDw8IGl0TWFwRmlyc3QtPmZpcnN0IDw8ICIgOiAiIDw8IGl0TWFwRmlyc3QtPnNlY29uZCA8PCAiXHRcdFx0XHRcdCIKICAgICAgPDwgaXRNYXBTZWNvbmQtPmZpcnN0IDw8ICIgOiAiIDw8IGl0TWFwU2Vjb25kLT5zZWNvbmQgPDxlbmRsOwogIH0KIAogIE1hcEZpcnN0LnN3YXAoTWFwU2Vjb25kKTsvLy/QvtCx0LzQtdC9CiAKICBjb3V0IDw8ICJNYXBGaXJzdCBrZWVwcyBhZnRlciBhbm90ZXIgc3dhcDogICAgTWFwU2Vjb25kIGtlZXBzIGFmdGVyIGFub3RlciBzd2FwOiIgPDwgZW5kbDsKICBpdE1hcEZpcnN0PU1hcEZpcnN0LmJlZ2luKCk7CiAgaXRNYXBTZWNvbmQ9TWFwU2Vjb25kLmJlZ2luKCk7CiAgZm9yKGl0TWFwRmlyc3QsaXRNYXBTZWNvbmQ7IGl0TWFwRmlyc3QgIT0gTWFwRmlyc3QuZW5kKCk7ICsraXRNYXBGaXJzdCwrK2l0TWFwU2Vjb25kKQogIHsKICAgICAgY291dCA8PCBpdE1hcEZpcnN0LT5maXJzdCA8PCAiIDogIiA8PCBpdE1hcEZpcnN0LT5zZWNvbmQgPDwgIlx0XHRcdFx0XHQiCiAgICAgIDw8IGl0TWFwU2Vjb25kLT5maXJzdCA8PCAiIDogIiA8PCBpdE1hcFNlY29uZC0+c2Vjb25kIDw8ZW5kbDsKICB9CiAKICByZXR1cm4gMDsKfQ==