c++ - 将任意大小的数组传递给 C++ 函数

标签 c++ arrays function pointers parameter-passing

我知道您可以通过其他方式传递数组,例如:

returnType functionName (dataType array[][10])

但我对您事先不知道数组大小的情况很感兴趣。我希望能够将行数和列数作为参数传递。

如何将任意大小的数组传递给 C++ 函数?我想按照以下方式做一些事情:

void functionName(dataType array[][], int num_rows, int num_cols){
   // ***Some operation such as printing the array's contents***
}

最佳答案

有以下三种方法:

  1. 您将指针传递给以行和列大小作为参数的第一个元素。
  2. 如果数组大小在编译时已知,您可以使用模板。像这样的东西:

template <std::size_t W, std::size_t H> void func(Type (&array)[W][H]) {}

  1. 您使用二维 vector 并将其传递给函数。但是,如果您不需要调整单独列的大小,它的效率就不会那么高。

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

相关文章:

c++ - 是否可以将 std::move 对象移出函数? (C++11)

c++ - 在两个节点上 boost ptree 迭代

c++ - 我应该使用哪个 C++ 单元测试框架来运行涉及 libcurl 的测试?

c# - 从字符串数组中删除最后一项

字符数组下标警告

c++ - 无法从模板类调用通用 std::function 成员

python - 在 Python 中实现霍纳方法的问题

c++ - node.prev.next =…和node =之间的区别

c++ - 声明重要的 oglplus 对象会抛出异常 oglplus::MissingFunction

javascript - 有没有办法用javascript以相反的顺序在数组上使用map()?