Arrays c++;使用未知大小的二维数组的共享_ptr作为函数的输入

Arrays c++;使用未知大小的二维数组的共享_ptr作为函数的输入,arrays,c++11,shared-ptr,Arrays,C++11,Shared Ptr,我试图在由瓷砖组成的地图上实现Dijkstras算法(即6x6 m的区域,由40x40 cm的砖或墙组成),为此,我需要计算两块瓷砖之间的距离。 我已经创建了两个类Tile和Dij_Tile,其中Tile类是包含位置等的实际/物理Tile,Dij_Tile类包含一个共享的ptr到Tile代表以及到达成本等 我的测试文件(使用catch.hpp创建测试文件)中有一个包含所有分片的数组(称为all_tiles\u test),它是一个包含所有分片的二维数组 此后,我创建一个指向该数组的指针(shar

我试图在由瓷砖组成的地图上实现Dijkstras算法(即6x6 m的区域,由40x40 cm的砖或墙组成),为此,我需要计算两块瓷砖之间的距离。 我已经创建了两个类
Tile
Dij_Tile
,其中
Tile
是包含位置等的实际/物理Tile,
Dij_Tile
包含一个
共享的ptr
Tile
代表以及到达成本等

我的测试文件(使用
catch.hpp
创建测试文件)中有一个包含所有分片的数组(称为
all_tiles\u test
),它是一个包含所有分片的二维数组

此后,我创建一个指向该数组的指针(
shared\u ptr
)(称为
all\u tiles\u test\u ptr

之后,我想将
所有tiles\u test\u ptr
发送给计算两个tile之间距离的函数。 问题是,我不知道如何将输入声明到函数中,其中的输入是大小未知(编码时)的二维数组的共享\u ptr。我该怎么做

测试文件中的声明:

 std::shared_ptr<Tile> all_tiles_test[2][2];
 auto all_tiles_test_ptr(all_tiles_test);
std::shared_ptr all_tiles_test[2][2];
自动全瓦测试(全瓦测试);
该函数位于另一个文件(Tile_Distance.h和.cc)中:

double tile_dist(标准::共享_ptr start_dij_tile_ptr),
std::共享\u ptr end\u dij\u tile\u ptr,
std::共享(所有分片);

哪里???是我不知道如何实现的部分。

all_tiles_test_ptr
的类型是
std::shared_ptr(*)[2]
,如果这是您要问的-一个指向两个
std::shared_ptr
数组的(普通、哑)指针。我尝试了,但从编译器得到以下错误:错误的模板参数数(1,应该是2)std::array(*)[2]我尝试了参数“std::shared\u ptr all\u tiles\u ptr”,但没有成功。我不理解您问题的本质。无论如何,。希望它能有所帮助。
double tile_dist(std::shared_ptr<Dij_Tile> start_dij_tile_ptr,
     std::shared_ptr<Dij_Tile> end_dij_tile_ptr,
     std::shared_ptr<???> all_tiles_ptr);