0
當我在Windows機器上運行QT中的同一段代碼時,我得到此錯誤'作爲賦值的左操作數所需的左值',但在使用Linux時正常工作機。錯誤:作爲左操作數所需的左值要做的事情
unsigned int width = Width, height = Height, slice = Slice;
typedef boost::multi_array<std::complex<double>,3> IMAGE;
typedef IMAGE::index im;
IMAGE Image(boost::extents[slice][height][width]);
for (im i = 0; i < slice; i++)
{
for (im j = 0; j < height; j++)
{
for (im k = 0; k < width; k++)
{
Image[i][j][k].real() = image[i][j][k];
Image[i][j][k].imag() = 0;
}
}
}
是錯誤,因爲編譯器的差異?或者有什麼我失蹤? Linux版本有一個GCC編譯器和Windows版本使用MINGW 32位
什麼'真正的()'和'IMAG()'返回? –
@serpentor是對的。他們返回'double',而不是'double'。使用'Image [i] [j] [k] .real(image [i] [j] [k]);'而不是。 – ilotXXI
@Gill Bates real()返回圖像的實部,imag()返回圖像中的虛部。假設圖像具有複雜的值。 – serpentor