// unordered_map::find
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
typedef std::unordered_map<std::string,double> mymap_t;
std::ostream& operator << (std::ostream& stream, mymap_t::const_iterator& it)
{
return stream << it->first << ":" << it->second << endl;
}
int main ()
{
mymap_t mymap;
mymap["mom"] = 5.4;
mymap["dad"] = 6.1;
mymap["bro"] = 5.9;
std::string input;
std::cout << "who? ";
getline (std::cin,input);
mymap_t::const_iterator got = mymap.find (input);
cout << got <<endl;
if ( got == mymap.end() )
std::cout << "not found";
else
std::cout << got->first << " is " << got->second;
std::cout << std::endl;
return 0;
}
Ly8gdW5vcmRlcmVkX21hcDo6ZmluZAojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdHlwZWRlZiBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsZG91YmxlPiBteW1hcF90OwoKc3RkOjpvc3RyZWFtJiBvcGVyYXRvciA8PCAoc3RkOjpvc3RyZWFtJiBzdHJlYW0sIG15bWFwX3Q6OmNvbnN0X2l0ZXJhdG9yJiBpdCkKewogICAgcmV0dXJuIHN0cmVhbSA8PCBpdC0+Zmlyc3QgPDwgIjoiIDw8IGl0LT5zZWNvbmQgPDwgZW5kbDsKfQoKaW50IG1haW4gKCkKewogIG15bWFwX3QgbXltYXA7CiAgbXltYXBbIm1vbSJdID0gNS40OwogIG15bWFwWyJkYWQiXSA9IDYuMTsKICBteW1hcFsiYnJvIl0gPSA1Ljk7CgogIHN0ZDo6c3RyaW5nIGlucHV0OwogIHN0ZDo6Y291dCA8PCAid2hvPyAiOwogIGdldGxpbmUgKHN0ZDo6Y2luLGlucHV0KTsKCiAgbXltYXBfdDo6Y29uc3RfaXRlcmF0b3IgZ290ID0gbXltYXAuZmluZCAoaW5wdXQpOwoKICBjb3V0IDw8IGdvdCA8PGVuZGw7CgogIGlmICggZ290ID09IG15bWFwLmVuZCgpICkKICAgIHN0ZDo6Y291dCA8PCAibm90IGZvdW5kIjsKICBlbHNlCiAgICBzdGQ6OmNvdXQgPDwgZ290LT5maXJzdCA8PCAiIGlzICIgPDwgZ290LT5zZWNvbmQ7CgogIHN0ZDo6Y291dCA8PCBzdGQ6OmVuZGw7CgogIHJldHVybiAwOwp9