bind
будет:
bind(std::greater<int>(), placeholders::_1, bar)
, но я думаю, что более рекомендуется использовать лямбда, как в:
[bar](const int a){return bar < a;}
Также рекомендуется используйте перегруженные функции begin/end
вместо вызовов методов. так это было бы так:
find_if(begin(foo), end(foo), [bar](const int a){return bar < a;})
Вы повторяете набор символов с {2}
, который будет точно соответствовать двум из предыдущего токена. Соответствие будет только в том случае, если строка содержит ровно два символа.
Вместо этого используйте набор символов [0-9]{1,2}
, чтобы сопоставить одну или две цифры, затем пробел и еще раз этот повторный набор символов:
[0-9]{1,2} [0-9]{1,2}$