双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

C++ 泛函数

一名CV界的小学生 一名CV界的小学生 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include<string>
#include<vector>
#include<functional>
#include<algorithm>
using namespace std;


template<typename inputiterator,typename outputiterator,typename elemtype,typename comp>
outputiterator
filter(inputiterator first, inputiterator last, outputiterator at, const elemtype &val, comp pred)
{
while ((first = find_if(first, last, bind2nd(pred, val))) != last)
{
cout << "found value:" << *first << endl;
*at++ = *first++;
}
return at;
}
int main()
{
const int asize = 10;
int ia[asize] = { 23, 56, 14, 21, 15, 16, 17, 18, 19, 54 };
vector<int>vec(ia, ia + asize);
vector<int>ivec;

int ia2[asize];

cout << "filtering integer array for lessthan 20:" << endl;
filter(ia, ia+asize,ia2,20, greater<int>());

cout << "filtering iteger vector for lessthan 20:" << endl;
filter(vec.begin(), vec.end(), ivec.begin(), 20, greater<int>());

return 0;
}

运行时总是出现

这个提示,是为什么啊 ,百度了一下这个问题,但也没有确实的回答,这里发个帖子给聊聊这个问题啊
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部