Как передать IloNumArray в качестве аргумента по ссылке

0

Я хочу передать IloNumArray в качестве аргумента по ссылке в такой функции:

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

Я знаю, что это неверно. Есть ли другая альтернатива?

  • 0
    Что такое IloNumArray?
  • 1
    Почему вы говорите, что это неправильно?
Показать ещё 4 комментария
Теги:
cplex

1 ответ

0
Лучший ответ

Он считал "неправильным" передавать объекты 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
  • 0
    Это не отвечает на вопрос. Ничто в вашем ответе не объясняет, почему синтаксис OP не сработает, и из комментариев к вопросу выясняется, что он работает. Это было бы полезно как комментарий, но не как ответ.
  • 0
    Вопрос спрашивает: есть ли альтернатива? Да, есть, передайте IloNumVarArray по значению.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню