6#include <unordered_map>
36 const int&
operator[](std::int32_t index)
const noexcept;
41 void set(std::int32_t index,
int distance)
noexcept;
45 [[nodiscard]]
bool contains(std::int32_t index)
const noexcept;
49 [[nodiscard]] std::pair<std::int32_t, int>
max() const noexcept;
53 void collect_keys(std::vector<std::int32_t>& indices) const noexcept;
61 std::int32_t goal_index) noexcept;
64 std::unordered_map<std::int32_t,
int> m_cells;
66 std::int32_t m_root_index;
A class that manages distances associated with cells in a grid.
Definition distances.h:22
static std::shared_ptr< distances > path_to(grid_interface *g, std::int32_t start_index, std::int32_t goal_index) noexcept
Computes the shortest path to a goal cell index within a distances object.
std::pair< std::int32_t, int > max() const noexcept
Computes the maximum distance and cell index in a distances object.
const int & operator[](std::int32_t index) const noexcept
Accesses the value associated with a given cell index.
bool contains(std::int32_t index) const noexcept
Checks if a given cell index is contained in the distances object.
distances(std::int32_t root_index)
Constructor that initializes the distances object with a given root index.
void set(std::int32_t index, int distance) noexcept
Sets the distance of a cell by index.
void collect_keys(std::vector< std::int32_t > &indices) const noexcept
Collects all cell indices stored in the distances object.
int & operator[](std::int32_t index) noexcept
Overloaded operator to access the distance of a cell by index.
Interface for the grid class.
Definition grid_interface.h:20