جست و جو با یک تابع خاص در map - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

جست و جو با یک تابع خاص در map

+2 امتیاز
چطور میشه داخل std::map با استفاده از یک custom function عملیات find رو انجام داد ؟ چرا map.find تابع نمیگیره مثل std::find ؟
سوال شده آذر 1, 1393  بوسیله ی Xavi (امتیاز 627)   24 83 110

1 پاسخ

+3 امتیاز
 
بهترین پاسخ

برای اینکار بایستی از تابع std::find_if استفاده کنید به صورت زیر:

my_map.insert(std::pair<string, Pos>("ali", Pos(1, 1)));
my_map.insert(std::pair<string, Pos>("reza", Pos(1, 5)));
my_map.insert(std::pair<string, Pos>("hasan", Pos(2, 2)));
my_map.insert(std::pair<string, Pos>("vahid", Pos(3, 7)));

Pos search_val(2, 2);
map<string, Pos>::const_iterator res = std::find_if(my_map.begin(), my_map.end(), [&search_val](const pair<string, Pos>& pos){ return pos.second.x_ == search_val.x_ && pos.second.y_ == search_val.y_; });
cout << res->first;

 

پاسخ داده شده آذر 2, 1393 بوسیله ی مصطفی ساتکی (امتیاز 21,998)   24 34 75
ویرایش شده آذر 2, 1393 بوسیله ی BlueBlade
...