如何解决C++:如何创建一个类的多组对象?
这是我的类声明:
class Person
{
private:
string name;
public:
void showData()
{
cout << name << endl;
}
void insertData()
{
cin >> name;
}
bool operator<(Person p)
{
return name < p.name;
}
};
现在我想创建一个person类的多组对象,怎么做? 这是我要编写的主要功能:
int main()
{
multiset<Person> m;
for (int i = 0; i < 6; i++)
{
Person p;
p.insertData();
m.insert(p);
}
multiset<Person>::iterator it;
// for (it = m.begin(); it != m.end(); it++)
// {
// cout << it.name << endl;
// }
}
解决方法
您需要以稍微不同的方式定义您的 operator<
。我会把它定义为朋友而不是班级成员,但如果它是班级成员,它应该是 const
。
所以没问题
class Person
{
...
bool operator<(Person p) const
{
return name < p.name;
}
};
但我会这样做
class Person
{
...
friend bool operator<(const Person& x,const Person& y)
{
return x.name < y.name;
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。