#include<iostream>
using namespace std;
#include<map>
#include<string>
class person
{
public:
person(string name, int age,int height,int weight)
{
this->mname = name;
this->mage = age;
this->mheight = height;
this->mweight = weight;
}
string mname;
int mage;
int mheight;
int mweight;
};
class compareperson
{
public:
bool operator()(const person& p1, const person& p2)
{
if (p1.mage == p2.mage)
{
if (p1.mheight == p2.mheight)
{
return p1.mweight > p2.mweight;
return p1.mheight > p2.mheight;
}
}
else
{
return p1.mage > p2.mage;
}
}
};
void test01()
{
map<int,person>m;
person p1("曹操", 35, 175, 140);
person p2("刘备", 45, 180, 150);
person p3("孙权", 40, 170, 140);
person p4("赵云", 25, 190, 160);
person p5("张飞", 35, 175, 180);
person p6("关羽", 35, 200, 170);
m.insert(make_pair(1, p1));
m.insert(make_pair(2, p2));
m.insert(make_pair(3, p3));
m.insert(make_pair(4, p4));
m.insert(make_pair(5, p5));
m.insert(make_pair(6, p6));
map<int, person, compareperson>m;
for (map<int, person, compareperson>::iterator it = m.begin(); it != m.end(); it++)
{
cout << "姓名:" <<
}
}
int main()
{
test01();
system("pause");
return 0;
}
具体是什么问题?map<int, person, compareperson>这里的定义怎么会有三个,map是key 和value对应的