Change predecessors[v] = (u, e, cost_of_e) to predecessors[v] = (u, e, cost_of_e, cost_of_s_to_u_plus_cost_of_e) in single_source_shortest_paths(), add a corresponding field to PathInfo, and update extract_shortest_path_from_predecessor_list().
I'm not sure off the top of my head what the use cases for this might be, but I saw that someone created a fork to replace cost_of_e with cost_of_s_to_u_plus_cost_of_e, so it's worth considering.
Change
predecessors[v] = (u, e, cost_of_e)topredecessors[v] = (u, e, cost_of_e, cost_of_s_to_u_plus_cost_of_e)insingle_source_shortest_paths(), add a corresponding field toPathInfo, andupdate extract_shortest_path_from_predecessor_list().I'm not sure off the top of my head what the use cases for this might be, but I saw that someone created a fork to replace
cost_of_ewithcost_of_s_to_u_plus_cost_of_e, so it's worth considering.