#include <iostream>
#include <map>
#include <algorithm>
#include <iterator>
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'}}, tmp;
    print(charMap);
    std::transform(charMap.begin(), charMap.end(), 
          std::inserter(tmp,tmp.begin()), 
          [](auto e) { return std::make_pair(e.first+1, e.second); });
    std::swap(tmp, charMap);
	print(charMap);


	return 0;
}