将2D数组作为自变量传递给采用1D数组的函数
Passing 2D array as an argument to a function which takes 1D array
这听起来像个愚蠢的问题:
是否可以将2D数组作为参数传递给采用1D数组的函数
例如:
我有一个数组players[4][5]
和一个函数bestCard()
,该函数的头看起来像这样的void bestCard(int arr[5])
<-该5
是指阵列players
的第二维度
我想在函数bestCard()
中传递players[4][...]
,使最后一个维度被认为是一个数组,即players[5]
不确定我的问题是否全面。
2D阵列是1D阵列的阵列。
在您的情况下,这意味着player[i]
是一个由五个元素组成的数组,其中i
位于0
和3
之间。因此,将player[i]
传递给函数将传递一个由5个元素组成的数组(或者更严格地说,是一个指向5个元素数组中第一个元素的指针)。
我是C++的初学者,但据我所知,如果您没有重载bestCard()
函数以获取不同类型的参数,那么将二维数组传递给函数bestCard()
是不可能的。
根据你在问题中给我的信息,我猜有4名玩家,每人持有5张牌。
如果你想通过一个玩家的手牌bestCard()
,你必须写这样的东西:
bestCard(players[0]) // Determine the bestCard for the first player.
bestCard(players[1]) // Determine the bestCard for the second player.
...
bestCard(players[3]) // Determine the bestCard for the fourth player.
尽管players
实际上是二维阵列,但每个players[i]
(对于0 < i < 4
)都评估为一维阵列。因此,bestCard()
应该能够接受它们作为一个论点。
相关文章:
- C++使用数组作为多维数组,尽管将其初始化为带有指针的 1D
- 为什么将指针重新分配给 1D 数组的 char 时显示错误,但 2D 数组工作正常?
- 如何使用指针C++将元素从2D数组复制到1D数组
- 借助功能将 2D 转换为 1D 数组
- 使用C++将1D数组转换为2D字符串数组
- C++ 矩阵乘法 2D 数组比 1D 更快
- 使用 std::transform 在 2d C 阵列上转换为 1d C 数组
- 在 C++ 中,用于将大型 2D 数组转换为 1D 数组的内存分配
- 将指向 1D Fortran 数组的指针传递给使用 C_LOC() 进行C++会导致垃圾值
- 表示为 1D 的多维数组(模板化为 n 维)
- 我的算法在 1D 数组中渲染矩形有什么问题
- 如何在C++中将 2d 矢量转换为 1d 数组?
- 在 C++ 中实现 1D 数组中的 2D 数组坐标
- 访问表示 2D 矩阵的 1D 存储数组
- C 将1D动态数组施放到2D数组以使用常规索引(例如ARR [i] [J])
- 如何将元素的索引从2D数组存储到1D数组中,然后交换这些值
- C++ 3D 数组到 1D 会导致堆缓冲区溢出
- 我在将 cv::Mat 保存到 1D 数组时遇到问题
- C ,将1D数组转换为2D数组
- 数组 1D 我需要要求用户检查索引和打印值