remove_copy_if

来源:互联网 发布:诸暨行知小学陈舟燕 编辑:程序博客网 时间:2024/06/06 23:16
 
// remove_copy_if.cpp -- 2011-10-03-22.31#include "stdafx.h"#include <iostream>#include <algorithm>#include <vector>#include <functional>using std ::vector ;using std ::greater ;template<class T>class Print{public:void operator () (const T & t) const{std ::cout << t << " " ;}} ;int _tmain(int argc, _TCHAR* argv[]){int arr1[] = {1, 2, 3, 4, 5, 3, 8, 9} ;vector<int> vec1(arr1, arr1 + sizeof arr1 / sizeof (int)) ;vector<int> vec2(sizeof arr1 / sizeof (int), 0) ;//remove_copy_if (beg,end,dest,unsryPred)//操作前:[beg,end)标示输入序列.[dest,...)标示输出序列.unsryPred是一元函数对象.//操作后:输入序列中除了使unsryPred返回true的元素之外都被复制到输出序列中.//返回值:返回指向目标序列中最后一个被复制元素的下一个位置的迭代器.//备注:必须保证目标序列足以容纳复制进来的数据,否则将抛出异常.//输出序列中未被赋予新值的位置保持原值不变.vector<int> ::iterator vec2NewEnd = remove_copy_if(vec1.begin(), vec1.end(), vec2.begin(), bind2nd(greater<int> (), 5)) ;for_each(vec2.begin(), vec2NewEnd, Print<int> ()) ;std ::cin.get() ;return 0 ;}
原创粉丝点击