I'm trying to rewrite a simple network load simulation tool I created, this time using Boost libraries to improve performances (and avoid implementation mistakes). In the original program I computed shortest paths from every source node in the network by invoking Dijkstra's algorithm on it, so I was delighted when I found out that there's an all-pairs algorithm like the Johnson's one (my graphs are going to be relatively sparse, I assume). However that algorithm only returns a distance matrix, while I need the actual routes - at the very least something like the predecessor map that Dijkstra's algorithm implementation returns. Is there any way to achieve that or should I just go back to repeatedly invoking Dijkstra for each vertex in the graph? I've been looking around the whole day but couldn't find anything, guess I just wanted to be sure before I moved back to the iteration approach.
Thanks!