#ifndef DISTANCE_HPP_ #define DISTANCE_HPP_ #include "config.hpp" #include #include class graph_distances { public: std::vector distances; // distances[n] = distance from node n to target std::vector parents; // parents[n] = next node on the path from node n to target std::vector nearest_targets; // nearest_target[n] = closest target node to node n public: auto clear() -> void; [[nodiscard]] auto empty() const -> bool; auto calculate_distances(size_t node_count, const std::vector>& edges, const std::vector& targets) -> void; [[nodiscard]] auto get_shortest_path(size_t source) const -> std::vector; }; #endif