我想在这样的函数中通过引用传递IloNumArray
作为参数:
void myfuntion(...., IloNumArray & X, ...)
{
// ...
}
我知道这不对。还有其他选择吗?
答案 0 :(得分:0)
通过引用传递IloXXX对象被认为是“错误的”,因为它们本身基本上handles指向实际数据,因此传递IloXXX对象的成本与传递引用的成本相同。复制IloXXX对象的语义也就像传递引用一样,所以
void myFunction(IloNumArray x) {
x[0] = 1.0;
}
IloEnv env;
// create an array with 1 element, value of 0
IloNumArray x(env, 1, 0.0);
myFunction(x);
cout << x[0] << endl;
// 1.0