#include
using namespace std;
#include
class comparePerson
{
public:
bool operator ()( const Person &p3, const Person &p4)const
{
return p3.m_age > p4.m_age;
}
};
/class compareMap
{
public:
const bool operator ()(const int v1, const int v2) const
{
//降序
return v1 > v2;
}
};/
void printMap(map<int, int>& m)
{
for (map<int, int>::iterator it = m.begin(); it != m.end(); it++)
{
cout << "key " << it->first << " value " << it->second << endl;
}
}
void test01()
{
/*map<int, int, compareMap>m;
//查找
m.insert(make_pair(1, 10));
m.insert(make_pair(2, 20));
m.insert(make_pair(3, 30));
m.insert(make_pair(4, 40));
m.insert(make_pair(5, 50));
for (map<int, int, compareMap>::iterator it = m.begin(); it != m.end(); it++)
{
cout << "key " << it->first << " value " << it->second << endl;
}
*/
//自定义类型排序
Person p1("张飞", 15);
Person p2("关羽", 24);
Person p3("刘备", 16);
Person p4("赵云", 19);
map<int,Person,comparePerson>m2;
m2.insert(pair<int, Person>(1, p1));
m2.insert(pair<int, Person>(2, p2));
m2.insert(pair<int, Person>(3, p3));
m2.insert(pair<int, Person>(4, p4));
/m2.insert(make_pair(1, p1));
m2.insert(make_pair(2, p2));
m2.insert(make_pair(3, p3));
m2.insert(make_pair(4, p4));/
for (map<int,Person,comparePerson>::iterator it = m2.begin(); it != m2.end(); it++)
{
cout << "key " << it->first << " value " << "姓名: " << it->second.m_Name << "年龄: " << it->second.m_age << endl;
}
}
int main()
{
test01();
system(“pause”);
return 0;
}