Возможно ли применить такое условие?
if (arr[0] == arr[1] == arr[2])
Результат выполнения операции == в С++ -- это bool, а bool конвертируется в int.
Запись в скобках эквивалентна (a[0] == a[1]) == a[2] и сравнивает a[2] с результатом сравнения a[0] и a[1] (0 если они не равны, 1 если равны). Т.е. 1 == 1 == 1 -- это истина, поскольку (1 == 1) -- истина, истина сконвертированная в int -- это 1, а 1 == 1 -- это истина.почему сравнение значений массива по индексу работает не так, как с обычными переменными
Точно так же оно работает.как мне добиться нужного результата? 
if (arr[0] == arr[1] && arr[1] == arr[2])
Потому что непонятно, откуда вы взяли вообще такой синтаксис.
Попробуйте как-то так: if (arr[0] == arr[1] && arr[1] == arr[2])