/Engine/Source/Runtime/GeometryCore/Public/Spatial/PointHashGrid2.h
We don't store copies of the 2D points. You provide a point_data type. This could just be the integer index into your list for example, a pointer to something more complex, etc. Insert and Remove functions require you to pass in the 2D point for the point_data. To Update a point you need to know its old and new 2D coordinates.
template<typename PointDataType, typename RealType> class TPointHashGrid2