Hi, Dijkstra's algorithm is implemented in the boost graph library (BGL,
http://www.boost.org/libs/graph/doc/). See
http://www.boost.org/libs/graph/doc/dijkstra_shortest_paths.html
for details.
The default implementation uses an implementation of an Relaxed heap (similiar to Fibonnaci heaps) as priority queue. The algorithm takes as parameter (among others) a data structure for storing the distances. You can initialize this prior to execution and call dijkstra_shortest_paths_no_init to avoid setting all labels to infinity.
hth
Moritz