#include <map>
#include <string>
#include <algorithm>
#include <iostream>
int main() {
std::map <std::string, int> myMap{ {"abc", 1}, {"efg", 2}, {"ijk", 3}, {"iik", 4} };
std::string prefix("i");
for (auto it = myMap.lower_bound(prefix); it != std::end(myMap) && it->first.compare(0, prefix.size(), prefix) == 0; ++it)
std::cout << it->first << " -> " << it->second << std::endl;
return 0;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKSB7CiAgICBzdGQ6Om1hcCA8c3RkOjpzdHJpbmcsIGludD4gbXlNYXB7IHsiYWJjIiwgMX0sIHsiZWZnIiwgMn0sIHsiaWprIiwgM30sIHsiaWlrIiwgNH0gfTsKICAgIHN0ZDo6c3RyaW5nIHByZWZpeCgiaSIpOwoKICAgIGZvciAoYXV0byBpdCA9IG15TWFwLmxvd2VyX2JvdW5kKHByZWZpeCk7IGl0ICE9IHN0ZDo6ZW5kKG15TWFwKSAmJiBpdC0+Zmlyc3QuY29tcGFyZSgwLCBwcmVmaXguc2l6ZSgpLCBwcmVmaXgpID09IDA7ICsraXQpCiAgICAgICAgc3RkOjpjb3V0IDw8IGl0LT5maXJzdCA8PCAiIC0+ICIgPDwgaXQtPnNlY29uZCA8PCBzdGQ6OmVuZGw7CgoJcmV0dXJuIDA7Cn0=