Eri*_*ric 10 c++ arrays pass-by-value function-parameter
考虑方法
functionA (double[] arg)
Run Code Online (Sandbox Code Playgroud)
我想传递一个内联的双数组,比如
functionA({1.9,2.8})
Run Code Online (Sandbox Code Playgroud)
而不是先创建一个数组然后传递它,就像
double var[] = {1.0,2.0};
functionA(var);
Run Code Online (Sandbox Code Playgroud)
这可能用C++吗?听起来很简单,但无论如何我无法找到关于我的问题的提示,这让我怀疑:).
Yuu*_*shi 11
你可以这样做 std::initializer_list<>
#include<vector>
void foo(const std::initializer_list<double>& d)
{ }
int main()
{
foo({1.0, 2.0});
return 0;
}
Run Code Online (Sandbox Code Playgroud)
在g ++下使用-std=c++0x指定的编译和工作.
这适用于c ++ 0x
void functionA(double* arg){
//functionA
}
int main(){
functionA(new double[2]{1.0, 2.0});
//other code
return 0;
}
Run Code Online (Sandbox Code Playgroud)
虽然你需要确保在functionA()中删除了new分配的内存,但如果失败则会出现内存泄漏!
| 归档时间: |
|
| 查看次数: |
5836 次 |
| 最近记录: |