#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
void print( std::map< int, char > &x)
{
std::cout<<"map:"<<std::endl;
for (auto& e:x)
std::cout<<" "<<e.first<<":"<<e.second<<std::endl;
}
int main() {
std::map< int, char > charMap { {1,'A'},{2,'B'},{3,'C'}};
print(charMap);
for( auto pi = charMap.end(); pi-- != charMap.begin(); pi=charMap.erase( pi ))
{
charMap[ pi->first + 1 ] = charMap[ pi->first ];
}
print(charMap);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBwcmludCgJc3RkOjptYXA8IGludCwgY2hhciA+ICZ4KSAKewoJc3RkOjpjb3V0PDwibWFwOiI8PHN0ZDo6ZW5kbDsKCWZvciAoYXV0byYgZTp4KSAKCSAgICBzdGQ6OmNvdXQ8PCIgICI8PGUuZmlyc3Q8PCI6Ijw8ZS5zZWNvbmQ8PHN0ZDo6ZW5kbDsgCgkgICAgCn0KCmludCBtYWluKCkgewoJCglzdGQ6Om1hcDwgaW50LCBjaGFyID4gY2hhck1hcCB7IHsxLCdBJ30sezIsJ0InfSx7MywnQyd9fTsKICAgIHByaW50KGNoYXJNYXApOwoJZm9yKCBhdXRvIHBpID0gY2hhck1hcC5lbmQoKTsgcGktLSAhPSBjaGFyTWFwLmJlZ2luKCk7IHBpPWNoYXJNYXAuZXJhc2UoIHBpICkpCgl7CgkgICAgY2hhck1hcFsgcGktPmZpcnN0ICsgMSBdID0gY2hhck1hcFsgcGktPmZpcnN0IF07Cgl9CiAgICBwcmludChjaGFyTWFwKTsKCgoJcmV0dXJuIDA7Cn0=