void printVector(vector<StatsData *> &vals, 
                     HashMap<uint32_t, uint32_t> serverip_to_shortid,
                     const string &header) {
        cout << format("\n%s:\n") % header;
        cout << "server operation   #ops  #dups mean ";
        if (enable_first_latency_stat) {
            cout << "; firstlat mean 50% 90% ";
        }
        if (enable_last_latency_stat) {
            cout << "; lastlat mean 50% 90%";
        }
        cout << "\n";

        sort(vals.begin(),vals.end(),sortByServerOp());
        for (vector<StatsData *>::iterator i = vals.begin();
            i != vals.end();++i) {
            StatsData *j = *i;
            int64_t noperations = j->nops();
            if (j->serverip == 0) {
                cout << " *  ";
            } else {
                cout << format("%03d ") % serverip_to_shortid[j->serverip];
            }
            cout << format("%9s %9lld %6lld %4.2f ")
                    % j->operation % noperations
                    % j->duplicates->countll()
                    % j->duplicates->mean();
            printOneQuant(j->first_latency_ms);
            printOneQuant(j->last_latency_ms);
            cout << "\n";
        }
    }