Add user-defined class to QMap (转)
时间:2010-12-22 来源:wumao2
#include <QString>
#include <QHash>
#include <QMap>
#include <QSet>
#include <QDebug>
class Employee {
public:
Employee(const QString &surname, const QString &forename)
{
m_forename = forename;
m_surname = surname;
}
QString forename() const { return m_forename; }
QString surname() const { return m_surname; }
private:
QString m_forename;
QString m_surname;
};
inline bool operator<(const Employee &e1, const Employee &e2)
{
if ( e1.surname() != e2.surname() )
return e1.surname() < e2.surname();
return e1.forename() < e2.forename();
}
int main()
{
Employee d1("M", "D");
Employee d2("M", "M");
Employee d3("M", "P");
QMap<int, Employee> map;
map.insert(0, d1);
map.insert(1, d2);
map.insert(2, d3);
QMapIterator<int, Employee> mi(map);
while ( mi.hasNext() ) {
mi.next();
qDebug() << mi.key() << ":" << mi.value().surname() << mi.value().forename();
}
#include <QHash>
#include <QMap>
#include <QSet>
#include <QDebug>
class Employee {
public:
Employee(const QString &surname, const QString &forename)
{
m_forename = forename;
m_surname = surname;
}
QString forename() const { return m_forename; }
QString surname() const { return m_surname; }
private:
QString m_forename;
QString m_surname;
};
inline bool operator<(const Employee &e1, const Employee &e2)
{
if ( e1.surname() != e2.surname() )
return e1.surname() < e2.surname();
return e1.forename() < e2.forename();
}
int main()
{
Employee d1("M", "D");
Employee d2("M", "M");
Employee d3("M", "P");
QMap<int, Employee> map;
map.insert(0, d1);
map.insert(1, d2);
map.insert(2, d3);
QMapIterator<int, Employee> mi(map);
while ( mi.hasNext() ) {
mi.next();
qDebug() << mi.key() << ":" << mi.value().surname() << mi.value().forename();
}
相关阅读 更多 +