Я знаю, что не использовать их, но есть методы для замены двух переменных без использования третьего, например
x ^= y;
y ^= x;
x ^= y;
и
x = x + y
y = x - y
x = x - y
В классе профессор упомянул, что они были популярны 20 лет назад, когда память была очень ограниченной и до сих пор используется в высокопроизводительных приложениях. Это правда? Мое понимание того, почему бессмысленно использовать такие методы, заключается в следующем:
- Это никогда не может быть узким местом, использующим третью переменную.
- Оптимизатор делает это в любом случае.
Так всегда ли хорошее время, чтобы не менять третью переменную? Это быстрее?
По сравнению с другими, это метод, который использует XOR против метода, который использует +/- быстрее? У большинства архитектур есть блок для сложения/вычитания и XOR, так что это не означает, что они имеют одинаковую скорость? Или только потому, что у процессора есть блок для операции, это не значит, что они имеют одинаковую скорость?