I've got a map containing a word and a set of integers as the value. I want to output the word left aligned and then the integer values in the set in columns that are lined up. I thought that this would work but it seems to output very badly.
How would I go about adjusting this so that the number columns line up with one another and have a decent amount of spaces in between them?
for (auto cbegin = ident_map.begin(); cbegin != ident_map.end(); cbegin++) {
    outFile << left << (*cbegin).first << setw(10);
    for (set<int>::iterator setITR = (*cbegin).second.begin(); setITR != (*cbegin).second.end(); setITR++) {
        outFile << right << *setITR << setw(4);
    }
    outFile << endl;
}
I think that this should output correctly but it comes out looking like this:
BinarySearchTree         4
Key          4  27
OrderedPair         1   4   8  14
T            4
erase        27
first         7  13
insert         1   4
key         27
kvpair         1   4
map_iterator         1   3   8  14
mitr         3   7   8  13  14
result         4   6   7  13
result2         8   9  14  15
second         6
t            4
value_type         1
 
     
    