c++ - 如何创建一个长度由 const 参数指定的数组?
问题描述
我有一个功能:
void f(const size_t &len){
double arr[len];
}
但它不起作用,因为我收到了来自 len 的消息,即“表达式必须具有恒定值”。如果我不想创建全局变量 len,我该如何解决这个问题?
解决方案
C++ 不支持变长数组。如果len
是编译时间常数,我建议您使用std::array
模板,如下所示:
template<size_t len>
void f(){
std::array<double, len> arr;
//use arr
}
你会这样使用它:
int main()
{
f<5>();
}
请注意,5
在我的示例中是一个编译时常量。如果您在编译时不知道数组的大小,请使用std::vector
. 你会这样做:
void f(const size_t len){
std::vector<double> arr(len);
//use arr
}
int main()
{
size_t variableLength = 0;
std::cin >> variableLength;
f(variableLenght);
}
推荐阅读
- java - 如何对 Flux 中的多个值求和?
- python - 使用另一个 webapp 中的按钮打开 webapp 的功能
- echarts - 单击Echarts树中的边缘时如何打开url
- python - super() 返回代理对象是什么意思?
- php - 忽略参数的 Axios GET
- python - 在python文件中隐藏密码
- html - CSS transform-scale() - 如何在不缩放容器的情况下缩放文本并保持正确对齐
- docker - 复制 Datadog 中收集的应用程序日志
- python - Python:如何保存从 os.walk 循环中获得的每个文件?
- reactjs - 在 div 的宽度之间进行平滑过渡