/***********************************************
文件名: map_study.h
创建/修改者: benben
创建/修改时间: 2013.01.16
功能: 学习标准程序库的 Set ,纯属学习demo
***********************************************/
#include "stdafx.h"
#include <iostream>
#include <set>
using std::set;
template<typename T>
class MyGreater
{
public:
bool operator() (T Left_, T Right_)
{
return Left_ > Right_;
}
};
int _tmain(int argc, _TCHAR* argv[])
{
typedef std::set<int, MyGreater<int> > IntSet;
typedef std::multiset<int, MyGreater<int> > IntMultiSet;
{
IntSet coll;
coll.insert(3);
coll.insert(1);
coll.insert(5);
coll.insert(4);
coll.insert(7);
coll.insert(1);
coll.insert(6);
coll.insert(2);
coll.insert(4);
coll.insert(7);
coll.insert(1);
coll.insert(6);
coll.insert(2);
// 打印元素
std::cout << "打印不出重复元素的集合" << std::endl;
IntSet::const_iterator pos;
IntSet::const_iterator itEnd = coll.end();
for (pos = coll.begin(); pos != itEnd; ++pos)
{
std::cout << *pos << " ";
}
std::cout << std::endl;
}
{
IntMultiSet MultiColl;
MultiColl.insert(3);
MultiColl.insert(1);
MultiColl.insert(5);
MultiColl.insert(4);
MultiColl.insert(7);
MultiColl.insert(1);
MultiColl.insert(6);
MultiColl.insert(2);
MultiColl.insert(4);
MultiColl.insert(7);
MultiColl.insert(1);
MultiColl.insert(6);
MultiColl.insert(2);
std::cout << "打印可重复元素的集合" << std::endl;
IntMultiSet::const_iterator pos;
IntMultiSet::const_iterator itEnd = MultiColl.end();
for (pos = MultiColl.begin(); pos != itEnd; ++pos)
{
std::cout << *pos << " ";
}
std::cout << std::endl;
}
return 0;
}