Add user-defined class to QMap : QMap « Qt « C++






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();
}

   
    
  








Related examples in the same category

1.QMap for string to int
2.QMap that associates a string to an integer value is created: