主要技术点:利用仿函数,可以改变排序规则
#include<iostream>
using namespace std;
#include<set>
class myCompare
{
public:
//利用仿函数,重载()
bool operator()(int a, int b)const
{
//降序
return a > b;
}
};
void p(const set<int>& s)
{
for (set<int>::const_iterator it = s.begin(); it != s.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
void p1(const set<int,myCompare>& s)
{
for (set<int,myCompare>::const_iterator it = s.begin(); it != s.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
void test()
{
set<int> s1;
s1.insert(4);
s1.insert(8);
s1.insert(7);
s1.insert(6);
cout << "set容器默认排序为从小到大:" << endl;
p(s1);
cout << "set容器改变默认排序规则: " << endl;
set<int,myCompare> s2;
s2.insert(24);
s2.insert(27);
s2.insert(22);
s2.insert(34);
p1(s2);
}
int main()
{
test();
system("pause");
return 0;
}