Что делает строка ans^=x, прилагаю задачу и код

Объясните фрагмент ans^=x.

Для массива целых чисел, где все элементы, кроме одного, встречаются дважды, найдите уникальный элемент.

Пример:
a = [1, 2, 3, 4, 3, 2, 1]
Уникальный элемент - 4

int lonelyinteger(vector<int> a) {
    int ans=0;
    for(auto x:a) ans^=x;
    return ans;
}

Ответы (1 шт):

Автор решения: Harry

^, как вы справедливо заметили в метках — операция xor.

А запись a @= b означает a = a @ b, т.е.

ans ^= x;

означает

ans = ans ^ x;

Если же вопрос о смысле сего действа, то заметим, что после двух xor с одним и тем же числом мы получаем исходное значение:

a ^ x ^ x == a

Дальше понятно, почему это делается? :)

P.S. Картинками здесь вопросы задавать крайне не рекомендуется...

→ Ссылка