I would like some help condensing this code down to size. I am trying to utilize Qt's container classes as efficiently as possible. I do not believe this code reflects my objective. #include <QCoreApplication> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QVector<int> vect; vect.append(0); vect.append(0); vect.append(0); vect.append(0); vect.append(1); vect.append(1); vect.append(2); vect.append(1); QVectorIterator<int> ivect(vect); double median = 0; if(vect.count() % 2 == 0){ median = static_cast<double>((vect[vect.count() / 2 - 1] + vect[vect.count() / 2])) / 2; } else{ median = vect[vect.count() / 2]; } int sum = 0; while(ivect.hasNext()){ sum += ivect.next(); } double mean = static_cast<double>(sum) / vect.count(); QSet<int> set; ivect.toFront(); while(ivect.hasNext()) { set << ivect.next(); } QMap<int, int> map; QSetIterator<int> iset(set); ivect.toFront(); while(iset.hasNext()) { int count = 0; while(ivect.hasNext()) { if(iset.peekNext() == ivect.next()) { count++; } } ivect.toFront(); map.insert(iset.next(), count); } QMapIterator<int, int> imap(map); int maxValue = 0; QString mode; while(imap.hasNext()) { imap.next(); if(imap.value() > maxValue) { maxValue = imap.value(); mode = QString::number(imap.key()); } else if(imap.value() == maxValue) { mode = "NULL"; } } qDebug() << set; qDebug() << map; qDebug() << "Mean:" << mean; qDebug() << "Median:" << median; qDebug() << "Mode frequency:" << maxValue; qDebug() << "Mode:" << mode; return a.exec(); }