如何通过引用传递IloNumArray作为参数

时间:2014-08-18 11:00:20

标签: c++ cplex

我想在这样的函数中通过引用传递IloNumArray作为参数:

void myfuntion(...., IloNumArray & X, ...)
{
  // ...
}

我知道这不对。还有其他选择吗?

1 个答案:

答案 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