Add user-defined class to QMap
#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(); }
1. | QMap for string to int | ||
2. | QMap that associates a string to an integer value is created: |