c++ - 在 C++ 的函数中创建一个没有全局变量的数组

标签 c++ arrays

所以我想在函数中创建一个数组,其大小由作为参数传入的数字设置。这是一个例子:

void temp_arr ( const int array_size ) {
     int temp_arr[array_size]; //ERROR array_size needs to be a constant value
    //Then do something with the temp arr
}

即使参数是const int,也不行。我不想使用全局常量,也不想使用 vector 。我只是好奇,因为我正在学习 C++。我希望它能够使每次调用函数时数组大小都不同。是否有解决方案,或者我是否在调用函数之前创建一个 const 变量和数组?

最佳答案

使用模板函数:

template<std::size_t array_size>
void temp_arr()
{
    int temp_arr[ array_size ];
    // ...work with temp_arr...
}

然后您可以使用以下语法调用该函数:

temp_arr<32>(); // function will work with a 32 int statically allocated array

注意

每次使用不同的 array_size 值调用都会实例化一个新函数。

关于c++ - 在 C++ 的函数中创建一个没有全局变量的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288920/

相关文章:

c++ - 多线程通过命令行参数设置线程数或

Javascript 数组跨浏览器问题

javascript - 缓冲区使用说明

javascript - 使用传递给函数的值访问 JavaScript 数组

c++ - 如何使用 C++/CLI 包装器库为 native C++ 库导出多个类

c++ - 如何获得 LaVectorDouble 对象,它是 LaGenMatDouble 的子矩阵 View ?

c++ - UDP sendto() 和 recvfrom() 最大缓冲区大小

C++ 预编译 header : Two generated . gch 对于同一源文件从不相同

javascript - 如何通过 post 请求将形状像某些 JSON 对象数组的字符串传递给数组

java - 在 Java 中使用 Try-Catch 防止错误与忽略错误