Using lambda:
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; } );
(If the value is fixed, you can put it directly in the lambda body.)
With the predicate:
struct Finder { Finder(int n_) : n(n_) { } int n; bool operator()(const std::pair<std::string, int> & x) const { return x.second > n; } }; std::find_if(Mymap.begin(), Mymap.end(), Finder(MYVALUE));
source share