У меня есть следующий код, который использует библиотеку Eigen C++.
void myFunc(Eigen::MatrixXf& myrow)
{
myrow.setOnes();
}
int main()
{
Eigen::MatrixXf A(2,3);
Eigen::MatrixXf tmp1(1,3);
myFunc(tmp1);
A.row(1) = tmp1;
std::cout<<"A is..\n"<<A<<std::endl;
return 0;
}
Как видите, для управления строками матрицы А я использовал временную переменную «tmp1». Можно ли это сделать без использования какой-либо временной переменной? Я не хочу передавать всю матрицу "А" в функцию как параметр. Обратите внимание, что «myFunc» — это всего лишь пример, мне, возможно, придется делать некоторые сложные вещи внутри функции, чтобы манипулировать строками «A». Также обратите внимание, что иногда я хотел бы вызвать «myFun», как показано в примере. Поэтому мне нужно решение, которое будет работать в обоих случаях.
Eigen::Ref<VectorXf>
? - person billx   schedule 29.11.2016