Акт обмена двумя переменными в компьютерном программировании относится к значениям переменных. Обычно это делается с использованием данных, хранящиеся в памяти. Например, две переменные в программе будут объявлены следующим образом:
data_item x: = 1
data_item y: = 0
менять
После обмена x будет иметь значение 0 и Y будет иметь значение 1; Их ценности были заменены. Другие виды значений, такие как строки и агрегированные типы данных, могут использоваться с этой операцией. Сваливания используются для сдвига размещения данных в сравнении.
Swap-это встроенный в нескольких компьютерных языках. Перегрузки доступны в C ++, что позволяет STD :: Swap обмениваться некоторыми огромными структурами в Oâ.
Хотя это основное понятие, и во многих обстоятельствах единственная практическая техника, которая обменяется двумя переменными, он потребляет больше. Хотя это не должно быть проблемой в большинстве приложений, размеры замены значений могут быть большими, или операция свопа может потребоваться повторить несколько раз, как в алгоритмах сортировки.
Кроме того, на объектно-ориентированных языках C ++ заменять две переменные могут потребоваться для класса-конструктора и деструктора для временной переменной, а также три вызова для конструктора копирования. Некоторые классы приобретают память в конструкторе, а затем распределяют ее в деструкторе, что приводит к дорогостоящим системным вызовам. Скопировать конструкторы для классов с большим количеством данных, таких как массив, может потребоваться вручную копировать данные.
Операция XOR используется для обмена двумя числовыми переменными в XOR Swap. Обычно он считается быстрее, чем вышеупомянутая техника NAã¯ve, хотя у него есть недостатки. В целом, XOR SWAP используется для обмена низкоуровневыми типами данных, такими как целые числа. Тем не менее, теоретически способно обмениваться какими-либо двумя значениями, представленными битстрами фиксированной длины.
Контейнеры, которые используют указатели, чтобы выделить память из кучи, могут быть заменены одной операцией, обменивая только указатели. Это наиболее распространено в языках программирования, которые включают указатели, такие как C или C ++. Стандартная библиотека шаблонов использует свою встроенную функцию свопа, чтобы эффективно обмениваться содержимым контейнеров.
Поскольку переменные указателя, как правило, имеют фиксированный размер и являются цифровыми, XOR SWAP можно использовать для их быстрого обмена.
Загрузите прозрачную галерею PNG -изображения.
Разрешение: 480 × 480
Размер: 31 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 9 KB
Формат изображения: .png
Скачать
Разрешение: 855 × 642
Размер: 13 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 4 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 14 KB
Формат изображения: .png
Скачать
Разрешение: 639 × 661
Размер: 10 KB
Формат изображения: .png
Скачать
Разрешение: 981 × 818
Размер: 10 KB
Формат изображения: .png
Скачать
Разрешение: 980 × 980
Размер: 38 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 7 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 8 KB
Формат изображения: .png
Скачать
Разрешение: 600 × 451
Размер: 56 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 398
Размер: 4 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 6 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 20 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 7 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 473
Размер: 17 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 15 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 5 KB
Формат изображения: .png
Скачать
Разрешение: 522 × 298
Размер: 5 KB
Формат изображения: .png
Скачать
Разрешение: 640 × 480
Размер: 36 KB
Формат изображения: .png
Скачать
Разрешение: 623 × 734
Размер: 21 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 6 KB
Формат изображения: .png
Скачать
Разрешение: 512 × 512
Размер: 4 KB
Формат изображения: .png
Скачать
Разрешение: 1463 × 1147
Размер: 24 KB
Формат изображения: .png
Скачать
Разрешение: 1997 × 1749
Размер: 48 KB
Формат изображения: .png
Скачать
Разрешение: 572 × 980
Размер: 20 KB
Формат изображения: .png
Скачать
Разрешение: 626 × 626
Размер: 217 KB
Формат изображения: .png
Скачать
Разрешение: 980 × 474
Размер: 11 KB
Формат изображения: .png
Скачать
Разрешение: 600 × 600
Размер: 86 KB
Формат изображения: .png
Скачать
Разрешение: 1001 × 1002
Размер: 24 KB
Формат изображения: .png
Скачать
Разрешение: 980 × 980
Размер: 21 KB
Формат изображения: .png
Скачать