// map::value_type::first 可以作为函数用
class i3;
std::map<string,i3> msi;
msi["your"] = 5;
i3 a = msi["we"];
i3 b = msi["your"];
msi["me"] = 7;
map<string,i3>::iterator mit = msi.lower_bound("we");
if (mit != msi.end()) {
std::cout<<"we="<<mit->first<<":"<<mit->second<<std::endl;
}
vector<string> vs;
transform(msi.begin(),msi.end(),back_inserter(vs),
bind(&map<string,i3>::value_type::first,_1));
copy(vs.begin(),vs.end(),ostream_iterator<string>(cout,"\n"));