gpt4 book ai didi

C++:处理不同大小数组的函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:23 26 4
gpt4 key购买 nike

我有 2 个代表迷宫的二维数组

const char maze1[10][11]const char maze2[20][21]

我正在尝试创建 1 个函数来处理两个迷宫,如下所示:

void solveMaze(maze[][])
{
}

solveMaze(maze1);
一样通过迷宫但是,我必须为数组提供一个大小,该大小因传入的迷宫而异。如果不重载函数或使用函数模板,我如何才能有 1 个函数来处理两个数组?

最佳答案

C++答案

使用std::vector :

// Initialize the vector with 11 rows of 10 characters
std::vector<std::vector<char> > maze(11, std::vector<char>(10));

void solveMaze(const std::vector<std::vector<char> > &maze) {
// note that you can access an element as maze[x][y]
}

boost::multi_array效率稍微高一点(如果你被允许使用提升)。我认为它是这样的:

boost::multi_array<char, 2> maze(boost::extents[10][11]);

void solveMaze(const boost::multi_array<char, 2> &maze) {
// note that you can access an element as maze[x][y]
}

C 答案

使用指针:

const char maze1[10][11];

void solveMaze(char *maze, size_t x_length, size_t y_length) {
// note that you can access an element as maze[x + (x_length * y)]
}

关于C++:处理不同大小数组的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7708633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com