-2

У меня в коде есть такая строка temp3(k,j)^=temp3(i,j);, temp3 это матрица типа double. При компиляции выводится такая ошибка:

***.cpp:128:22: error: invalid operands of types ‘double’ and ‘double’ to binary ‘operator^’ temp3(k,j)^=temp3(i,j); ^ mymain.cpp:128:22: error: in evaluation of ‘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);
}
mend4x
  • 225
  • 8
    А что должна возвращать операция исключающего или с двумя double - ну, например, что такое 3.14^2.72? – Harry Dec 04 '17 at 17:24
  • @Harry, если честно точного назначения не знаю. я взял функцию которая возвращает обратную матрицу и вставил в свой код. – mend4x Dec 05 '17 at 03:59
  • 1
    Без ясного ТЗ получается ХЗ... ответ на ваш вопрос дать не получится, потому что вы и сами не знаете, что хотите. И что-то меня терзают смутные сомнения (с), что таким образом можно получить обратную матрицу... – Harry Dec 05 '17 at 04:50
  • Покажите больше кода чего там творится. – Cerbo Dec 06 '17 at 10:13
  • словами опишите что вы хотите получить. Не используйте сломанный код в качестве спецификации задачи. Также приведите пример ввода и желаемого вывода. Не помещайте в вопрос весь код, который у вас есть, вместо этого создайте [mcve] – jfs Dec 07 '17 at 21:35
  • @jfs это только часть кода, где находится обратная матрица – mend4x Dec 11 '17 at 04:20

1 Answers1

3

Я вангую что там

x ^= y; y ^= x; x ^= y;

Используйте std::swap(x, y);.

Abyx
  • 31,143