Setst和 Multisets

#include <iostream>
#include <set>
using namespace std;

template<class T>
class RuntimeCmp{
public:
	enum cmp_mode{normal,reverse};
private:
	cmp_mode mode;
public:
	RuntimeCmp(cmp_mode m=normal):mode(m){}
	bool operator() (const T& t1,const T& t2) const{
		return mode==normal ?t1<t2:t2<t1;
	}
	bool operator==(const RuntimeCmp& rc){
		return mode==rc.mode;
	}
};

typedef set<int,RuntimeCmp<int>> IntSet;
void fill(IntSet& set);


int main()
{
	IntSet coll1;
	fill(coll1);
	RuntimeCmp<int> reverse_order(RuntimeCmp<int>::reverse);

	IntSet coll2(reverse_order);
	fill(coll2);

	coll1=coll2;
	coll1.insert(3);

	if (coll1.value_comp()==coll2.value_comp())
	{

	}
	else{}
}

void fill(IntSet& set)
{
	set.insert(4);
	set.insert(7);
	set.insert(5);
	set.insert(1);
	set.insert(6);
	set.insert(2);
	set.insert(5);
}

  

转载于:https://www.cnblogs.com/lijie-0821/archive/2012/08/26/2657771.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值