将内联双数组作为方法参数传递
Passing inline double array as method argument
考虑方法
functionA (double[] arg)
我想通过一个双数组内联,像
functionA({1.9,2.8})
而不是像那样先创建一个数组然后通过它
double var[] = {1.0,2.0};
functionA(var);
这在C++中可能吗?听起来很简单,但我无论如何都找不到关于我的问题的暗示,这让我产生了怀疑:)。
您可以使用std::initializer_list<>
执行此操作
#include<vector>
void foo(const std::initializer_list<double>& d)
{ }
int main()
{
foo({1.0, 2.0});
return 0;
}
它在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;
}
尽管你需要确保new分配的内存在函数a()中被删除,否则就会出现内存泄漏!
您可以在C++11中使用std::initializer_list
来完成此操作。
void fun(std::initializer_list<double>);
// ...
fun({ 1., 2. });
你不能在C++03中做到这一点(否则它将涉及到足够多的样板——这是不可行的)。
相关文章:
- 将成员函数指针作为参数传递给模板方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- 如何在方法中传递结构参数
- 如何将成员函数作为参数传递并在派生对象上执行方法列表
- 将带有模板化方法的类作为带有GCC的模板参数传递
- 将派生类作为参数传递给方法,该方法是具有智能指针的基类
- 将私有数据成员作为默认参数传递给该类的公共方法时出错
- 如何将提升回调作为参数传递给方法?
- 将方法作为模板化参数传递 C++11
- 最佳做法是在方法中传递参数
- 将 std::ofstream 对象作为参数传递给类方法
- 在构造函数上传递参数或在每个方法上传递参数
- 将给定的 vararg 参数传递给另一个函数的适当方法是什么?
- 将指针类方法作为参数传递给其他类方法C
- 基本C - 构造contaning对象引用,并将其作为方法参数传递
- JNI——可以将复杂类型作为本机方法参数传递
- OOP 设计 - 将类成员变量作为类中的方法参数传递
- C++将动态方法指针作为不同类的方法参数传递
- 如何将指向一个方法的指针作为另一个方法参数传递
- 将内联双数组作为方法参数传递