删除性算法:
remove()
remove_if()
remove_copy()
remove_copy_if()
unique()
unique_copy()
今天学习:
remove_copy()
remove_copy_if()
// 原空间的数据复制到目标空间中去,在复制工程中删除一些数据
#include<iostream>
#include<algorithm>
#include<list>
#include<set>
//
#include<iterator>
using namespace std;
int main()
{
list<int> ilist;
for(int i = 1; i <= 6; i++)
ilist.push_back(i);
for(int i = 2; i <= 9; i++)
ilist.push_back(i);
for(list<int>::iterator iter = ilist.begin(); iter != ilist.end(); iter++)
cout<<*iter<<' ';
cout<<endl;
multiset<int> iset;
remove_copy_if(ilist.begin(), ilist.end(), inserter(iset, iset.end()), bind2nd(less<int>(), 4));
for(multiset<int>::iterator iter = iset.begin(); iter != iset.end(); iter++)
cout<<*iter<<' ';
cout<<endl;
//
system("pause");
return 0;
}
#include<iostream>
#include<algorithm>
#include<list>
#include<set>
//
#include<iterator>
using namespace std;
int main()
{
list<int> ilist;
for(int i = 1; i <= 6; i++)
ilist.push_back(i);
for(int i = 2; i <= 9; i++)
ilist.push_back(i);
for(list<int>::iterator iter = ilist.begin(); iter != ilist.end(); iter++)
cout<<*iter<<' ';
cout<<endl;
multiset<int> iset;
remove_copy_if(ilist.begin(), ilist.end(), inserter(iset, iset.end()), bind2nd(less<int>(), 4));
for(multiset<int>::iterator iter = iset.begin(); iter != iset.end(); iter++)
cout<<*iter<<' ';
cout<<endl;
remove_copy(ilist.begin(), ilist.end(), ostream_iterator<int>(cout, " "), 3);
cout<<endl;
remove_copy_if(ilist.begin(), ilist.end(), ostream_iterator<int>(cout, " "), bind2nd(greater<int>(), 4));
//
system("pause");
return 0;
}