我的代码中有这样一行,这是temp3(k,j)^=temp3(i,j);一个 temp3类型的矩阵double。编译时显示如下错误:
***.cpp:128:22:错误:'double' 和 'double' 类型的无效操作数到二进制 'operator^' temp3(k,j)^=temp3(i,j); ^ mymain.cpp:128:22: 错误:在评估 'operator^=(double, double)'
请帮助修复错误。
UPDATE 这里是整个功能:
for (int i=0; i<n; i++)
{
if (temp3(i,i)==0)
for (int j=i+1; j<n; j++)
{
if (temp3(j,i)==1)
{
for (int k=0; k<2*n; k++)
{
int c=temp3(j,k);
temp3(j,k)=temp3(i,k);
temp3(i,k)=c;
}
break;
}
}
for (int k=i+1; k<n; k++)
{
if (temp3(k,i)==1)
{
for (int j=0; j<2*n; j++)
{
temp3(k,j)^=temp3(i,j);
}
}
}
}
for (int i=n-1; i>=0; i--)
{
for (int k=i-1; k>=0; k--)
{
if (temp3(k,i)==1)
{
for (int j=0; j<2*n; j++)
temp3(k,j)^=temp3(i,j);
}
}
}
return (temp3);
}
我想知道那里有什么
使用
std::swap(x, y);.