After a function generates and adds the contents to this dictionary, I want to next iterate through and print each key:value pair in a loop. How can I get the size of the value from the iterator so that I can iterate throught he vector to output it. it.second will give you a copy of the vector for the given map element so you could change your inner loop to I know this question is a bit old, but I had a similar question and this post helped me out, so I guess I can post my solution here. Based upon example found here: map and multimap I have a map with a pair <,string, vector<,string>, >, where vector<,string>, will, of course, contain more than one value You may notice different ways to add information, as well as the printing part, which prints the pairs ‘key-vector’ where vector has several values. We can also print like this if C++11: P.S.: I don’t know why the output is in different order, I believe the different push methods and their speed have something to do with it. Note the non-member begin/end. Also, if you don’t need ostream flushing, throw out the std::endl, of course. Source.