#include <iostream>
#include <vector>
#include <unordered_map>
typedef std::pair<std::string::const_iterator,std::string::const_iterator> FindType;
FindType findSubKey(std::string &S) {
auto a = S.find_first_of('a');
auto b = S.find_last_of('f');
std::cout << a << ":" << b <<std::endl;
return {S.begin()+a,S.begin()+b};
}
int main () {
std::unordered_map<std::string, int> map = {
{"123",3},
{"123456abcdefx",2},
{"abcde",7},
{"6abcdef",1}
};
std::string bigString = "123abcdefjhk";
std::string::const_iterator subKeyBegin, subKeyEnd;
std::tie(subKeyBegin, subKeyEnd) = findSubKey(bigString);
//////////////////////////////////////////////////////////////////
std::string Tmp = "";
Tmp.reserve(bigString.size());
//////////////////////////////////////////////////////////////////
Tmp.assign(subKeyBegin,subKeyEnd);
std::cout << "\"" << Tmp << "\"" << std::endl;
std::cout << (map.find(Tmp)!=map.end() ? "Нашли":"Не нашли") << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KCnR5cGVkZWYgc3RkOjpwYWlyPHN0ZDo6c3RyaW5nOjpjb25zdF9pdGVyYXRvcixzdGQ6OnN0cmluZzo6Y29uc3RfaXRlcmF0b3I+IEZpbmRUeXBlOwoKRmluZFR5cGUgZmluZFN1YktleShzdGQ6OnN0cmluZyAmUykgewogIGF1dG8gYSA9IFMuZmluZF9maXJzdF9vZignYScpOyAgIAogIGF1dG8gYiA9IFMuZmluZF9sYXN0X29mKCdmJyk7CiAgc3RkOjpjb3V0IDw8IGEgPDwgIjoiIDw8IGIgPDxzdGQ6OmVuZGw7ICAKICByZXR1cm4ge1MuYmVnaW4oKSthLFMuYmVnaW4oKStifTsgICAgCn0KCmludCBtYWluICgpIHsKICAgIHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmluZywgaW50PiBtYXAgPSB7CiAgICAgIHsiMTIzIiwzfSwKICAgICAgeyIxMjM0NTZhYmNkZWZ4IiwyfSwKICAgICAgeyJhYmNkZSIsN30sICAKICAgICAgeyI2YWJjZGVmIiwxfQogICAgfTsKICAgIHN0ZDo6c3RyaW5nIGJpZ1N0cmluZyA9ICIxMjNhYmNkZWZqaGsiOwogICAgc3RkOjpzdHJpbmc6OmNvbnN0X2l0ZXJhdG9yIHN1YktleUJlZ2luLCBzdWJLZXlFbmQ7CiAgICBzdGQ6OnRpZShzdWJLZXlCZWdpbiwgc3ViS2V5RW5kKSA9IGZpbmRTdWJLZXkoYmlnU3RyaW5nKTsKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgc3RkOjpzdHJpbmcgVG1wID0gIiI7CiAgICBUbXAucmVzZXJ2ZShiaWdTdHJpbmcuc2l6ZSgpKTsKICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogICAgVG1wLmFzc2lnbihzdWJLZXlCZWdpbixzdWJLZXlFbmQpOwogICAgc3RkOjpjb3V0IDw8ICJcIiIgPDwgVG1wIDw8ICJcIiIgPDwgc3RkOjplbmRsOwogICAgc3RkOjpjb3V0IDw8IChtYXAuZmluZChUbXApIT1tYXAuZW5kKCkgPyAi0J3QsNGI0LvQuCI6ItCd0LUg0L3QsNGI0LvQuCIpIDw8IHN0ZDo6ZW5kbDsKICByZXR1cm4gMDsKfQ==