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

How to pass IloNumArray as an argument by reference

本文关键字:参数 IloNumArray 何通过 引用      更新时间:2023-10-16

我想在一个函数中通过引用传递一个IloNumArray作为参数:

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

我知道这是不对的。还有别的选择吗?

通过引用传递IloXXX对象被认为是"错误的",因为它们本身本质上是指向实际数据的句柄,因此传递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