我已經在C++中使用armadillo編寫了以下代碼。但是,我無法獲得任何輸出(我的輸出是cordX和cordY)。我的定義有沒有錯,它不能給出任何輸出?從C++中的函數獲取輸出
#include <iostream>
#include<armadillo>
using namespace std;
using namespace arma;
void myOrder(const mat &sOut, const mat &T, const mat &OL, mat &cordX, mat &cordY);
int main()
{
mat sOut;
sOut << 100 << 120 << endr;
mat T;
T << 20 << 20 << endr;
mat OL;
OL << 5 << 5 << endr;
mat locX;
mat locY;
myOrder(sOut, T, OL, locX, locY);
cout << locX << endl;
cout << locY << endl;
system("PAUSE");
return 0;
}
void myOrder(const mat &sOut, const mat &T, const mat &OL, mat &cordX, mat &cordY)
{
vector<double> U;
for (int i = 0; i < sOut(0) - T(0); i += T(0) - OL(0))
{
U.push_back(double(i));
}
vector<double> V;
for (int j = 0; j < sOut(1) - T(1); j += T(1) - OL(1))
{
V.push_back(double(j));
}
if ((double(U.back()) + 2*T(0) - OL(0) - 1) > sOut(0) && (double(U.back()) + T(0) !=sOut(0)))
{
U.push_back(sOut(0) - T(0) + 1);
}
colvec cordX = conv_to<colvec>::from(U);
if ((double(V.back()) + 2*T(1) - OL(1) - 1) > sOut(1) && (double(V.back()) + T(1) !=sOut(1)))
{
V.push_back(sOut(1) - T(1) + 1);
}
colvec cordY = conv_to<colvec>::from(V);
// return cordX, cordY;
}
您聲明與某些參數具有相同名稱的局部變量。這是故意的嗎? –
不!你指的是哪一個? – Sam
'cordX'和'cordY'。通話結束後,您嘗試打印的兩個參數。 –