#include <iostream>
#include <string>
#include <map>
using namespace std;
struct Bar
{
string str;
Bar() : str("mama") { cout << "Bar()" << endl; }
Bar(const Bar&) : str("papa") { cout << "Bar(const Bar &)" << endl; }
};
int main()
{
map<int,string> numberedStrings;
numberedStrings[0]="mama\n";
cout<<numberedStrings.begin()->second;
numberedStrings[0]="papa\n";
cout<<numberedStrings.begin()->second;
map<int,Bar> bars;
Bar a;
cout<<"\nleft value\n";
bars[0]= a;
cout<<"\nright value\n";
cout<<bars[0].str<<endl;
return 0;
}