关闭

STL_算法(24)_删除_(2)

279人阅读 评论(0) 收藏 举报
分类:

删除性算法:

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;
}










0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:199303次
    • 积分:4834
    • 等级:
    • 排名:第5945名
    • 原创:227篇
    • 转载:380篇
    • 译文:1篇
    • 评论:94条
    博客专栏
    最新评论