33,311
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<algorithm>
#include<functional>
#include<vector>
using namespace std;
template < typename InputIterator, typename OutputIterator,
typename ElemType, typename Comp >
OutputIterator
filter( InputIterator first, InputIterator last,
OutputIterator To , const ElemType &val, Comp pred )
{
while ( ( first = find_if ( first, last, bind1st(val,pred) ) ) != last )
{
cout << *first << '\n';
*To++ = *first++;
}
return To;
}
int main()
{
const int size=8;
int num[size]={1,2,2,3,4,5,6,7};
vector<int> number(num,num+size);
vector<int> number2(size);
int num2[size];
filter ( number.begin(), number.end(), number2.begin(), 3, less<int>());
filter ( number.begin(), number.end(), num2, 3, greater<int>() );
for(vector<int>::iterator itr = number2.begin(); itr!=number2.end(); itr++)
cout << *itr << '\n';
for(int *i=num2; i!=num2+size; i++)
cout << *i << '\n';
return 0;
}