I believe that multimap has no guarantee on the order of the values that share a common key. So you will have to sort them yourself, or you could use a map<string, set<string> > instead. This would map an author to a set of titles. The titles would also be sorted alphabetically.
That would not work because the books would not be corresponding to the right authors.
Read dhayden post more carefully.
He suggested using map<string>, set<string> >
The authors entries would be unique because it is a map, not a multimap.
Each author then has it's own set<> of titles which would be in alphabetical order.
When you go to add an author and title, you would have to search to see if the author exists, if so, then you would add just the title to the set<> for that author. If the author does not exist, you would add the author to the map and the title to that author's set.
It would work. Though it would change the structure of your program (and maintaining that structure throughout the program may be somewhat wasteful, unless most authors had several books against their name).