#include
#include
#include
#include
using namespace std;
template
vector find_all(InputIterator first, InputIterator last, Predicate pred)
{
vector res;
while (true) {
first = find_if(first, last, pred);
if (first == last) {
break;
}
res.push_back(first);
++first;
}
return (res);
}
int main(int argc, char** argv){
int arr[] = {3, 4, 5, 4, 5, 6, 5, 8};
vector all = find_all(arr, arr + 8, bind2nd(equal_to(), 5));
cout << "Found " << all.size() << " matching elements: ";
for (vector::iterator it = all.begin(); it != all.end(); ++it) {
cout << **it << " ";
}
return (0);
}