如何传递大小未知的std::数组?在C++中 我想传递一个C++ STD::数组定义为 array<int,100> arrayName
到另一个函数,但我不想在那里指定大小,因此我只能在创建数组时轻松更改大小 我该怎么写?我不会写字如何传递大小未知的std::数组?在C++中 我想传递一个C++ STD::数组定义为 array<int,100> arrayName,c++,arrays,C++,Arrays,到另一个函数,但我不想在那里指定大小,因此我只能在创建数组时轻松更改大小 我该怎么写?我不会写字 function(array<> arrayName) 就像我使用字符数组一样 你好,iova。如果您知道编译时的数组大小,正如您使用std::array所暗示的那样,那么您就有了模板。要限制性地支持不同大小的int的std::数组,可以执行以下操作: #include <array> template <size_t N> void ArrayFunc(st
function(array<> arrayName)
就像我使用字符数组一样
你好,iova。如果您知道编译时的数组大小,正如您使用std::array所暗示的那样,那么您就有了模板。要限制性地支持不同大小的int的std::数组,可以执行以下操作:
#include <array>
template <size_t N>
void ArrayFunc(std::array<int, N> arr)
{
// Do something with `arr`
}
int main()
{
std::array<int, 10> arr10;
std::array<int, 20> arr20;
ArrayFunc(arr10);
ArrayFunc(arr20);
return 0;
}
或
取决于您是否要修改函数中的arr。使用vector将是一个不错的选择,因为它本质上是动态的,但要小心,因为它会消耗更多的空间,它在初始值后会加倍,就像vector u声明10后10,它将在20后20后30,每增长10倍。你仍然不想使用它,你可以通过使用两个数组和一些指针来创建你自己的动态数组 您希望能够在运行时或编译时设置大小吗?在编译时可以设置大小的可能副本。在运行时,我认为使用数组是不可能的,或者?
template <size_t N>
void ArrayFunc(std::array<int, N>& arr)
template <size_t N>
void ArrayFunc(const std::array<int, N>& arr)