С лямбда-выражением:
int n = MYVALUE;
auto it = std:: find_if(Mymap.begin(), Mymap.end(),
[n](const std::pair<std::string, int> & x) -> bool
{ return x.second > n; }
);
(Если значение фиксировано, вы можете поместить его непосредственно в тело лямбда-выражения. Для C ++ 14 и более поздних версий лямбда-захват может быть [n = MYVALUE]
не нужна отдельная внешняя переменная n
.)
с предикатом:
struct Finder
{
Finder(int n_) : n(n_) { }
int n;
bool operator()(const std::pair<std::string, int> & x) const
{
return x.second > n;
}
};
auto it = std::find_if(Mymap.begin(), Mymap.end(), Finder(MYVALUE));