Во как
STL + BOOST.bind
есть
vector<int> vint;
vint.push_back(1);
vint.push_back(2);
vint.push_back(3);
делаем
count_if( vint.begin(), vint.end(), bind(std::greater_equal<int>(), _1, 2 ) )
получаем количество элементов в контейнере значение которых >= 2
в STL было бы понятней, но не намного:
count_if(vint.begin(),vint.end(), bind2nd( std::greater_equal<int>(), 2 ) )
зато т.к. bind гибкий (т.к. перегружен неимоверное количество раз) то можно писать чето вроде:
cout<<
count_if(vint.begin(),vint.end(),
bind(logical_and<int>(),
bind(greater_equal<int>(),_1,2),
bind(less_equal<int>(),_1,3)))
<<endl;
оно даст количество эелементов в контейнере которые >=2 и <=3