gpt4 book ai didi

C++将不同大小的不同数组传递给同一函数

转载 作者:太空狗 更新时间:2023-10-29 19:48:53 26 4
gpt4 key购买 nike

我有 3 个二维数组,我想将它们传递给一个函数。目前,我使用 if-else 语句来决定要发送哪个数组,然后复制所选数组的内容并传递新数组。

新数组:

char board[100][100]={}

这些是数组(内容未显示):

char mazeEasy[19][38], mazeMed[41][81], mazeHard[72][98];

如何在不使用 board[100][100] 的情况下将这三个函数之一传递给一个函数?

最佳答案

可能是 template功能:

template <typename T, std::size_t Dim1, std::size_t Dim2>
void f(T(&)[Dim1][Dim2])
{
std::cout << Dim1 << ", " << Dim2 << "\n";
}

参见 http://ideone.com/b60h1e 的演示.请注意,这将实例化函数模板的三个不同实例(每个不同的维度组合一个实例)。

建议改成 std::vector<std::vector<char>> 反而。这避免了多次实例化,函数可以查询 std::vector对于它的大小或迭代:

void f(std::vector<std::vector<char>>& a_maze)
{
std::cout << a_maze.size() << ", " << a_maze[0].size() << "\n";
}

参见 http://ideone.com/nHL8Hj 的演示.

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

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